一種開源的分佈式消息系統Nats

一種開源的分佈式消息系統Nats

做者:chszs。未經博主贊成不得轉載。經許可的轉載需註明做者和博客主頁:http://blog.csdn.net/chszs

一、NATS介紹

NATS是一個開源的、輕量級的、高性能的分佈式消息通訊系統,實現了高可伸縮性和優雅的公佈/訂閱模型。php

NATS適合雲基礎設施的消息通訊系統、IoT設備消息通訊和微服務架構。java

Apcera團隊負責維護NATSserver(Golang語言開發)和client(包含Python、Ruby、Node.js、Elixir、Java、Nginx、C和C#)。開源社區也貢獻了一些client庫,包含Rust、PHP、Lua等語言的庫。
採用了NATS系統的公司有:愛立信、HTC、百度、西門子、VMware。node

二、NATS系統的Broker的吞吐量

與ActiveMQ、Kafka、Kestrel、NSQ、RabbitMQ、Redis在Broker吞吐量方面的比較:
這裏寫圖片描寫敘述nginx

三、NATSserver與client

NATSserver:用Golang語言開發,發行版包含二進制公佈包和Docker鏡像。
NATSclient:包含了多種語言的client。git

官方提供的client

還有社區提供的client:

clientAPI文檔:

對於GolangclientAPI文檔。需要這樣:github

1)用Git下載源代碼及文檔api

$ git clone git@github.com:nats-io/nats.git

2)進入源代碼文件夾瀏覽器

cd $GOPATH/src/github.com/nats-io/nats

3)執行Godoc文檔創建工具ruby

$ godoc -http=:6060

4)瀏覽器訪問API文檔:http://localhost:6060/pkg/github.com/nats-io/nats/markdown

四、NATS的設計目標

NATS的設計原則是:高性能、可伸縮能力、易於使用。基於這些原則,NATS的設計目標包含:
1)高性能(fast)
2)一直可用(dial tone)
3)極度輕量級(small footprint)
4)最多交付一次(fire and forget,消息發送後不管)
5)支持多種消息通訊模型和用例場景(flexible)
五、NATS用例場景

NATS理想的使用場景有:

1)尋址、發現
2)命令和控制(控制面板)
3)負載均衡
4)多路可伸縮能力
5)定位透明
6)容錯

NATS設計哲學以爲,高質量的QoS應該在client構建,故僅僅創建了請求-應答。不提供:

1)持久化 2)事務處理 3)加強的交付模式 4)企業級隊列 六、NATS消息通訊模型

相關文章
相關標籤/搜索