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,并告诉我是否合适。

相关文章
相关标签/搜索