1.AMQP( Advanced Message Queuing Protocol )协议
- Publisher : 发布者
- Message : 消息
- Exchange: 交换机
- Queue : 队列
- Consumer: 消费者
工作过程:
Publisher 发布 Message 经由 Exchange ,根据路由规则 将收到的消息分发给与该交换机绑定的 Queue ,
最后 AMQP 代理会将消息投递给订阅了此队列的消费者
- 交换机类型
- direct exchange ( 直连型交换机 )
- funout exchange (扇型交换机)
- topic exchange (主题交换机)
- header exchange (头交换机)
- 消息确认机制
- 自动确认模式: 当消息代理发送消息给应用程序后立即删除
- 显式确认模式 : 等待应用发送一个ask后再删除
2.MQ的使用场景
- 异步处理: 服务将数据写入MQ,不需要等待消费者服务响应。提高服务响应速度。
- 应用解耦: 服务的通信不会因某个服务变化而全部变化
- 流量削锋: MQ能存储的消息量很大,所以可以把大量的消息请求先存下了,然后再并发的方式慢慢处理。
3.常用的MQ的优劣
| ActiveMQ | RabbitMQ | RocketMQ | Kafka | |
|---|---|---|---|---|
| 单机吞吐量 | 万级 | 万级 | 万级 | 十万级 |
| 可用性 | 高(主从) | 高(主从) | 非常高(分布式) | 非常高(分布式) |
| 持久化 | 内存、文件、数据库 | 内存、文件 | 磁盘文件 | |
| 缺点 | 性能比较差 | |||
| 优势 | 支持各种协议 | 延迟低(微秒级) | 模型简单,性能好 | 超高的吞吐量 |
RabbitMQ:
- 事件较少( 2万以上/秒 )
- 复杂路由
- 消息传递是可靠的
- 非顺序消费
kafka :
- 大量的事件(10万以上/秒)
- 支持顺序消费
RocketMQ:
- 严格的消息顺序
- 针对消息的过滤功能
- 消息拉取模式
- 订阅者水平扩展能力
- 消息订阅机制
- 亿级消息堆积能力
4.RabbitMq
- 可靠性: 持久化、传输确认、发布确认
- 灵活性: 通过
Exchange来路由消息 - 扩展性: 多个MQ节点组成一个集群
- 高可用: 队列可以在集群中设置镜像,节点出现问题队列仍然可用
消费模式:
- 推模式: 消费者订阅队列后,MQ将消息推送给消费者,直至取消订阅
- 拉模式:
5. RocketMq
能摸鱼就很舒服
Show Disqus Comments
扫码关注公众号:纯洁的微笑
发送 290992
即可立即永久解锁本站全部文章