NATS的Dart客戶端

做者:Chaitanya Munukutlagit

圖片描述

記得是在2015年初,我第一次聽到消息經紀人這個詞。我正在攻讀碩士學位,關於P2P網絡,須要模擬穩定吞吐量的傳入消息。那時我不是一個極客,因此解決方法是作一個無限的Thread.sleep()循環。不要不滿,那時我才21歲。github

RabbitMQ是我與消息傳遞系統的第一次約會。我對這類關係很陌生,並無太多可比性,因此RabbitMQ彷佛很好。可是,本身託管它有點痛苦,並且我也厭倦了Java。那是我找到PubNub的時候,上帝是美麗的。我不須要處理任何事情,幾乎全部你使用的環境都有驅動。而且,他們有一個免費等級可用,這是我透露我來自印度的時候,咱們比任何人都更好地使用免費資源。編程

免責聲明:我沒有試圖去找NATS,這是一個意外。瀏覽器

我看到了這個新的基金會,雲原生計算基金會,它彷佛是街頭新的嘻哈孩子,因此我前往cncf.io,看看他們是否有他們吹噓的東西。而後,我遇到這個名爲NATS的新孵化項目。他們稱之爲「爲微服務而設的消息傳遞」。它有相似於RabbitMQ、ActiveMQ、Pubnub等的消息代理抽象。那麼我爲何要切換?服務器

爲什麼選擇NATS?

慣用法。我一直在尋找使人興奮的新語言,這些語言彷佛無處不在。我試過Golang、Swift、Kotlin、Python、C#和Erlang(是的,我說過是真的)。新語言彷佛帶來了他們各自對編程的慣用方式。NATS彷佛經過簡單直接的驅動程序,帶來了原生方式。NATS幫助我學習Golang頻道、RxJava和Erlang主管模型。網絡

強大功能。NATS功能強大。它優雅地處理pub-sub、請求-響應、排隊和流媒體,甚至能夠同時處理!編程語言

簡單部署。我不能誇大這一點,NATS很容易部署和管理。只需在個人終端上運行./gnatsd便可!微服務

極其省資源。我已經對NATS進行了基準測試,它從未佔用超過150MB的RAM來爲單個主機上的100萬有效負載流入提供服務。僅供參考,單個谷歌Chrome瀏覽器所需更高。學習

驚人的表現。若是你到目前爲止尚未使用NATS,請中止閱讀並下載最新的二進制文件並嘗試一下。試用PC可承受的最大負載,NATS讓你滿意。對於NATS的用戶,你知道我在說什麼。測試

那麼爲何我會在全部語言中,以Dart爲NATS編寫驅動程序?

tl;dr - 必要是發明的母親。

實際緣由也簡單。我正在編寫一個帶有無服務器觸發器的Flutter應用程序,NATS彷佛沒有Dart驅動程序。因此我寫了!!

過程直截了當嗎?是,是的。NATS有很是直觀的基於文本的協議。因此,我所要作的是打開TCP套接字,並開始發送字節流:)

棘手的部分?好吧,集羣。雖然我沒有瀏覽其餘驅動程序,當一個羣集的主機出現故障時,將訂閱從一個主機移植到另外一個主機有點棘手。但Dart擁有Future和Stream類的最佳流式抽象,因此,一旦掌握了它,就變得輕鬆。

爲何選擇Dart?我我的認爲Dart將在將來3-5年內成爲編程語言的超人。谷歌正在大力投注Flutter;Dart如今可用共享代碼庫開發服務器、iOS、Android、MacOS、Linux和Windows應用程序;Flutter團隊如今經過Hummingbird項目將Flutter帶到網上。我猜谷歌不會讓我失望。

總結

在短期內,你將沒法在消息傳遞領域中找到像NATS這樣棒的東西。它強調雲原生操做、羣集和閃電般快速的消息傳遞,這簡直使人興奮。所以,我建議你們使用你選擇的語言來嘗試一下。

任何Dart/Flutter的開發者,請在Github上查看nats-dart,並告訴我是否合適。

相關文章
相關標籤/搜索