訊息佇列NATS簡介
阿新 • • 發佈:2018-12-25
NATS是什麼?
NATS是一個開源的訊息系統,或者說訊息佇列。NATS的作者是Derek Collison, Apcera的作者。它起源於VMWare,最開始是一個ruby的系統。後來使用golang進行重寫,逐步的成為了一個高擴充套件性的高效能訊息系統。
為什麼是NATS?
為什麼不是呢?過去我使用過很多訊息佇列,很明顯NATS是鶴立雞群的,在過去訊息系統似乎成了企業的靈丹妙藥了,結果是每個人參與的每個系統都離不開訊息系統。導致了很多無效的承諾、高昂的研發投入,製造出比它解決的更多的麻煩。
NATS,相比之下,就十分專注,在難以置信的簡潔之下,解決了效能問題,解決了高可用行問題。它的口號是『always on and available』,使用了一種『fire and forget』的訊息模式。它簡單、專注、輕量的特性使它在微服務的候選中脫穎而出。我們相信,在服務間的訊息傳遞領域,它很快會變成主要的候選者。
NATS能提供什麼?
- 高效能、高擴充套件
- 高可用
- 極致的輕量級
- 一次部署
NATS不支援什麼?
- 持久化
- 事務
- Enhanced delivery modes
- Enterprise queueing
NATS是一個高可用和高效能的訊息系統,在我們的微服務生態系統中執行的很好。它與Micro配合的非常的好,我們可以把它用在register,transport,broker中,我們也已經全部實現了這些外掛。
NATS在Micro中的使用只是一個示例,它展示了Micro高度的外掛化架構,每個go-micro的包都可以被替換,底層不需要改動程式碼,上層也只需要改動非常少的程式碼。在未來我們還會看到更多的Micro on X,下一個可能是Micro on kubernetes。