消息队列
- 作用:
-
解耦。解耦出调用方,特别是被调用方较多,且经常变更时。
-
异步。减少rt。
-
削峰。类似缓存,抗峰值流量。
- 缺点:
-
可用性降低。MQ挂掉影响这个系统。
-
复杂度提高。消息重复、丢失、顺序等问题。
-
一致性。部分消费成功,部分不成功情况。
rabbitMQ
- 使用AMQP模型。punlisher发布消息到exchange,根据routes发送到绑定的queue,push或者pull给consumer。
- 其他概念:
- broker:消息队列服务器。
- vhost:broker里面设置,用于用户分离。
- channal:每个客户端连接可建立多个channal,代表会话。
- 交换机有四种类型。
- 直连交换机:单播,根据routing key投递给队列。
- 扇形交换机:广播,发送到绑定的所有队列,无视routing key。
- 主题交换机:多播,根据routing key和队列绑定规则发送。
- 头交换机。
-
官方文档,入门教程。
kafka
- 多订阅者的Topic,每个topic分为多个partition,并行消费。通过offset来标识消费者已经消费的消息。
- 一个consumer group(逻辑消费者)由多个consumer组成,消费一个topic。
- 官方文档
对比
- rabbitMQ:erlang语言开发,依靠活跃的开源社区支持。
- rocketMQ:阿里出品。
- kafka:业界标准.
- 可扩展,高性能,多partition可容错。适合大数据领域等,可改造可靠性。
-
参考。
相关文章:
-
2022-12-23
-
2021-06-03
-
2022-01-17
-
2022-12-23
-
2022-12-23
-
2021-12-01
-
2021-10-04
-
2022-12-23
猜你喜欢
-
2022-01-09
-
2021-09-15
-
2021-07-27
-
2021-11-03
-
2021-08-02
-
2021-07-30
-
2022-12-23
相关资源
-
下载
2023-02-11
-
下载
2022-12-18
-
下载
2023-01-08