小编Dum*_*tru的帖子

将代理定义导入 Dockerized RabbitMQ

我有一个 RabbitMQ 代理,其中已经定义了一些交换和队列。我知道我可以通过 HTTP API 导出和导入这些定义。我想对其进行 Docker 化,并在启动时导入所有代理定义。

理想情况下,这将像通过 API 一样轻松完成。我可以编写一堆rabbitmqctl命令,但是如果有很多定义,这可能需要相当长的时间。此外,其他人通过网络界面所做的每项更改都必须插入。

我已经成功地通过编写一个脚本来休眠curl请求并启动服务器来完成我想要的事情,但这似乎很容易出错并且确实不优雅。有没有更好的方法来进行定义导入/导出,或者这是最好的方法?

我的 Dockerfile:

FROM rabbitmq:management
LABEL description="Rabbit image" version="0.0.1"
ADD init.sh /init.sh          
ADD rabbit_e6f2965776b0_2015-7-14.json /rabbit_config.json         
CMD ["/init.sh"]
Run Code Online (Sandbox Code Playgroud)

初始化程序

sleep 10 && curl -i -u guest:guest -d @/rabbit_config.json -H "content-type:application/json" http://localhost:15672/api/definitions -X POST &

rabbitmq-server $@
Run Code Online (Sandbox Code Playgroud)

rabbitmq docker

11
推荐指数
2
解决办法
8607
查看次数

调用http.ResponseWriter.Write()时检查错误

说我有这个http处理程序:

func SomeHandler(w http.ResponseWriter, r *http.Request) {
    data := GetSomeData()
    _, err := w.Write(data)
}
Run Code Online (Sandbox Code Playgroud)

我应该检查返回的错误w.Write吗?我见过的例子只是忽略它而什么都不做.此外,函数http.Error()不会返回要处理的错误.

error-handling http go server

6
推荐指数
1
解决办法
2666
查看次数

fail2ban <HOST> 正则表达式别名解释

我已经设置了fail2ban来保护主机,并且我注意到了这条信息

#_daemon = asterisk                                                                            

# Option:  failregex                                                                   
# Notes.:  regex to match the password failures messages in the logfile. The           
#          host must be matched by a group named "host". The tag "<HOST>:.*" can       
#          be used for standard IP/hostname matching and is only an alias for          
#          (?:::f{4,6}:)?(?P<host>\S+)                                                  
# Values:  TEXT
Run Code Online (Sandbox Code Playgroud)

正则表达式如何(?:::f{4,6}:)?(?P<host>\S+)工作?我一直在几个不同的正则表达式检查器和解释器中尝试它,但没有一个可以解析它,至少是部分(?P<host>\S+)

regex

5
推荐指数
1
解决办法
5941
查看次数

这是一个协程怎么样?

我试图理解Python中的协同程序(一般而言).一直在阅读关于理论,概念和一些例子,但我仍然在苦苦挣扎.我理解异步模型(做了一些Twisted)但不是协同程序.

一个教程将此作为一个协程示例(我做了一些更改来说明我的问题):

async def download_coroutine(url, number):
    """
    A coroutine to download the specified url
    """
    request = urllib.request.urlopen(url)
    filename = os.path.basename(url)
    print("Downloading %s" % url)

    with open(filename, 'wb') as file_handle:
        while True:
            print(number) # prints numbers to view progress
            chunk = request.read(1024)
            if not chunk:
                print("Finished")
                break
            file_handle.write(chunk)
    msg = 'Finished downloading {filename}'.format(filename=filename)
    return msg
Run Code Online (Sandbox Code Playgroud)

这与此一起运行

coroutines = [download_coroutine(url, number) for number, url in enumerate(urls)]
completed, pending = await asyncio.wait(coroutines)
Run Code Online (Sandbox Code Playgroud)

看看生成器协同程序示例,我可以看到一些yield语句.这里什么也没有,urllib是同步的,AFAIK.

此外,由于代码应该是异步的,我期待看到一系列交错的数字.(1,4,5,1,2,......,"完成",......).我所看到的是一个重复结尾的单个数字Finished,然后是另一个(3,3,3,3,......"完成",1,1,1,1,......,"完成"... ).

在这一点上,我很想说教程是错误的,这只是一个协程,因为前面有异步.

python coroutine python-3.x async-await

5
推荐指数
1
解决办法
591
查看次数

更改lxc容器目录

我可以更改lxc容器初始化和保存的目录吗?现在它们是在/ var/cache/lxc下创建的,我希望将它们放在另一个目录中,在另一个我有更多空间的分区上.Changint分区的安装点不是一个选项,因为它已经用于其他东西.

containers lxc

3
推荐指数
1
解决办法
2万
查看次数

WSO2 IS:更改HTTPS证书

我是WSO2配置的新手,还是HTTPS证书如何工作的相对新手,所以请耐心等待。

我正在尝试更改WSO2中HTTPS连接的证书。没有任何配置,WSO2将返回带有DN的证书CN = localhost,O = WSO2,L = Mountain View,ST = CA,C = US。我试图按照本博客文章中的说明使用自己的证书对此进行更改。

我已将我的证书导入到密钥库中,并按照文章中所述更改了配置。一个显着的区别是我找不到${carbon.home}/repository/conf/mgt-transports.xml

完成此操作后,连接到IS服务器管理服务将导致返回“ localhost”证书,而不是导入的证书。

中的KeyStore和RegistryKeyStore条目 repository/conf/carbon.xml

   <KeyStore>                                                              
        <!-- Keystore file location-->                                      
        <Location>${carbon.home}/repository/resources/security/wso2carbon.jks</Location>
        <!-- Keystore type (JKS/PKCS12 etc.)-->                             
        <Type>JKS</Type>                                                    
        <!-- Keystore password-->                                           
        <Password>wso2carbon</Password>                                     
        <!-- Private Key alias-->                                           
        <KeyAlias>testcert</KeyAlias>                                       
        <!-- Private Key password-->                                        
        <KeyPassword>wso2carbon</KeyPassword>                               
    </KeyStore>                                                             

     <!--                                                                   
        Encrypt Decrypt Store will be used for encrypting and decrypting       
    -->                                                                     
    <RegistryKeyStore>                                                      
        <!-- Keystore file location-->                                      
        <Location>${carbon.home}/repository/resources/security/wso2carbon.jks</Location>
        <!-- Keystore type (JKS/PKCS12 etc.)-->                             
        <Type>JKS</Type>                                                    
        <!-- Keystore password-->                                           
        <Password>wso2carbon</Password>                                     
        <!-- …
Run Code Online (Sandbox Code Playgroud)

https wso2 ssl-certificate

3
推荐指数
1
解决办法
3609
查看次数

对char的按位运算给出32位结果

我一直用C编写一个程序,将char的前4位移到最后,最后4位移动到开头.对于大多数值,它正常工作,以及反向操作,但对于某些值,如8,x,y,z,它给出32位值.通过打印变量的十六进制值来检查值.任何人都可以解释为什么会这样吗?

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char o, f,a=15;
    scanf("%c",&o);
    printf("o= %d\n",o);
    f=o&a;
    o=o>>4;
    printf("o= %d",o);
    o=o|(f<<4);
    printf("o= %x, size=%d\n",o,sizeof(o));
    f=o&a;
    o=o>>4;
    printf("o= %d",o);
    o=o|(f<<4);
    printf("o= %x, size=%d\n",o,sizeof(o));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c char bitwise-operators

2
推荐指数
1
解决办法
3831
查看次数