RocketMQ安装详解

一、nameserver

1、配置

mqnamesrv -h
usage: mqnamesrv [-c <arg>] [-h] [-n <arg>] [-p]
 -c,--configFile <arg>    Name server config properties file
 -h,--help                Print help
 -n,--namesrvAddr <arg>   Name server address list, eg: '192.168.0.1:9876;192.168.0.2:9876'
 -p,--printConfigItem     Print all config items
"Namesrv starts OK"

可以通过 -c 选项指定配置文件,配置文件中支持的选项可以通过 mqnamesrv -p 获取,常见的参数如下:

选项默认值描述
bindAddress0.0.0.0服务绑定的ip地址
listenPort9876默认的监听端口
serverWorkerThreads8服务端工作线程数
serverSocketBacklog1024TCP连接队列设置的大小

配置文件样例namesrv.conf

bindAddress=0.0.0.0
listenPort=9876
serverWorkerThreads=8
serverSocketBacklog=1024

2、启动服务

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

The Name Server boot success 表明该服务启动成功

二、broker

usage: mqbroker [-c <arg>] [-h] [-m] [-n <arg>] [-p]
 -c,--configFile <arg>       Broker config properties file
 -h,--help                   Print help
 -m,--printImportantConfig   Print important config item
 -n,--namesrvAddr <arg>      Name server address list, eg: '192.168.0.1:9876;192.168.0.2:9876'
 -p,--printConfigItem        Print all config item

1、配置文件broker.properties

brokerClusterName=DefaultCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH
选项默认值描述
brokerClusterNamebroker集群名
brokerName该broker名
brokerIdbrokerid
fileReservedTime文件保留时长
brokerRolebroker角色

主—从模式

  • 1、在主—从模式中,主节点和从节点需要指定相同的brokerName和brokerClusterName,并且主节点的brokerId必须设置为0,从节点的brokerId必须大于0,可以支持多个从节点;
  • 2、brokerRole 有三种 ASYNC_MASTER、SYNC_MASTER、SLAVE,代表异步复制主节点、同步复制主节点、从节点;如果对数据稳定性有要求,就使用 SYNC_MASTER + SLAVE 主从模式,如果并无要求 就使用 ASYNC_MASTER + SLAVE,平常测试就使用ASYNC_MASTER或者SYNC_MASTER。

Asynchronous Replication
HA (高可用集群(High Availability Cluster,简称HA Cluster))采用Asynchronous Replication(异步复制)策略,在 主节点(primary) 和从节点( secondary)间会存在消息延迟,

  • 优点:即使主节点磁盘损坏,丢失的消息也会很少,消息时效性(timeliness )不受影响。同时,Master 宕机后,消费者仍然可以从 Slave 消费,这个过程对应用是透明的,不需要人工干预,性能几乎与多 Master 节点相同;
  • 缺点:如果发生主服务器中断或磁盘损坏,少量消息将丢失;

Synchronous Dual Write 同步写
HA (高可用集群(High Availability Cluster,简称HA Cluster))采用Synchronous Dual Write(同步写)策略,只有当主节点和从节点都写入成功,才会向客户端返回成功;

  • 优点:数据和服务都没有单点故障,主节点中断时消息没有延迟,业务可用性和数据可用性都非常高;
  • 缺点: 性能较Asynchronous Replication降低10%左右;

2、启动broker和proxy

### start broker
$ nohup sh bin/mqbroker -n localhost:9876 --enable-proxy &

### verify broker
$ tail -f ~/logs/rocketmqlogs/proxy.log 
The broker[broker-a,192.169.1.2:10911] boot success...

“The broker[brokerName,ip:port] boot success…” 代表服务启动成功

usage: mqbroker [-c <arg>] [-h] [-m] [-n <arg>] [-p]
-c,--configFile <arg>       Broker config properties file
-h,--help                   Print help
-m,--printImportantConfig   Print important config item
-n,--namesrvAddr <arg>      Name server address list, eg:
-p,--printConfigItem        Print all config item

nohup   sh mqbroker -c ../conf/broker.conf  -n '10.240.184.81:9876;10.240.184.84:9876'   --enable-proxy &

3、broker 配置文件详解

ParameterDefaultDescription
listenPort10911监听端口,接收客户端连接
namesrvAddrnullnameServer address
brokerIP1绑定的ip地址
brokerIP2与brokerIP1相似When a master/slave broker exists, if the brokerIP2 property is configured on the broker master node, the broker slave node will connect to the brokerIP2 configured on the master node for synchronization
brokerNamenullbroker name
brokerClusterNameDefaultClusterbroker所属集群
brokerId00代表主节点, 其他大于0的值代表从节点
storePathCommitLog$HOME/store/commitlog/Path to store the commit log
storePathConsumerQueue$HOME/store/consumequeue/A path that consumes queue is stored
mapedFileSizeCommitLog1024 * 1024 * 1024(1G)commit log mapping file size
deleteWhen04应该在一天中的什么时间删除已经超过保留时长的提交日志
fileReservedTime72文件(提交日志)保留时长 (retention),单位小时
brokerRoleASYNC_MASTERSYNC_MASTER / ASYNC_MASTER / SLAVE
flushDiskTypeASYNC_FLUSHSYNC_FLUSH / ASYNC_FLUSH 刷盘机制待后续详解

三、发送、接收消息

$ 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...

四、关闭相关服务

关闭服务的时候需要指定组件名,比如broker、namesrv、controller

$ 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

引用

broker配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值