一种开源的分布式消息系统Nats

作者:chszs。未经博主同意不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

1、NATS介绍

NATS是一个开源的、轻量级的、高性能的分布式消息通信系统,实现了高可伸缩性和优雅的公布/订阅模型。

NATS适合云基础设施的消息通信系统、IoT设备消息通信和微服务架构。

Apcera团队负责维护NATSserver(Golang语言开发)和client(包含Python、Ruby、Node.js、Elixir、Java、Nginx、C和C#)。开源社区也贡献了一些client库,包含Rust、PHP、Lua等语言的库。

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

2、NATS系统的Broker的吞吐量

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

3、NATSserver与client

NATSserver:用Golang语言开发,发行版包含二进制公布包和Docker镜像。

NATSclient:包含了多种语言的client。

官方提供的client

还有社区提供的client:

clientAPI文档:

对于GolangclientAPI文档。须要这样:

1)用Git下载源代码及文档

$ git clone git@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)一直可用(dial tone)

3)极度轻量级(small footprint)

4)最多交付一次(fire and forget,消息发送后无论)

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

5、NATS用例场景

NATS理想的使用场景有:

1)寻址、发现

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

3)负载均衡

4)多路可伸缩能力

5)定位透明

6)容错

NATS设计哲学觉得,高质量的QoS应该在client构建,故仅仅建立了请求-应答。不提供:

1)持久化

2)事务处理

3)增强的交付模式

4)企业级队列

6、NATS消息通信模型

一种开源的分布式消息系统Nats的更多相关文章

  1. Kafka——分布式消息系统

    Kafka——分布式消息系统 架构 Apache Kafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群. 设 ...

  2. 分布式消息系统kafka

    kafka:一个分布式消息系统 1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布 ...

  3. 分布式消息系统jafka快速起步(转)

    Jafka 是一个开源的/性能良好的分布式消息系统.在上一篇文章中有所简单介绍.下面是一篇简单的入门文档.更多详细的文档参考wiki. Step 1: 下载最新的安装包 完整的安装指南在这里.最新的发 ...

  4. 分布式消息系统Jafka入门指南之二

    分布式消息系统Jafka入门指南之二 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 三.Jafka的文件夹结构 1.安装tree命令 $ sudo yu ...

  5. [kfaka] Apache Kafka:下一代分布式消息系统

    简介 Apache Kafka是分布式发布-订阅消息系统.它最初由LinkedIn公司开发,之后成为Apache项目的一部分.Kafka是一种快速.可扩展的.设计内在就是分布式的,分区的和可复制的提交 ...

  6. 在Centos 7上安装配置 Apche Kafka 分布式消息系统集群

    Apache Kafka是一种颇受欢迎的分布式消息代理系统,旨在有效地处理大量的实时数据.Kafka集群不仅具有高度可扩展性和容错性,而且与其他消息代理(如ActiveMQ和RabbitMQ)相比,还 ...

  7. [Apache Pulsar] 企业级分布式消息系统-Pulsar快速上手

    Pulsar快速上手 前言 如果你还不了解Pulsar消息系统,可以先看上一篇文章 企业级分布式消息系统-Pulsar入门基础 Pulsar客户端支持多个语言,包括Java,Go,Pytho和C++, ...

  8. 分布式消息系统Kafka初步

    终于可以写kafka的文章了,Mina的相关文章我已经做了索引,在我的博客中置顶了,大家可以方便的找到.从这一篇开始分布式消息系统的入门. 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到 ...

  9. KAFKA分布式消息系统[转]

    KAFKA分布式消息系统  转自:http://blog.chinaunix.net/uid-20196318-id-2420884.html Kafka[1]是linkedin用于日志处理的分布式消 ...

随机推荐

  1. 简单实现一个EventEmiter

    在前端开发中,“发布-订阅”也是“观察者模式”是一种常用的设计模式:之前对设计模式没有过深的认识,直到前段时间在封装一个运用AngularJS封装table组件时,遇到一个难题,那就是AngularJ ...

  2. Java NIO-3

    http://itindex.net/detail/55603-java-nio-%E6%8A%80%E6%9C%AF

  3. 什么情况下,会用到fiddler或者charles?

    有的页面,比如设限制的html页面,比如原生页面,只能在手机APP里面查看,无法在电脑浏览器中打开查看,这时候,需要用fiddler抓包来查看返回数据,定位问题.

  4. bzoj 3285 离散对数解指数方程

    /************************************************************** Problem: 3285 User: idy002 Language: ...

  5. consul vs etcd3

    https://sysadmin.libhunt.com/project/etcd/vs/consul

  6. 使用chrome控制台作为日志查看器

    很多时候,我们需要查看日志的实时输出,这个时候往往只能选择控制台.我这里的日志框架是serilog,它有一个好处是控制台输出时可以高亮的形式显示其参数结构信息,如下图所示 但也存在许多不方便的地方: ...

  7. Dapper Miser implementation of CMSIS-DAP, MC HCK as SWD Adapter

    Dapper Miser In late 2013, I created a functional implementation of CMSIS-DAP that runs in a low cos ...

  8. 【优化】COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)等

    http://blog.itpub.net/26736162/viewspace-2136339/

  9. LINUX 内核学习博客

    http://www.cnblogs.com/yjf512/category/385367.html

  10. ADO.NET理论+实践

    题记: 每一事物的产生和存在都有其特定的理由.  理论:ADO.NET是一组与数据源进行交互的面向对象类库.通常情况下数据源就是数据库,当然同样也能是文本文件,Excel表格或XML文件,我们知道的数 ...