1. nats
nats 是一个开源的,云原生的消息系统。Apcera,百度,西门子,VMware,HTC和爱立信等公司都有在使用。
该项目在 CNCF 托管:
- CNCF 分层:应用定义与开发
- CNCF 分类:流媒体与消息
- CNCF 成熟度:孵化中
1.1. 使用场景
- 高吞吐量的消息分散 —— 少数的生产者需要将数据发送给很多的消费者。
- 寻址和发现 —— 将数据发送给特定的应用实例,设备或者用户,也可用于发现并连接到基础架构中的实例,设备或用户。
- 命令和控制(控制面板)—— 向程序或设备发送指令,并从程序/设备中接收状态,如SCADA,卫星遥感,物联网等。
- 负载均衡 —— 主要应用于程序会生成大量的请求,且可动态伸缩程序实例。
- N路可扩展性 —— 通信基础架构能够充分利用go的高效并发/调度机制,以增强水平和垂直的扩展性。
- 位置透明 —— 程序在各个地理位置上分布者大量实例,且你无法了解到程序之间的端点配置详情,及他们所生产或消费的数据。