RocketMQ集群

本文详细描述了如何在四台虚拟机上部署RocketMQ4.7.1版本,涉及NameServer和两组BrokerServer的配置,包括Java环境安装、集群配置以及解决HMACSHA1签名错误的问题。
摘要由CSDN通过智能技术生成

最新版本RocketMQ 4.7.1,基于Dledger高可用集群部署。

1、新建四台虚拟机配置及情况如下:

192.168.111.129  vm1   ns1  bs11  2U/2G CentOS7
192.168.111.130  vm2   bs12 bs13 2U/2G CentOS7
192.168.111.131  vm3   ns2  bs21  2U/2G CentOS7
192.168.111.132  vm4   bs22 bs23 2U/2G CentOS7

包括2个NameServer实例和两组3实例的BrokerServer组

2、设置主机名及host文件

HOSTNAME=vm1/vm2/vm3/vm4->四台虚拟机,虚拟机编排好。

hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
cat >>/etc/hosts<<EOF
192.168.111.129 vm1 ns1  bs11
192.168.111.130 vm2 bs12 bs13
192.168.111.131 vm3 ns2  bs21
192.168.111.122 vm4 bs22 bs23
EOF

3、每台虚拟机安装java和rocketmq

1、java安装

sudo yum install java-1.8.0-openjdk-devel

java -version

openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)


2、rocketmq下载、安装及配置

卸载地址:rocketmq下载地址

mkdir -pv /usr/local/RocketMQ

cd /usr/local/RocketMQ

unzip /tmp/rocketmq-all-4.7.1-bin-release.zip

cd /usr/local/ ln -s RocketMQ/rocketmq-all-4.7.1-bin-release rocketmq

echo 'export ROCKETMQ_HOME=/usr/local/rocketmq'>>/etc/profile

echo 'export PATH=$PATH:$ROCKETMQ_HOME/bin'>>/etc/profile

source /etc/profile

mkdir -pv /data/rocketmq/store/commitlog

mkdir -pv /data/logs

cd $ROCKETMQ_HOME/conf sed -i 's#${user.home}#/data#g' *.xml

cd $ROCKETMQ_HOME/bin

sed -i 's/-Xms4g/-Xms1g/g' runserver.sh

sed -i 's/-Xmx4g/-Xmx1g/g' runserver.sh

sed -i 's/-Xms8g/-Xms1g/g' runbroker.sh

sed -i 's/-Xmx8g/-Xmx1g/g' runbroker.sh

4、配置集群

1、vm1和vm3配置启动NameServer

cd $ROCKETMQ_HOME/bin
sh mqnamesrv &
# sh mqshutdown namesrv
jps -m
netstat -tupln|grep 9876

echo '# RocketMQ 4.7.1 NameServer start and stop'>>/etc/rc.local
echo 'source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqnamesrv &'>>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown namesrv'>>/etc/rc.local

2、vm1和vm2配置启动第一个BrokerServer组

vm1 配置 bs11

Role=bs11
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local

vm2 配置 bs12

Role=bs12
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local

vm2 配置 bs13

Role=bs13
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local
 

主机验证配置

cd $ROCKETMQ_HOME

sh bin/mqadmin clusterList -n ns1:9876

sh bin/mqadmin clusterList -n ns2:9876

报错了:

sh bin/mqadmin clusterList -n ns1:9876

RocketMQLog:WARN No appenders could be found for logger (io.netty.util.internal.PlatformDependent0).
RocketMQLog:WARN Please initialize the logger system properly.
org.apache.rocketmq.tools.command.SubCommandException: ClusterListSubCommand command failed
    at org.apache.rocketmq.tools.command.cluster.ClusterListSubCommand.execute(ClusterListSubCommand.java:93)
    at org.apache.rocketmq.tools.command.MQAdminStartup.main0(MQAdminStartup.java:139)
    at org.apache.rocketmq.tools.command.MQAdminStartup.main(MQAdminStartup.java:90)
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=[10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
    at org.apache.rocketmq.acl.common.AclSigner.signAndBase64Encode(AclSigner.java:84)
    at org.apache.rocketmq.acl.common.AclSigner.calSignature(AclSigner.java:73)
    at org.apache.rocketmq.acl.common.AclSigner.calSignature(AclSigner.java:68)
    at org.apache.rocketmq.acl.common.AclUtils.calSignature(AclUtils.java:69)
    at org.apache.rocketmq.acl.common.AclClientRPCHook.doBeforeRequest(AclClientRPCHook.java:44)
    at org.apache.rocketmq.remoting.netty.NettyRemotingAbstract.doBeforeRpcHooks(NettyRemotingAbstract.java:172)
    at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeSync(NettyRemotingClient.java:372)
    at org.apache.rocketmq.client.impl.MQClientAPIImpl.getBrokerClusterInfo(MQClientAPIImpl.java:1331)
    at org.apache.rocketmq.tools.admin.DefaultMQAdminExtImpl.examineBrokerClusterInfo(DefaultMQAdminExtImpl.java:306)
    at org.apache.rocketmq.tools.admin.DefaultMQAdminExt.examineBrokerClusterInfo(DefaultMQAdminExt.java:251)
    at org.apache.rocketmq.tools.command.cluster.ClusterListSubCommand.printClusterBaseInfo(ClusterListSubCommand.java:172)
    at org.apache.rocketmq.tools.command.cluster.ClusterListSubCommand.execute(ClusterListSubCommand.java:88)
    ... 2 more
Caused by: org.apache.rocketmq.acl.common.AclException: [10015:signature-failed] unable to calculate a request signature. error=Algorithm HmacSHA1 not available
    at org.apache.rocketmq.acl.common.AclSigner.sign(AclSigner.java:63)
    at org.apache.rocketmq.acl.common.AclSigner.signAndBase64Encode(AclSigner.java:79)
    ... 13 more
Caused by: java.security.NoSuchAlgorithmException: Algorithm HmacSHA1 not available
    at javax.crypto.Mac.getInstance(Mac.java:181)
    at org.apache.rocketmq.acl.common.AclSigner.sign(AclSigner.java:57)
    ... 14 more


结决方案:

cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre/lib/ext
[root@centos702 ext]# cd /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64/jre/lib/ext
[root@centos702 ext]# cp sunjce_provider.jar  /usr/local/RocketMQ/rocketmq-all-4.7.1-bin-release/lib

3、vm3和vm4配置启动第二个BrokerServer组,即组扩展

vm3 配置 bs21

Role=bs21
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local

vm4 配置 bs22

Role=bs22
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local

vm4 配置 bs23

Role=bs23
Rolegrep -E '309|409'

echo '# RocketMQ 4.7.1 BrokerServer start and stop'>>/etc/rc.local
echo "source /etc/profile;sh \${ROCKETMQ_HOME}/bin/mqbroker -c\$ROCKETMQ_HOME/conf/dledger/Vincent-Group1-${Role}.conf &">>/etc/rc.local
echo '# source /etc/profile;sh ${ROCKETMQ_HOME}/bin/mqshutdown broker'>>/etc/rc.local

5、主机验证配置


6、附录:

安装一些初始化工具组件:yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget   zip unzip net-tools vim -y 

到这集群就搭建完成了。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值