欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rocketMQ搭建2m2s集群

程序员文章站 2022-05-24 15:42:53
...

通过docker 搭建2master+2slave的集群

1、server创建容器

#创建server容器nameserver01
docker create -p 9876:9876 --name rmqserver01 -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -e "JAVA_OPTS=-Duser.home=/opt" -v /usr/local/haoke/rmq/rmqserver01/logs:/opt/logs -v /usr/local/haoke/rmq/rmqserver01/store:/opt/store foxiswho/rocketmq:server-4.3.2
#nameserver02
docker create -p 9877:9876 --name rmqserver02 -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -e "JAVA_OPTS=-Duser.home=/opt" -v /usr/local/haoke/rmq/rmqserver02/logs:/opt/logs -v /usr/local/haoke/rmq/rmqserver02/store:/opt/store foxiswho/rocketmq:server-4.3.2

2、创建broker容器

#创建broker容器 master broker01
# 使用host ,对外暴露三个端口
docker create --net host --name rmqbroker01 -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -v /usr/local/haoke/rmq/rmqbroker01/broker.conf:/etc/rocketmq/broker.conf -v /usr/local/haoke/rmq/rmqbroker01/logs:/opt/logs -v /usr/local/haoke/rmq/rmqbroker01/store:/opt/store foxiswho/rocketmq:broker-4.3.2 
#创建broker容器 master broker02
docker create --net host --name rmqbroker02 -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -v /usr/local/haoke/rmq/rmqbroker02/broker.conf:/etc/rocketmq/broker.conf -v /usr/local/haoke/rmq/rmqbroker02/logs:/opt/logs -v /usr/local/haoke/rmq/rmqbroker02/store:/opt/store foxiswho/rocketmq:broker-4.3.2 
#创建broker容器 master broker03
docker create --net host --name rmqbroker03 -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -v /usr/local/haoke/rmq/rmqbroker03/broker.conf:/etc/rocketmq/broker.conf -v /usr/local/haoke/rmq/rmqbroker03/logs:/opt/logs -v /usr/local/haoke/rmq/rmqbroker03/store:/opt/store foxiswho/rocketmq:broker-4.3.2 
#创建broker容器 master broker04
docker create --net host --name rmqbroker04 -e "JAVA_OPTS=-Duser.home=/opt" -e "JAVA_OPT_EXT=-server -Xms256m -Xmx256m -Xmn256m" -v /usr/local/haoke/rmq/rmqbroker04/broker.conf:/etc/rocketmq/broker.conf -v /usr/local/haoke/rmq/rmqbroker04/logs:/opt/logs -v /usr/local/haoke/rmq/rmqbroker04/store:/opt/store foxiswho/rocketmq:broker-4.3.2 

配置文件(目录为创建boker命令对应的目录文件broker.conf)

broker01


# 指向刚刚创建的2个nameserver
namesrvAddr=192.168.142.128:9876;192.168.142.128:9877
#集群的名字,通过名字将不同的服务组建成一个组
brokerClusterName=ItcastCluster
#指定broker的名字,master与slave中的服务名字是一样为一个组
brokerName=broker01
#这里brokerid=0表示该broker为master, 非0表示为slave
brokerId=0
#表示消息数据在服务器上面停留的时间,默认的是72
fileReservedTime=48
#表示在零晨的4点对过期的数据进行清理
deleteWhen=04
#角色(同步双写,异步复制),这里表示同步双写
brokerRole=SYNC_MASTER
#刷盘的方式,这里是异步的刷 盘
flushDiskType=ASYNC_FLUSH
#设置ip,不设置会使用默认的ip,外部不能进行访问
brokerIP1=192.168.142.128
#用户主从之间同步数据的ip
brokerIp2=192.168.142.128
#监听的端口,这里会暴露3个端口,设置的会+1,-2作为另外的两个端口
listenPort=10911

broker02

