NATS服务器部署及测试
NATS服务器部署及测试作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszsNATS的服务器是使用Golang语言开发的,其可执行文件的名字为gnatsd,表示Go NATS Daemon。NATS服务器是一个开源软件,基于MIT许可证发布。 NATS Server有Linux版、Mac版、Windows版。下面以Linux版为例,详述其部署过程。 NATS Server当前的最新版本为0.7.2版,有三种二进制发布包,详见:https://github.com/nats-io/gnatsd/releases/
虽然NATS Server是用Go语言开发的,但运行gnatsd无需安装Golang环境。gnatsd非常的轻量级,发布包只有2MB多,启动时可以无需任何参数,直接运行即可。 1、NATS Server的服务器配置gnatsd接受命令行参数作为控制手段。主要的服务器参数如下。 1)服务器选项
2)日志选项
3)授权认证选项
4)TLS安全选项
5)集群选项
6)常规选项
2、NATS Server部署1)解压# tar zvxf /home/gnatsd-v0.7.2-linux-amd64.tar.gz ./ LICENSE README.md gnatsd 2)运行# ./gnatsd [10787] 2016/03/28 23:22:18.472500 [INF] Starting gnatsd version 0.7.2 [10787] 2016/03/28 23:22:18.472716 [INF] Listening for client connections on 0.0.0.0:4222 [10787] 2016/03/28 23:22:18.473127 [INF] gnatsd is ready 3)查看运行# ps -ef |grep gnatsd root 10787 10296 0 23:22 pts/0 00:00:00 ./gnatsd root 10795 10669 0 23:22 pts/2 00:00:00 grep --color=auto gnats 4)远程登录在远程机器上(我的是win 8.1),执行Telnet登录: C:&; telnet xxx.xxx.xxx.xxx 4222 连上后Telnet立刻输出: INFO {"server_id":"321233a60fd2a889a1a2f96bc1e95afe","version":"0.7.2","go":"go1.5.2","host":"0.0.0.0","port":4222,"auth _required":false,"ssl_required":false,"tls_required":false,"tls_verify":false,"max_payload":1048576} 可见,gnatsd使用了Golang 1.5.2版开发。再次按下回车键,Telnet断开连接,显示: -ERR 'Unknown Protocol Operation' -ERR 'Parser Error' 遗失对主机的连接。 同样,gnatsd服务器端也会输出这样的信息: [10787] 2016/03/28 23:31:47.050594 [ERR] xxx.xxx.xxx.xxx:58007 - cid:2 - Error reading from client: Client Parser ERROR,state=0,i=0: proto='"r"...' 3、发布/订阅模式的验证使用两个客户端进行验证。在远程Windows主机上开两个CMD命令行环境,均使用命令“C:> telnet xxx.xxx.xxx.xxx 4222”连上gnatsd服务器。为了以示区别,这里命名为客户端A和客户端B,A表示发布者,B表示订阅者。 1)订阅者B运行订阅者B使用通配符foot.*注册主题ID为90的主题,订阅成功,gnatsd服务器返回+OK消息。 sub foo.* 90 +OK 2)发布者A运行发布者A发布一条消息到主题foo.bar,消息有效负载的长度为5,按下回车。消息发布成功,gnatsd服务器返回+OK消息。 pub foo.bar 5 hello +OK 3)订阅者B显示sub foo.* 90 +OK MSG foo.bar 90 5 hello 前两行是之前的内容,后两行是新获得的推送消息。可见,发布/订阅的消息通信成功。 4)发布者A继续执行发布者A继续执行以下命令,消息发布成功,gnatsd服务器返回+OK消息。 pub foo.bar optional.reply.subject 5 hello +OK 5)接收者B继续显示MSG foo.bar 90 5 hello PING MSG foo.bar 90 optional.replay ly.subject 5 hello 后面三行都是新增的消息内容,其中PING是维持连接的消息。 6)接收者B执行接收者B执行取消订阅命令,命令消息发送成功,gnatsd服务器返回+OK消息。 unsub 90 +OK 7)发布者A运行发布者A再次发布一条消息到主题foo.bar,消息有效负载的长度为5,按下回车。消息发布成功,gnatsd服务器返回+OK消息。 pub foo.bar 5 hell2 +OK 此时接收者B收不到消息,因为订阅已经取消了。 ping PONG PING PONG (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |