mq消息中间件面前突击
参考文章:Rocketmq原理&最佳实践
主讲:Rocketmq
1、mq优势: 流量缓冲(削峰填谷)、系统解耦、性能提升、蓄流压测
2、rocketmq主要优势:事务型消息、支持18个延迟消息级别、消息失败重发(指定次数和间隔时间)、消费端根据tag过滤
3、rocketmq和kafka对比:
精简,面试mq必答题
指标 | rocketMq | kafka |
应用场景 | 非日志可靠传输消息(订单、充值、交易) | 日志消息传输(日志收集、监控、常规消息系统) |
语言 | java | scala |
持久化/部署 | 磁盘文件、单机/集群(高可用、分布式、主从) | 磁盘文件、单机/集群(高可用、分布式、主从) |
集群管理 | 命名空间 | zookeeper |
选主方式 | 不支持自动选主,同brokername,brokerid=0为master,其他未slave | 通过zk在isr中自动选举leader |
自动切换 | 不支持,master失效后可从slave消费,master无法恢复,异步消费可能会出现消息丢失 | 允许n-1个副本失效,失效后自动选举 |
性能 | 10字节,单机7w/s,3台集群,12w/s | 10字节,百万每秒 |
复制备份 | 同步双写 异步复制:slave线程从master拉取 |
消息->leader.log<--pull--flower-->ack,log-->维护同步列表,落后太多被删除 |
消息投递 | 支持pull,push两种模式,毫秒级 | 毫秒级,消费端轮询时间决定 |
总结优劣:
太懒了,直接上图: