RocketMQ系列(二)---RocketMQ环境搭建

目录

RocketMQ环境搭建:

RockeMQ其他安装:

生产环境配置:

源代码导入学习:

RocketMQ源码目录说明:

Apache RocketMQ开发者指南

1. 概念和特性

2. 架构设计

3. 样例

4. 最佳实践

5. 运维管理

6. API Reference(待补充)


RocketMQ环境搭建:

官网参考地址:http://rocketmq.apache.org/docs/quick-start/

RocketMQ源代码地址:https://github.com/apache/rocketmq

RocketMQ-externals源代码地址:https://github.com/apache/rocketmq-externals

1、检查jdk、maven环境

2、maven环境按照步骤

(1)下载bin.tar.gz文件

(2)解压缩

(3)配置环境变量

#maven

MAVEN_HOME=/app/apache-maven-3.6.0

export PATH=$PATH:$MAVEN_HOME/bin

(4)source配置文件,检查maven版本,确定按照成功

mvn -version

3、按照rockeMQ,官网截图

提示没有unzip命令:

yum -y install zip unzip

Download & Build from Release

Click here to download the 4.3.0 source release. Also you could download a binary release from here.

Now execute the following commands to unpack 4.3.0 source release and build the binary artifact.

  > unzip rocketmq-all-4.3.0-source-release.zip
  > cd rocketmq-all-4.3.0/
  > mvn -Prelease-all -DskipTests clean install -U
  > cd distribution/target/apache-rocketmq

Start Name Server

  > nohup sh bin/mqnamesrv &
  > tail -f ~/logs/rocketmqlogs/namesrv.log
  The Name Server boot success...

Start Broker

  > nohup sh bin/mqbroker -n localhost:9876 &
  > tail -f ~/logs/rocketmqlogs/broker.log 
  The broker[%s, 172.30.30.233:10911] boot success...

Send & Receive Messages

Before sending/receiving messages, we need to tell clients the location of name servers. RocketMQ provides multiple ways to achieve this. For simplicity, we use environment variable NAMESRV_ADDR

 > export NAMESRV_ADDR=localhost:9876
 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Producer
 SendResult [sendStatus=SEND_OK, msgId= ...

 > sh bin/tools.sh org.apache.rocketmq.example.quickstart.Consumer
 ConsumeMessageThread_%d Receive New Messages: [MessageExt...

Shutdown Servers

> sh bin/mqshutdown broker
The mqbroker(36695) is running...
Send shutdown request to mqbroker(36695) OK

> sh bin/mqshutdown namesrv
The mqnamesrv(36664) is running...
Send shutdown request to mqnamesrv(36664) OK

RockeMQ其他安装:

rocketMQConsole安装:

1、git下载zip

2、unzip解压缩

3、修改配置文件

/app/rocketmq-externals-master/rocketmq-console/src/main/resources

vi application.properties

4、修改完毕后到console根目录,编译

mvn clean package -Dmaven.test.skip=true

如果是在Windows下的PowerShell命令行模式可能会报错,切换到cmd下执行

(官方说明)

With Docker

  • get docker image
mvn clean package -Dmaven.test.skip=true docker:build

or

docker pull styletang/rocketmq-console-ng
  • run it (change namesvrAddr and port yourself)
docker run -e "JAVA_OPTS=-Drocketmq.namesrv.addr=127.0.0.1:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false" -p 8080:8080 -t styletang/rocketmq-console-ng

Without Docker

require java 1.7

mvn spring-boot:run

or

mvn clean package -Dmaven.test.skip=true 

java -jar target/rocketmq-console-ng-1.0.0.jar

5、启动

java -jar /app/rocketmq-externals-master/rocketmq-console/target/rocketmq-console-ng-1.0.0.jar > /dev/null 2>&1 &

6、地址访问

http://192.168.207.126:9877

生产环境配置:

namesrvAddr=192.168.2.100:9876;192.168.2.101:9876
brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
listenPort=10911
strePathRootDir=/app/rocketmq/broker_a

1、namesrvAddr=192.168.2.100:9876;192.168.2.101:9876

NameServer地址,可以是多个,集群环境下。

2、brokerClusterName=DefaultCluster

cluster的地址,集群情况下,也可分成多个,比如按照业务,某个cluster单独处理某些业务。

3、brokerName=broker-a

Broker的名称,master和slave使用相同的name,也方便表示二者的主从关系。

4、brokerId=0

0表示Master,大于0表示其余Slave的id,一个master可以有多个slave

5、deleteWhen=04

和fileReservedTime配合,表示凌晨4点删除消息。

6、fileReservedTime=48

在磁盘上保存消息的时长,单位:小时,到期后自动删除超时的消息。

7、brokerRole=ASYNC_MASTER

三种:SYNC_MASTER、ASYNC_MASTER、SLAVE。前缀SYNC和ASYNC表示主从同步消息的机制,同步或异步,SYNC就表示同步完成后,返回消息发送成功的状态标志。

8、flushDiskType=ASYNC_FLUSH

刷盘策略:SYNC_FLUSH、ASYNC_FLUSH。同步刷盘,消息写入磁盘成功后再返回成功状态;异步刷盘下,消息写入page_cache即返回成功状态。

9、listenPort=10911

broker监听的端口号,避免重复或占用。

10、strePathRootDir=/app/rocketmq/broker_a

存储消息和配置信息的根目录。

注:所有配置信息更改后需要重启服务。

源代码导入学习:

源代码地址:https://github.com/apache/rocketmq.git

从github上拉取源代码,导入工具,如下:

RocketMQ源码目录说明:

1、broker:broker模块,启动进程;

2、client:消息客户端,包含消息生产者,消费者等;

3、common:公共包;

4、dev:开发者信息;

5、distribution:部署实例;

6、example:示例代码;

7、filter:消息过滤相关基础类;

8、filtersrv:消息过滤服务器实现相关,启动进程;

9、logAppender:日志实现;

10、namesrv:NameServer实现相关类,启动进程;

11、openmessaging:消息开放标准;

12、remoting:远程通信模块,基于netty;

13、srvutil:服务器工具类;

14、store:消息持久化存储相关;

15、style:checkstyle检查;

16、test:单元测试;

17、tools:工具类,监控命令等。

Apache RocketMQ开发者指南

这个开发者指南是帮忙您快速了解,并使用 Apache RocketMQ

1. 概念和特性

2. 架构设计

  • 架构(Architecture):介绍RocketMQ部署架构和技术架构。

  • 设计(Design):介绍RocketMQ关键机制的设计原理,主要包括消息存储、通信机制、消息过滤、负载均衡、事物消息等。

3. 样例

  • 样例(Example) :介绍RocketMQ的常见用法,包括基本样例、顺序消息样例、延时消息样例、批量消息样例、过滤消息样例、事物消息样例等。

4. 最佳实践

5. 运维管理

  • 集群部署(Operation):介绍单Master模式、多Master模式、多Master多slave模式等RocketMQ集群各种形式的部署方法以及运维工具mqadmin的使用方式。

6. API Reference(待补充)

发布了77 篇原创文章 · 获赞 90 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/weisong530624687/article/details/89880961