# 指向刚刚创建的2个nameserver
namesrvAddr=192.168.142.128:9876;192.168.142.128:9877
#集群的名字,通过名字将不同的服务组建成一个组
brokerClusterName=ItcastCluster
#指定broker的名字,master与slave中的服务名字是一样为一个组
brokerName=broker02
#这里brokerid=0表示该broker为master, 非0表示为slave
brokerId=0
#表示消息数据在服务器上面停留的时间,默认的是72
fileReservedTime=48
#表示在零晨的4点对过期的数据进行清理
deleteWhen=04
#角色(同步双写,异步复制),这里表示同步双写
brokerRole=SYNC_MASTER
#刷盘的方式,这里是异步的刷 盘
flushDiskType=ASYNC_FLUSH
#设置ip,不设置会使用默认的ip,外部不能进行访问
brokerIP1=192.168.142.128
#用户主从之间同步数据的ip
brokerIp2=192.168.142.128
#监听的端口,这里会暴露3个端口,设置的会+1,-2作为另外的两个端口
listenPort=10811

broker03

# 指向刚刚创建的2个nameserver
namesrvAddr=192.168.142.128:9876;192.168.142.128:9877
#集群的名字,通过名字将不同的服务组建成一个组
brokerClusterName=ItcastCluster
#指定broker的名字,master与slave中的服务名字是一样为一个组
brokerName=broker01
#这里brokerid=0表示该broker为master, 非0表示为slave
brokerId=1
#表示消息数据在服务器上面停留的时间,默认的是72
fileReservedTime=48
#表示在零晨的4点对过期的数据进行清理
deleteWhen=04
#角色(同步双写,异步复制),这里表示同步双写
brokerRole=SLAVE
#刷盘的方式,这里是异步的刷 盘
flushDiskType=ASYNC_FLUSH
#设置ip,不设置会使用默认的ip,外部不能进行访问
brokerIP1=192.168.142.128
#用户主从之间同步数据的ip
brokerIp2=192.168.142.128
#监听的端口,这里会暴露3个端口,设置的会+1,-2作为另外的两个端口
listenPort=10711

broker04

# 指向刚刚创建的2个nameserver
namesrvAddr=192.168.142.128:9876;192.168.142.128:9877
#集群的名字,通过名字将不同的服务组建成一个组
brokerClusterName=ItcastCluster
#指定broker的名字,master与slave中的服务名字是一样为一个组
brokerName=broker02
#这里brokerid=0表示该broker为master, 非0表示为slave
brokerId=1
#表示消息数据在服务器上面停留的时间,默认的是72
fileReservedTime=48
#表示在零晨的4点对过期的数据进行清理
deleteWhen=04
#角色(同步双写,异步复制),这里表示同步双写
brokerRole=SLAVE
#刷盘的方式,这里是异步的刷 盘
flushDiskType=ASYNC_FLUSH
#设置ip,不设置会使用默认的ip,外部不能进行访问
brokerIP1=192.168.142.128
#用户主从之间同步数据的ip
brokerIp2=192.168.142.128
#监听的端口,这里会暴露3个端口,设置的会+1,-2作为另外的两个端口
listenPort=10611

启动server

docker stop rmqserver01 rmqserver02

启动broker

docker stop rmqbroker01 rmqbroker02 rmqbroker03 rmqbroker04

启动rocketMq-console工具

rocketMQ搭建2m2s集群

docker start kickass_williams

 

访问

rocketMQ搭建2m2s集群

代码测试

package cn.itcast.rocketmq.sendmsg;

import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;

public class SyncProducer {

    public static void main(String[] args) throws Exception {

//        DefaultMQProducer producer = new DefaultMQProducer("haoke");
        DefaultMQProducer producer = new DefaultMQProducer("haoke");
        producer.setNamesrvAddr("192.168.142.128:9876;192.168.142.128:9877");
        producer.start();
        String msg = "我的第一个消息";
        Message message = new Message("my-test-topic", "mytag", msg.getBytes("UTF-8"));
        //发送消息
        SendResult sendResult = producer.send(message);
        System.out.println("消息id:" + sendResult.getMsgId());
        System.out.println("消息队列:" + sendResult.getMessageQueue());

        System.out.println(sendResult);
        producer.shutdown();
    }
}

rocketMQ搭建2m2s集群

查看rockermq-console

rocketMQ搭建2m2s集群

相关标签: 开发环境