先说下RocketMQ的优点:
-
单机吞吐量:十万级
-
可用性:非常高,分布式架构
-
消息可靠性:经过参数优化配置,消息可以做到0丢失
-
功能支持:MQ功能较为完善,还是分布式的,扩展性好
-
支持10亿级别的消息堆积,不会因为堆积导致性能下降
-
源码是java,我们可以自己阅读源码,定制自己公司的MQ,可以掌控
缺点:
-
支持的客户端语言不多,目前是java及c++,其中c++不成熟;
-
社区活跃度一般
-
没有在 mq 核心中去实现JMS等接口,有些系统要迁移需要修改大量代码
docker部署服务端:
rocketmq-server
docker run --name rocketmq.server -d \-p 9876:9876 \foxiswho/rocketmq:server
rocketmq-broker
docker run --name rocketmq.broker -d \-p 10911:10911 \-p 10909:10909 \--link rocketmq.server:namesrv \-e "NAMESRV_ADDR=namesrv:9876" \-e "JAVA_OPTS=-Duser.home=/opt" \-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \-v `pwd`/conf/broker.conf:/etc/rocketmq/broker.conf \foxiswho/rocketmq:broker
rocket-console
docker run --name rocketmq.console \-p 8180:8080 \--link rocketmq.server:namesrv \-e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -t \styletang/rocketmq-console-ng
分别启动相关服务,若不知道docker怎么安装的可以看我以前的文章
访问mq的查看页面

客户端:
用到的依赖:
<!-- https://mvnrepository.com/artifact/org.apache.rocketmq/rocketmq-client --><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>4.5.2</version></dependency>
生产者:
package org.jeemp.rocketmq;import org.apache.rocketmq.client.producer.DefaultMQProducer;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class JeempProducer {private Logger logger = LoggerFactory.getLogger(JeempProducer.class);private String producerGroupName;private String nameServerAddr;private DefaultMQProducer defaultMQProducer;public void setNameServerAddr(String nameServerAddr) {this.nameServerAddr = nameServerAddr;}public void setProducerGroupName(String producerGroupName) {this.producerGroupName = producerGroupName

本文介绍了Spring集成RocketMQ的过程,包括RocketMQ的高吞吐量、高可用性和消息可靠性等优点,同时也提到了其客户端语言支持不足和社区活跃度一般的缺点。文章详细阐述了RocketMQ的docker部署步骤,以及如何配置Spring的生产者和消费者。通过一个简单的服务接口验证了RocketMQ的可用性。
最低0.47元/天 解锁文章
5618

被折叠的 条评论
为什么被折叠?



