The first time to use rocketmq docker to install pit guide

first step:

1. Refer to the article
https://blog.csdn.net/fenglibing/article/details/92378090
and go through it first; when the client sends a message,
RocketMQ will specify it as the intranet address, using 172.17.0.3 . It will cause external network producers to be unable to connect to the broker.

Important steps of ps:
docker search rocketmq

curl https://registry.hub.docker.com/v1/repositories/foxiswho/rocketmq/tags\
| tr -d '[\[\]" ]' | tr '}' '\n'\
| awk -F: -v image='foxiswho/rocketmq' '{if(NR!=NF && $3 != ""){printf("%s:%s\n",image,$3)}}'

docker run -d -p 9876:9876 --name rmqserver  foxiswho/rocketmq:server-4.5.1

docker run -d -p 10911:10911 -p 10909:10909\
 --name rmqbroker --link rmqserver:namesrv\
 -e "NAMESRV_ADDR=namesrv:9876" -e "JAVA_OPTS=-Duser.home=/opt"\
 -e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m"\
 foxiswho/rocketmq:broker-4.5.1


docker run -d --name rmqconsole -p 8180:8080 --link rmqserver:namesrv\
 -e "JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876\
 -Dcom.rocketmq.sendMessageWithVIPChannel=false"\
 -t styletang/rocketmq-console-ng

Step two:

2 Reference article
https://www.cnblogs.com/pc-m/p/11046848.html

docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store --name rmqbroker --link rmqnamesrv:namesrv -e "NAMESRV_ADDR=namesrv:9876" rocketmqinc/rocketmq sh mqbroker -c ../conf/broker.conf

docker run -d -p 10911:10911 -p 10909:10909 -v `pwd`/data/broker/logs:/root/logs -v `pwd`/data/broker/store:/root/store --name rmqbroker --link rmqserver:namesrv -e "NAMESRV_ADDR=namesrv:9876" rocketmqinc/rocketmq sh mqbroker -c ../conf/broker.conf

The key is to start in this way; note that –link rmqnamesrv:namesrv should be consistent with the first blog post (or consistent with your own docker)

2.1 Change the configuration file

brokerIP1 = xxx.xxx.xxx.xxx. The ip address here is configured as the address of your own virtual machine

docker exec -it rmqbroker bash
cd ../conf
vi broker.conf

All configurations are as follows:
insert image description here

2.2 Restart and start the docker container

docker restart rmqbroker

3.java start

3.1 maven configuration

 <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-client</artifactId>
            <version>4.1.0-incubating</version>
</dependency>

3.2 java program

public class Producer {
    
    
    public static void main(String[] args) {
    
    
        DefaultMQProducer producer = new DefaultMQProducer("Producer");
        producer.setNamesrvAddr("192.168.56.10:9876");
        try {
    
    
            producer.start();

            Message msg = new Message("PushTopic",
                    "push",
                    "1",
                    "Just for test.".getBytes());

            SendResult result = producer.send(msg);
            System.out.println("id:" + result.getMsgId() +
                    " result:" + result.getSendStatus());

            msg = new Message("PushTopic",
                    "push",
                    "2",
                    "Just for test.".getBytes());

            result = producer.send(msg);
            System.out.println("id:" + result.getMsgId() +
                    " result:" + result.getSendStatus());

            msg = new Message("PushTopic",
                    "push",
                    "1",
                    "Just for test.".getBytes());

            result = producer.send(msg);
            System.out.println("id:" + result.getMsgId() +
                    " result:" + result.getSendStatus());
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }finally{
    
    
            producer.shutdown();
        }
    }
}

Run: see the result
insert image description here
As shown in the figure: three messages under Topic

Guess you like

Origin blog.csdn.net/qq_21561833/article/details/120252738