rocketmq和rabbitmq的区别rocketmq使用?
1. RabbitMQ
是基于AMQP 协议的 具有跨语言的特性,支持多种开发语言,基于erlang语言编写,天生具有高并发.
2. rocketMQ
是基于JMS的 是阿里巴巴旗下开发的mq,只能用java语言,声称可用性极高,消息从来不会丢失.
两者的区别和联系:
JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
(图片来源网络,侵删)
JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
JMS规定了两种消息模型;而AMQP的消息模型更加丰富
rocketmq工作模式?
(1)集群模式:同一个consumerGroupName下的多个consumer平摊消息队列中的消息,例如三个消费者处于同一个group下,且订阅了同一个topic,加入生产者往消息队列中放入了这个topic的6条消息,那么消费者消费消息的总和为6条,消费完的消息不能被其他实例所消费
(图片来源网络,侵删)
(2)广播模式:指的是consumer属于同一个ConsumerGroup,消息也会被ConsumerGroup中的每个Consumer都消费一次,广播消费中ConsumerGroup概念可以认为在消息划分方面无意义
rocketmq双主模式优缺点?
1、单机模式 (配置简单,单master宕机后未恢复前消息不可发送、订阅和消费,整个系统都瘫痪了,风险较大)
2、多master (配置简单,磁盘配置raid10,单master宕机未恢复前消息不可订阅和消费)