nats-server安装及测试


 

NATS Server有Linux版、Mac版、Windows版。下面以Linux版为例,详述其部署过程。

NATS Server当前的最新版本为2.0.2版,详见:https://github.com/nats-io/


虽然NATS Server是用Go语言开发的,但运行NATS Server无需安装Golang环境。NATS Server非常的轻量级,发布包只有2MB多,启动时可以无需任何参数,直接运行即可。

1、NATS Server的服务器配置


NATS-Server接受命令行参数作为控制手段。主要的服务器参数如下。

1)服务器选项


-a, –addr HOST 绑定主机IP地址(默认是0.0.0.0)
-p, –port PORT 客户端连接NATS服务器使用的端口(默认是4222)
-P, –pid FILE 存储PID的文件
-m, –http_port PORT 使用HTTP端口作为监听端口
-ms, –https_port PORT 使用HTTPS端口作为监听端口
-c, –config FILE 指定配置文件


2)日志选项


-l, –log FILE 指定日志输出的文件
-T, –logtime 是否开启日志的时间戳(默认为true)
-s, –syslog 启用syslog作为日志方法
-r, –remote_syslog 远程日志服务器的地址(默认为udp://localhost:514)
-D, –debug 开启调试输出
-V, –trace 跟踪原始的协议
-DV 调试并跟踪


3)授权认证选项


–user user 连接需要的用户名
–pass password 连接需要的密码


4)TLS安全选项


–tls 启用TLS,不验证客户端(默认为false)
–tlscert FILE 服务器证书文件
–tlskey FILE 服务器证书私钥
–tlsverify 启用TLS,每一个客户端都要认证
–tlscacert FILE 客户端证书CA用于认证


5)集群选项


–routes [rurl-1, rurl-2] 路线征求并连接


6)常规选项


-h, –help 显示帮助消息
-v, –version 显示版本信息


2、NATS Server部署


1)解压

# tar zvxf /home/nats-server-v2.0.2-linux-amd64.tar.gz 
./
LICENSE
README.md
nats-server


2)运行

# ./nats-server 
[10787] 2016/03/28 23:22:18.472500 [INF] Starting nats-server version 2.0.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] nats-server is ready


3)查看运行

# ps -ef |grep nats-server
root     10787 10296  0 23:22 pts/0    00:00:00 ./nats-server
root     10795 10669  0 23:22 pts/2    00:00:00 grep --color=auto nats-server



4)远程登录
在远程机器上(我的是win 10),执行Telnet登录:

C:\> telnet xxx.xxx.xxx.xxx 4222


连上后Telnet立刻输出:

INFO{"server_id":"NADREYVHCIBQYI4LDIFKYM36JPZXJPNRG3FACPA3XL2S6H6FA3WSDDVU","version":"2.0.2","proto":1,"go":"go1.11.12","host":"0.0.0.0","port":4222,"max_payload":1048576,"client_id":1}


可见,nats-server使用了Golang 1.11.12版开发。再次按下回车键,Telnet断开连接,显示:

-ERR 'Unknown Protocol Operation'
-ERR 'Parser Error'

遗失对主机的连接。

同样,nats-server端也会输出这样的信息:

[10787] 2019/08/14 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”连上nats-server。为了以示区别,这里命名为客户端A和客户端B,A表示发布者,B表示订阅者。

1)订阅者B运行
订阅者B使用通配符foot.*注册主题ID为90的主题,订阅成功,nats-server返回+OK消息。

sub foo.* 90
+OK


2)发布者A运行
发布者A发布一条消息到主题foo.bar,消息有效负载的长度为5,按下回车。消息发布成功,nats-server返回+OK消息。

pub foo.bar 5
hello
+OK


3)订阅者B显示

sub foo.* 90
+OK
MSG foo.bar 90 5
hello

前两行是之前的内容,后两行是新获得的推送消息。可见,发布/订阅的消息通信成功。

4)发布者A继续执行
发布者A继续执行以下命令,消息发布成功,nats-server服务器返回+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执行取消订阅命令,命令消息发送成功,nats-server服务器返回+OK消息。

unsub 90
+OK

7)发布者A运行
发布者A再次发布一条消息到主题foo.bar,消息有效负载的长度为5,按下回车。消息发布成功,nats-server服务器返回+OK消息。

pub foo.bar 5
hell2
+OK


此时接收者B收不到消息,因为订阅已经取消了。 
客户端发出心跳命令消息PING(用小写ping也是同样的),nats-server服务器返回PONG消息。

ping
PONG
PING
PONG

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值