RocketMQ专辑程序员半栈工程师

rocketmq4.1.0部署详细步骤

2017-11-23  本文已影响100人  运维开发笔记
  1. 编译
    按照官方说明:http://rocketmq.apache.org/docs/quick-start/

git clone -b develop

https://github.com/apache/rocketmq.git

cd rocketmq

mvn -Prelease-all -DskipTests clean install -U

cd distribution/target/apache-rocketmq

其中,mvn打包时超时,我用了下面的镜像。

<mirror>
       <id>central</id>
       <name>Maven Repository Switchboard</name>
       <url>http://repo1.maven.org/maven2/</url>
       <mirrorOf>central</mirrorOf>
   </mirror>
  1. 环境
    centOS 6.5

chmod +x

startbroker.sh

配置broker-a.properties

brokerClusterName=HopRocketMqClusterProduction
 brokerName=broker-a-pro
 # 相同的brokerName,brokerId是0为master,>0为slave
 brokerId=0
 # 清理commitlog的时间,默认就是04
 deleteWhen=04
 # commitlog保存时间,默认就是72
 fileReservedTime=72
 # 角色ASYNC_MASTER,SYNC_MASTER,SLAVE;
 # ASYNC_MASTER:master接受消息成功即返回成功
 # SYNC_MASTER:至少一个slave接受消息成功,才返回成功
 brokerRole=ASYNC_MASTER
 # 刷盘方式SYNC_FLUSH和ASYNC_FLUSH
 flushDiskType=ASYNC_FLUSH

 # netty的监听端口
 listenPort=10922
 # namesrv地址
 namesrvAddr=10.135.26.200:9876;10.135.26.201:9876
 # 获取本地地址
 brokerIP1=10.135.26.200
 # 默认队列数量
 defaultTopicQueueNums=8
 # 自动创建Topic功能是否开启(线上建议关闭)
 autoCreateTopicEnable=false
 # 自动创建订阅组功能是否开启(线上建议关闭)
 autoCreateSubscriptionGroup=false

 # 磁盘空间最大使用率,超了拒收消息
 diskMaxUsedSpaceRatio=95
 # 存储commitlog路径
 storePathRootDir=/home/rocketmq410/mqstore/rocketmqstore-a
 storePathCommitLog=/home/rocketmq410/mqstore/rocketmqstore-a/commitlog

 # 自动创建以服务器名字命名的Topic功能是否开启
 brokerTopicEnable=false
 # 自动创建以集群名字命名的Topic功能是否开启
 clusterTopicEnable=false
 # 是否拒绝接收事务消息
 rejectTransactionMessage=false
 # 是否从地址服务器寻找Name Server地址,正式发布后,默认值为false
 fetchNamesrvAddrByAddressServer=false

 # 以下全是默认值,删掉即可

 # CommitLog刷盘间隔时间(单位毫秒)
 flushIntervalCommitLog=1000
 # 是否定时方式刷盘,默认是实时刷盘
 flushCommitLogTimed=false
 # 最大被拉取的消息字节数,消息在内存
 maxTransferBytesOnMessageInMemory=262144
 # 最大被拉取的消息个数,消息在内存
 maxTransferCountOnMessageInMemory=32
 # 最大被拉取的消息字节数,消息在磁盘
 maxTransferBytesOnMessageInDisk=65536
 # 最大被拉取的消息个数,消息在磁盘
 maxTransferCountOnMessageInDisk=8
 # 命中消息在内存的最大比例
 accessMessageInMemoryMaxRatio=40
 # 是否开启消息索引功能
 messageIndexEnable=true
 # 是否使用安全的消息索引功能,即可靠模式。
 # 可靠模式下,异常宕机恢复慢
 # 非可靠模式下,异常宕机恢复快
 messageIndexSafe=false
 # ha是主从同步相关配置
 haMasterAddress=

新建存储commitlog的目录 mkdir -p /home/rocketmq410/mqstore/rocketmqstore-a/commitlog

执行startbroker.sh

  1. client使用3.6.2版本,需要设置setVipChannelEnabled为false,否则发送失败。

  2. client使用3.6.2版本,代码日志可以看到消息已经消费成功,但是broker上的offset没变。
    client版本降为3.2.6问题解决。
    该问题在broker端是3.2.6版本上是一样的。

  3. 关于sendMessageWithVIPChannel,3.2.6以上的client默认是true
    broker的netty server会起两个通信服务。两个服务除了服务的端口号不一样,其他都一样。其中一个的端口(配置端口-2)作为vip通道,客户端可以启用本设置项把发送消息此vip通道。
    这个可以减少消息的丢失率。加快刷到硬盘的速度。这个通道很少生产者走的。所以,保证了消息稳定地到达了 broker 端,特别是 当 洪水般的消息涌过来的话,对于 金钱方面的消息,这个通道非常快速。

上一篇 下一篇

猜你喜欢

热点阅读