RocketMq环境搭建

目录

MQ作用

RocketMQ背景

MQ对比

RocketMQ环境搭建

搭建dashboard可视化界面


MQ作用

  • 异步
  • 解耦
  • 削峰

RocketMQ背景

​ RocketMQ是阿里巴巴开源的一个消息中间件,在阿里内部历经了双十一等很多高并发场景的考验,能够处理亿万级别的消息。2016年开源后捐赠给Apache,现在是Apache的一个顶级项目。

​ 早期阿里使用ActiveMQ,但是,当消息开始逐渐增多后,ActiveMQ的IO性能很快达到了瓶颈。于是,阿里开始关注Kafka。但是Kafka是针对日志收集场景设计的,他的高级功能并不是很贴合阿里的业务场景。尤其当他的Topic过多时,由于Partition文件也会过多,这就会加大文件索引的耗时,会严重影响IO性能。于是阿里才决定自研中间件,最早叫做MetaQ,后来改名成为RocketMQ。最早他所希望解决的最大问题就是多Topic下的IO性能压力。但是产品在阿里内部的不断改进,RocketMQ开始体现出一些不一样的优势。

MQ对比

优点 缺点 适合场景
Apache Kafka 吞吐量非常大,性能非常好,集群高可用。 会有丢数据的可能,功能比较单一 日志分析、大数据采集
RabbitMQ 消息可靠性高,功能全面。 erlang语言不好定制。吞吐量比较低。 企业内部小规模服务调用
Apache Pulsar 基于Bookeeper构建,消息可靠性非常高。 周边生态还有差距,目前使用的公司比较少。 企业内部大规模服务调用
Apache RocketMQ 高吞吐、高性能、高可用。功能全面。客户端协议丰富。使用java语言开发,方便定制。 服务加载比较慢。 几乎全场景,特别适合金融场景

RocketMQ环境搭建

1. 安装jdk环境,配置环境变量,jdk版本1.8

2. 下载并解压rocketmq安装包,rmq版本4.9.5

RocketMq环境搭建_第1张图片

 3. 由于虚拟机环境内存很小,而默认jvm内存配置太高, 调低内存(生产环境可不改)

        a 修改bin/runbroker.sh文件

RocketMq环境搭建_第2张图片

        b 修改bin/runbroker.sh文件 

RocketMq环境搭建_第3张图片

 4. 设置broker自动创建topic,在conf/broker.conf加如下配置

autoCreateTopicEnable=true

RocketMq环境搭建_第4张图片

5. 设置环境变量NAMESRV_ADDR(非必须, 测试工具用)

通过vi ~/.bash_profile添加以下配置。然后使用source ~/.bash_profile让配置生效。

export NAMESRV_ADDR='localhost:9876' 

 6. 分别启动nameserver服务和broker服务

# 启动nameserver服务

nohup bin/mqnamesrv &

# 启动broker服务

nohup bin/mqbroker &

# 关闭nameserver服务

bin/mqshutdown namesrv

# 关闭broker服务

bin/mqshutdown broker

jps验证是否启动成功

RocketMq环境搭建_第5张图片

7. 自带tool工具测试发送&消费消息

        a 发送消息

bin/tools.sh org.apache.rocketmq.example.quickstart.Producer

RocketMq环境搭建_第6张图片

        b 消费消息

bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer

RocketMq环境搭建_第7张图片

搭建dashboard可视化界面

1. 去官网下载dashboard源码

2. 注释默认配置rocketmq.config.namesrvAddr, 后面可动态配置

RocketMq环境搭建_第8张图片

3. 添加解析yml的maven依赖, 不然启动报错

        
            org.yaml
            snakeyaml
            1.27
        

4. maven打包成jar包

mvn clean package -Dmaven.test.skip=true

5. 把jar包拷贝到服务器, 并且在同级目录新建一个application.yml文件,配置namesrv地址

RocketMq环境搭建_第9张图片

application.yml内容配置:

rocketmq.config.namesrvAddr: 192.168.6.128:9876

6. java -jar启动jar包

java -jar rocketmq-dashboard-1.0.0.jar

7. 访问dashboard界面

RocketMq环境搭建_第10张图片

你可能感兴趣的:(java-rocketmq)