https://github.com/nats-io/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 显示版本信息
https://blog.csdn.net/weixin_39616603/article/details/99624251
https://www.cnblogs.com/brucemengbm/p/7224478.html
port: 4242 # 供client连接的监听端口
net: apcera.me # 监听的网络地址
http_port: 8222 # HTTP监控端口
authorization {
user: derek
password: T0pS3cr3t
timeout: 1
}
cluster {
host: ‘127.0.0.1’ # 主机地址
port: 4244 # 路由连接的入站(inbound)端口
# 路由连接的认证信息
authorization {
user: route_user
password: T0pS3cr3tT00!
timeout: 0.5
}
# Routes are actively solicited and connected to from this server.
# Other servers can connect to us if they supply the correct credentials
# in their routes definitions from above.
routes = [
nats-route://user1:pass1@127.0.0.1:4245
nats-route://user2:pass2@127.0.0.1:4246
]
}
debug: false
trace: true
logtime: false
log_file: “/tmp/gnatsd.log”
pid_file: “/tmp/gnatsd.pid”
max_connections: 100
max_control_line: 512
max_payload: 65536
max_pending_size: 10000000
核心基于EventMachine开发,原理是基于消息发布订阅机制,每台服务器上的每个模块会根据自己的消息类别向MessageBus发布多个消息主题,而同时也向自己需要交互的模块,按照需要的主题订阅消息。能够达到每秒8-11百万个消息,整个程序很小只有3M Docker image,它不支持持久化消息,如果你离线,你就不能获得消息。使用nats streaming可以做到持久化,缓存等功能。
NATS 使用场景
nats是一个简单且强大的消息系统,为支持现代云原生架构设计。由于可伸缩性的复杂性,nats旨在容易使用和实现,且能提供多种质量的服务。
一些适用nats的场景有:
高吞吐量的消息分散 —— 少数的生产者需要将数据发送给很多的消费者。
寻址和发现 —— 将数据发送给特定的应用实例,设备或者用户,也可用于发现并连接到基础架构中的实例,设备或用户。
命令和控制(控制面板)—— 向程序或设备发送指令,并从程序/设备中接收状态,如SCADA,卫星遥感,物联网等。
负载均衡 —— 主要应用于程序会生成大量的请求,且可动态伸缩程序实例。
N路可扩展性 —— 通信基础架构能够充分利用go的高效并发/调度机制,以增强水平和垂直的扩展性。
位置透明 —— 程序在各个地理位置上分布者大量实例,且你无法了解到程序之间的端点配置详情,及他们所生产或消费的数据。
容错
使用nats-streaming的附加场景有:
从特定时间或顺序消费
持久性
有保证的消息投递
NATS消息传递模型
发布订阅
请求回复
队列
NATS的特点
nats的独特功能有:
纯净的pub-sub
集群模式的server
订阅者的自动裁剪
基于文本的协议
多种服务质量
最多一次投递
至少一次投递
持久
缓存
https://zhuanlan.zhihu.com/p/40871363
https://segmentfault.com/a/1190000018309598?utm_source=tag-newest