消息队列
2020-10-16 09:54:02 0 举报
AI智能生成
消息队列
作者其他创作
大纲/内容
消息队列作用
应用解耦
削峰填谷
消息分发
RocketMQ
发展历史
Notify(2007)
推模型(解决事务消息)
Napoli(2010)
MetaQ(2011)
拉模型(解决顺序消息和海量堆积问题)
RocketMQ
兼容并蓄,采用长轮询的拉取方式
架构
Producer(发信人):消息生产者,负责产生消息,一般由业务系统负责产生消息
Consumer(收信人):消息消费者,负责消费消息,一般是后台系统负责异步消费
Broker(负责暂存、传输的邮局):消息中转角色,负责存储消息,转发消息
NameServer(负责协调邮局的管理机构):主要负责对于源数据的管理,包括了对于Topic和路由信息的管理
启动顺序:NameServer→Broker,然后就可以发送、接收消息
开发语言:Java
并发级别:10万级,支持高吞吐
社区活跃度:高
支持集群部署
吞吐量大、高可用的原因之一
集群模式:
多master模式
多master、多slave异步复制模式
多master、多slave同步爽写模式
Kafka
开发语言:Java&scala
并发级别:10万级,支持高吞吐。一般配合大数据类的系统进行实时计算、日志采集等场景
社区活跃度:高
仅支持pull,其他三个支持多协议及pull/push模式
RabbitMQ
开发语言:erlang
并发级别:万级
社区活跃度:中
不支持批量消息操作
ActiveMQ
开发语言:Java
并发级别:万级
社区活跃度:低
四个均支持集群
ZeroMQ
开发语言:C
号称史上最快
与其他几款有本质上的区别,就像是个网络通讯库,对socket api的封装。功能上跟redis的pub/sub差不多,无法处理延时消息,如果消费者下线,则消息丢失
0 条评论
下一页