Kafka,Mq,Redis作为消息队列使用时的差异? - 知乎 (zhihu.com)
ZooKeeper服务注册发现,分布式锁
golang一般使用etcd做服务注册发现
1. 消息队列的通信模型
- 点对点模式
- 发布/订阅
2.kafka使用场景
- 消息队列
- 追踪网站活动
- Metrics(指标。传输监控数据)
- 日志聚合
3.松耦合架构的优势
- 解耦
- 异步处理能力
- 缓冲能力
- 伸缩性
- 扩展性
4. MQ vs RPC
MQ 异步 ,RPC 同步
MQ 松耦合, RPC 强依赖
5. MQ场景
- 异步处理
- 应用解耦
- 日志处理 kafka消息队列
- 消息通讯
- 流量削峰
6.MQ选型
nsq
NATS 分布式消息队列系统:NATS是一个开源、轻量级、高性能的分布式消息中间件,实现了高可伸缩性和优雅的Publish/Subscribe模型,使用Golang语言开发。NATS的开发哲学认为高质量的QoS应该在客户端构建,故只建立了Request-Reply,不提供 1.持久化 2.事务处理 3.增强的交付模式 4.企业级队列。
7.RabbitMQ
交换器类型(4种)
Direct Exchange:完全匹配
Fanout Exchange:广播
Topic(#匹配多个,*匹配单个(.分隔))