UDN-企业互联网技术人气社区

板块导航

浏览  : 2217
回复  : 0

[其它] 一种开源的分布式消息系统NATS

[复制链接]
胭脂粉的头像 楼主
发表于 2016-10-28 10:07:04 | 显示全部楼层 |阅读模式
  1、NATS介绍

  NATS是一个开源的、轻量级的、高性能的分布式消息通信系统,实现了高可伸缩性和优雅的发布/订阅模型。NATS适合云基础设施的消息通信系统、IoT设备消息通信和微服务架构。Apcera团队负责维护NATS服务器(Golang语言开发)和客户端(包括Python、Ruby、Node.js、Elixir、Java、Nginx、C和C#),开源社区也贡献了一些客户端库,包括Rust、PHP、Lua等语言的库。

  采用了NATS系统的公司有:爱立信、HTC、百度、西门子、VMware。

  2、NATS系统的Broker的吞吐量

  与ActiveMQ、Kafka、Kestrel、NSQ、RabbitMQ、Redis在Broker吞吐量方面的比较:

  
161026143365671.png


  3、NATS服务器与客户端

  NATS服务器:用Golang语言开发,发行版包括二进制发布包和Docker镜像。

  NATS客户端:包含了多种语言的客户端。

  官方提供的客户端

  Goclient:https://github.com/nats-io/nats

  Node.jsclient:https://github.com/nats-io/node-nats

  Rubyclient:https://github.com/nats-io/ruby-nats

  Javaclient:https://github.com/nats-io/jnats

  Cclient:https://github.com/nats-io/cnats

  C#client:https://github.com/nats-io/csnats

  NginxCclient:https://github.com/nats-io/nginx-nats

  还有社区提供的客户端:

  Spring:https://github.com/cloudfoundry-community/java-nats

  Lua:https://github.com/DawnAngel/lua-nats

  PHP:https://github.com/repejota/phpnats

  Python:https://github.com/mcuadros/pynats

  Scala:https://github.com/tyagihas/scala_nats/

  Haskell:https://github.com/ondrap/nats-queue

  客户端API文档:

  CclientAPIdocumentation:http://nats-io.github.io/cnats/

  C#clientAPIdocumentation:http://nats-io.github.io/csnats/

  JavaclientAPIdocumentation:http://nats-io.github.io/jnats

  对于Golang客户端API文档,需要这样:

  1)用Git下载源码及文档

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

  2)进入源码目录

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

  3)运行Godoc文档建立工具

  $godoc-http=:6060

  4)浏览器访问API文档:http://localhost:6060/pkg/github.com/nats-io/nats/

  4、NATS的设计目标

  NATS的设计原则是:高性能、可伸缩能力、易于使用,基于这些原则,NATS的设计目标包括:

  1)高性能(fast)

  2)一直可用(dialtone)

  3)极度轻量级(smallfootprint)

  4)最多交付一次(fireandforget,消息发送后不管)

  5)支持多种消息通信模型和用例场景(flexible)

  5、NATS用例场景

  NATS理想的使用场景有:

  1)寻址、发现

  2)命令和控制(控制面板)

  3)负载均衡

  4)多路可伸缩能力

  5)定位透明

  6)容错

  NATS设计哲学认为,高质量的QoS应该在客户端构建,故只建立了请求-应答,不提供:

  1)持久化

  2)事务处理

  3)增强的交付模式

  4)企业级队列

  6、NATS消息通信模型

文章来源:Linux公社
文章作者:chszs

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部