nsq

编辑:全怿网互动百科 时间:2019-09-23 17:53:35
编辑 锁定
本词条缺少信息栏名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧!
NSQ 是一个实时分布式消息传递平台,旨在在规模、处理 每天数十亿的消息。

目录

它促进分布式分散的拓扑结构没有单点故障, 使容错性和高可用性,加上可靠的消息传递 保证。 看到特性和担保。
操作上,NSQ很容易配置和部署(所有参数指定在命令吗 线和编译的二进制代码没有运行时依赖关系)。 最大的灵活性,是不可知论者 数据格式(消息可以是JSON、MsgPack协议缓冲区,或其他)。 官方去 Python库提供开箱即用的,如果你有兴趣在建立自己的客户, 有一个协议规范。
NSQ是一个实时分布式消息传递平台。

nsq特性

  • 没有SPOF支持分布式拓扑
  • 水平扩展(没有经纪人,无缝地添加更多的节点到集群)
  • 低延迟消息传递(推性能)
  • 结合负载均衡多播消息路由风格
  • 擅长面向流媒体(高通量)和工作(低吞吐量)工作负载
  • 主要是内存中(除了高水位线消息透明地保存在磁盘上)
  • 运行时发现消费者找到生产者服务(nsqlookupd)
  • 传输层安全性(transport layer security,TLS)
  • 数据格式不可知
  • 一些依赖项(容易部署)和理智的,有界,默认配置
  • 在任何语言简单TCP协议支持客户端库
  • HTTP接口统计、管理行为和生产者(不需要客户端库发布)
  • 集成了statsd为实时检测
  • 健壮的集群管理界面(nsqadmin)

nsq担保

对于任何分布式系统,实现你的目标是使智能权衡的问题。 通过透明的现实我们希望设定预期如何这些权衡NSQ将部署在生产时的行为。
消息是耐用(默认)
虽然系统支持“释放阀”(——mem-queue-size这消息将后) 被透明地保存在磁盘上,它主要是一个内存中消息传递平台。
——mem-queue-size可以设置为0,以确保所有传入消息被保存到磁盘。 在这种情况下,如果一个节点失败,你容易破坏面(即减少了 操作系统或潜在的IO子系统失败)。
没有内置的复制。 然而,有各种各样的方法这种权衡管理 部署拓扑结构和技术等积极奴隶将主题保存到磁盘 容错时尚。
消息被交付至少一次
密切相关,这一假设nsqd节点不失败。
这意味着,出于各种原因,消息可以交付多个次(客户端 超时断开,requeues,等等)。 是客户的责任 或de-dupe幂等操作。
接收到的消息是无序的
不能依赖于消息的顺序交付给消费者。
类似于消息传递语义,这是requeues的结果,结合 内存和磁盘存储,每个的事实nsqd节点没有股票。
它是相对简单的实现宽松的要求(即对于给定的消费者的 消息命令而不是跨集群作为一个整体)通过引入延迟的一个窗口 你的消费者接受消息和命令他们前处理(虽然,为了保存 这个不变的一个必须下降下降的消息窗口)。
消费者最终找到所有主题生产商
发现服务(nsqlookupd)设计最终一致。nsqlookupd节点不协调维护状态或回答查询。
不影响网络分区可用性在某种意义上,双方的分区 还应查询。 部署拓扑结构减轻这些有最重要的影响 类型的问题。
词条标签:
科技