NSQ环境搭建:

1.官网下载release bin包 - https://nsq.io/deployment/installing.html。此处使用nsq-1.1.0.linux-amd64.go1.10.3.tar.gz。

   当前目录解压 tar -zxvf nsq-1.1.0.linux-amd64.go1.10.3.tar.gz    

   解压后:(nsq-1.1.0.linux-amd64.go1.10.3/bin)

2. 为了使用https进行通信,需要生成证书,使用的如下命令(可参考http://www.cnblogs.com/vincentfu/p/5475248.html)

本例采用双向认证,证书采用已有的

使用无 CA 证书的单向认证:key.pem(私钥, pem采用Base64编码),  cert.pem证书。

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3650 -nodes

3. 开始启动nsq(以下示例采用已经存的证书)

a. 在第1个shell下启动nsqlookupd,该进程主要用于管理拓扑信息。其他client从该进程获取nsqd相关信息,例如topic和channel。

   ./nsqlookupd -verbose

b. 在第2个shell启动nsqd

   注意:此处设置不校验tls客户端,无需设置-tls-client-auth-policy,  且-tls-required=false,这样nsqadmin和nsq_to_file进程无需tls可正常连接

  ./nsqd -broadcast-address=127.0.0.1 -https-address=0.0.0.0:4152 -lookupd-tcp-address=127.0.0.1:4160 -tls-cert="/root/nsq/server_certs/server.pem" -tls-key="/root/nsq/server_certs/server.key"  -tls-root-ca-file="/root/nsq/server_certs/cacert.pem"   -tls-required=false -verbose

c.在第3个shell启动nsqadmin, 用来管理webui;   (web访问 http://hostip:4171)

 ./nsqadmin --lookupd-http-address=127.0.0.1:4161 -verbose

d.在第4个shell用curl命令测试返回OK成功

curl  --tlsv1 --cert /root/nsq/client_certs/smac_fw.pem  --key /root/nsq/client_certs/smac_fw.key --cacert /root/nsq/client_certs/smac_cacert.pem   -H "Content-Type:application/json" -X POST --data '{"12345":{"456":789}}' https://hostname:4152/pub?topic=test1

e.在第5个shell用启动nsq_to_file,将curl发送的命令写到文件

注:此处的topic必须和curl的topic保持一致

./nsq_to_file --topic=test1 --output-dir=/tmp --lookupd-http-address=127.0.0.1:4161

 

posted on 2018-12-19 16:41  茂茂1212  阅读(457)  评论(1编辑  收藏  举报