mq

2021/04/02

1.AMQP( Advanced Message Queuing Protocol )协议

  • Publisher : 发布者
  • Message : 消息
  • Exchange: 交换机
  • Queue : 队列
  • Consumer: 消费者

工作过程:

Publisher 发布 Message 经由 Exchange ,根据路由规则 将收到的消息分发给与该交换机绑定的 Queue ,

最后 AMQP 代理会将消息投递给订阅了此队列的消费者

  1. 交换机类型
    • direct exchange ( 直连型交换机 )
    • funout exchange (扇型交换机)
    • topic exchange (主题交换机)
    • header exchange (头交换机)
  2. 消息确认机制
    • 自动确认模式: 当消息代理发送消息给应用程序后立即删除
    • 显式确认模式 : 等待应用发送一个ask后再删除

2.MQ的使用场景

  • 异步处理: 服务将数据写入MQ,不需要等待消费者服务响应。提高服务响应速度。
  • 应用解耦: 服务的通信不会因某个服务变化而全部变化
  • 流量削锋: MQ能存储的消息量很大,所以可以把大量的消息请求先存下了,然后再并发的方式慢慢处理。

3.常用的MQ的优劣

  ActiveMQ RabbitMQ RocketMQ Kafka
单机吞吐量 万级 万级 万级 十万级
可用性 高(主从) 高(主从) 非常高(分布式) 非常高(分布式)
持久化 内存、文件、数据库 内存、文件 磁盘文件  
缺点 性能比较差      
优势 支持各种协议 延迟低(微秒级) 模型简单,性能好 超高的吞吐量

RabbitMQ:

  1. 事件较少( 2万以上/秒 )
  2. 复杂路由
  3. 消息传递是可靠的
  4. 非顺序消费

kafka

  1. 大量的事件(10万以上/秒)
  2. 支持顺序消费

RocketMQ:

  1. 严格的消息顺序
  2. 针对消息的过滤功能
  3. 消息拉取模式
  4. 订阅者水平扩展能力
  5. 消息订阅机制
  6. 亿级消息堆积能力

4.RabbitMq

  • 可靠性: 持久化、传输确认、发布确认
  • 灵活性: 通过Exchange来路由消息
  • 扩展性: 多个MQ节点组成一个集群
  • 高可用: 队列可以在集群中设置镜像,节点出现问题队列仍然可用

消费模式:

  • 推模式: 消费者订阅队列后,MQ将消息推送给消费者,直至取消订阅
  • 拉模式:

5. RocketMq

能摸鱼就很舒服

Show Disqus Comments
扫码关注公众号:纯洁的微笑
发送 290992
即可立即永久解锁本站全部文章