NSQ - 陈冶
2.49 MB
37 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档介绍了NSQ(舜飞消息队列服务)的核心概念和功能。NSQ是一个面向跨进程和跨服务器通信的组件,支持异步通信,用于数据缓冲、广播、负载均衡和消费反馈。其架构包括Topic、Channel、内存队列和磁盘队列的混合使用,NSQd和NSQ Lookupd支持分布式部署和横向扩展。然而,NSQ也存在一些问题,如Topic到Channel的高消费开销、大量小数据包导致系统调用频繁以及Producer缺乏官方分布式解决方案。 | ||
AI总结 | ||
《NSQ - 陈冶》总结
NSQ是消息队列服务,主要用于跨进程/跨服务器通讯,支持异步通信,能够将可并行化处理的同步操作解耦。
### 使用需求
1. 数据缓冲:提升系统可用性,缓冲服务故障。
2. 数据广播:将数据分发给多个服务。
3. 负载均衡:提高消费者的扩展性。
4. 消费反馈:确保消息不丢失。
5. MQ特性:支持分布式部署,避免单点故障,具备横向扩展性。
### NSQ概念
1. 核心组件:Topic和Channel。
2. 数据存储:内存队列和磁盘队列混合使用,优化性能和可用性。
3.消费逻辑:通过`MaxInFlight`控制消息流速。
### 总结
- **优点**:
• 将复杂度集中在服务端,降低客户端使用难度。
• 数据无冗余。
- **缺点**:
• 数据广播空间复杂度为O(N)。
• 内存队列与磁盘队列混合使用可能影响时序性。
• Topic到Channel的消费开销较高。
• 大量Fin包可能导致系统调用频度高。
• Producer没有官方提供的分布式解决方案。
### NSQ解决方案
1. 分布式架构:通过`NSQd`和`NSQ Lookupd`实现分布式部署,解决单点故障和性能瓶颈。
2. 内部逻辑:`NSQd`处理消息存储和分发,`NSQ Lookupd`负责服务发现和消费者管理。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
30 页请下载阅读 -
文档评分