feat: 新增rocketmq单点、集群版本
This commit is contained in:
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.81
|
||||||
|
brokerName=rmqbroker1
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=0
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=ASYNC_MASTER
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.82
|
||||||
|
brokerName=rmqbroker2
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=1
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=SLAVE
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.83
|
||||||
|
brokerName=rmqbroker3
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=2
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=SLAVE
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
@@ -0,0 +1,85 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
# 网桥 -> 方便相互通讯
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipam:
|
||||||
|
driver: default
|
||||||
|
config:
|
||||||
|
- subnet: "172.20.0.0/24"
|
||||||
|
|
||||||
|
services:
|
||||||
|
namesrv:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqnamesrv
|
||||||
|
ports:
|
||||||
|
- "9876:9876"
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.80
|
||||||
|
command: sh mqnamesrv
|
||||||
|
broker1:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker1
|
||||||
|
ports:
|
||||||
|
- "10909:10909"
|
||||||
|
- "10911:10911"
|
||||||
|
- "10912:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./broker-master/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.81
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
broker2:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker2
|
||||||
|
ports:
|
||||||
|
- "10809:10909"
|
||||||
|
- "10811:10911"
|
||||||
|
- "10812:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./broker-slave1/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.82
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
broker3:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker3
|
||||||
|
ports:
|
||||||
|
- "10709:10909"
|
||||||
|
- "10711:10911"
|
||||||
|
- "10712:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./broker-slave2/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.83
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
rmqdashboard:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/rocketmq-dashboard:latest
|
||||||
|
container_name: rocketmq-dashboard
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.84
|
||||||
|
environment:
|
||||||
|
- JAVA_OPTS= -Xms256M -Xms512M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
docker-compose -f docker-compose.yml -p rocketmq up -d
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
# RocketMQ 主从版
|
||||||
|
|
||||||
|
https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart
|
||||||
|
|
||||||
|
### 部署方式
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Maven依赖
|
||||||
|
|
||||||
|
```xml
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.rocketmq</groupId>
|
||||||
|
<artifactId>rocketmq-client</artifactId>
|
||||||
|
<version>4.9.6</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.producer.DefaultMQProducer;
|
||||||
|
import org.apache.rocketmq.client.producer.SendResult;
|
||||||
|
import org.apache.rocketmq.common.message.Message;
|
||||||
|
|
||||||
|
public class ProducerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建生产者实例,并设置生产者组名
|
||||||
|
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
producer.setNamesrvAddr("localhost:9876");
|
||||||
|
producer.start();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建消息实例,指定 topic、Tag和消息体
|
||||||
|
Message msg = new Message("TestTopic", "TagA", ("Hello RocketMQ").getBytes());
|
||||||
|
// 发送消息并获取发送结果
|
||||||
|
SendResult sendResult = producer.send(msg);
|
||||||
|
System.out.println("Message sent: " + new String(msg.getBody()));
|
||||||
|
System.out.println("Send result: " + sendResult);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.out.println("Message sending failed.");
|
||||||
|
} finally {
|
||||||
|
// 关闭生产者
|
||||||
|
producer.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 消费者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
|
||||||
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ConsumerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建消费者实例,并设置消费者组名
|
||||||
|
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
consumer.setNamesrvAddr("localhost:9876");
|
||||||
|
// 订阅指定的主题和标签(* 表示所有标签)
|
||||||
|
consumer.subscribe("TestTopic", "*");
|
||||||
|
|
||||||
|
// 注册消息监听器
|
||||||
|
consumer.registerMessageListener(new MessageListenerConcurrently() {
|
||||||
|
@Override
|
||||||
|
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
|
||||||
|
for (MessageExt msg : msgs) {
|
||||||
|
System.out.println("Received message: " + new String(msg.getBody()));
|
||||||
|
}
|
||||||
|
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 启动消费者
|
||||||
|
consumer.start();
|
||||||
|
System.out.println("Consumer started.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 访问地址
|
||||||
|
|
||||||
|
访问地址:http://192.168.235.104:8080
|
||||||
|
|
||||||
|
### 示例
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
docker-compose -f docker-compose.yml -p rocketmq down
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.81
|
||||||
|
brokerName=rmqbroker1
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=0
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=ASYNC_MASTER
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.82
|
||||||
|
brokerName=rmqbroker2
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=0
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=ASYNC_MASTER
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
@@ -0,0 +1,68 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
# 网桥 -> 方便相互通讯
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipam:
|
||||||
|
driver: default
|
||||||
|
config:
|
||||||
|
- subnet: "172.20.0.0/24"
|
||||||
|
|
||||||
|
services:
|
||||||
|
namesrv:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqnamesrv
|
||||||
|
ports:
|
||||||
|
- "9876:9876"
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.80
|
||||||
|
command: sh mqnamesrv
|
||||||
|
broker1:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker1
|
||||||
|
ports:
|
||||||
|
- "10909:10909"
|
||||||
|
- "10911:10911"
|
||||||
|
- "10912:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./broker-master1/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.81
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
broker2:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker2
|
||||||
|
ports:
|
||||||
|
- "10809:10909"
|
||||||
|
- "10811:10911"
|
||||||
|
- "10812:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./broker-master2/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.82
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
rmqdashboard:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/rocketmq-dashboard:latest
|
||||||
|
container_name: rocketmq-dashboard
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.83
|
||||||
|
environment:
|
||||||
|
- JAVA_OPTS= -Xms256M -Xms512M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
chmod -R 777 ./broker1
|
||||||
|
chmod -R 777 ./broker2
|
||||||
|
docker-compose -f docker-compose.yml -p rocketmq up -d
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
# RocketMQ 双主版
|
||||||
|
|
||||||
|
https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart
|
||||||
|
|
||||||
|
### 部署方式
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Maven依赖
|
||||||
|
|
||||||
|
```xml
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.rocketmq</groupId>
|
||||||
|
<artifactId>rocketmq-client</artifactId>
|
||||||
|
<version>4.9.6</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.producer.DefaultMQProducer;
|
||||||
|
import org.apache.rocketmq.client.producer.SendResult;
|
||||||
|
import org.apache.rocketmq.common.message.Message;
|
||||||
|
|
||||||
|
public class ProducerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建生产者实例,并设置生产者组名
|
||||||
|
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
producer.setNamesrvAddr("localhost:9876");
|
||||||
|
producer.start();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建消息实例,指定 topic、Tag和消息体
|
||||||
|
Message msg = new Message("TestTopic", "TagA", ("Hello RocketMQ").getBytes());
|
||||||
|
// 发送消息并获取发送结果
|
||||||
|
SendResult sendResult = producer.send(msg);
|
||||||
|
System.out.println("Message sent: " + new String(msg.getBody()));
|
||||||
|
System.out.println("Send result: " + sendResult);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.out.println("Message sending failed.");
|
||||||
|
} finally {
|
||||||
|
// 关闭生产者
|
||||||
|
producer.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 消费者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
|
||||||
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ConsumerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建消费者实例,并设置消费者组名
|
||||||
|
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
consumer.setNamesrvAddr("localhost:9876");
|
||||||
|
// 订阅指定的主题和标签(* 表示所有标签)
|
||||||
|
consumer.subscribe("TestTopic", "*");
|
||||||
|
|
||||||
|
// 注册消息监听器
|
||||||
|
consumer.registerMessageListener(new MessageListenerConcurrently() {
|
||||||
|
@Override
|
||||||
|
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
|
||||||
|
for (MessageExt msg : msgs) {
|
||||||
|
System.out.println("Received message: " + new String(msg.getBody()));
|
||||||
|
}
|
||||||
|
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 启动消费者
|
||||||
|
consumer.start();
|
||||||
|
System.out.println("Consumer started.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 访问地址
|
||||||
|
|
||||||
|
访问地址:http://192.168.235.104:8080
|
||||||
|
|
||||||
|
### 示例
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
docker-compose -f docker-compose.yml -p rocketmq down
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
# 网桥 -> 方便相互通讯
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipam:
|
||||||
|
driver: default
|
||||||
|
config:
|
||||||
|
- subnet: "172.20.0.0/24"
|
||||||
|
|
||||||
|
services:
|
||||||
|
namesrv:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqnamesrv
|
||||||
|
ports:
|
||||||
|
- "9876:9876"
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.80
|
||||||
|
command: sh mqnamesrv
|
||||||
|
broker:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/apache-rocketmq:4.9.6
|
||||||
|
container_name: rmqbroker
|
||||||
|
ports:
|
||||||
|
- "10909:10909"
|
||||||
|
- "10911:10911"
|
||||||
|
- "10912:10912"
|
||||||
|
environment:
|
||||||
|
- NAMESRV_ADDR=rmqnamesrv:9876
|
||||||
|
volumes:
|
||||||
|
- ./master/broker.conf:/home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.81
|
||||||
|
command: sh mqbroker -c /home/rocketmq/rocketmq-4.9.6/conf/broker.conf
|
||||||
|
rmqdashboard:
|
||||||
|
image: registry.cn-shanghai.aliyuncs.com/odboy/rocketmq-dashboard:latest
|
||||||
|
container_name: rocketmq-dashboard
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
- namesrv
|
||||||
|
networks:
|
||||||
|
rocketmq:
|
||||||
|
ipv4_address: 172.20.0.82
|
||||||
|
environment:
|
||||||
|
- JAVA_OPTS= -Xms256M -Xms512M -Xmn128M -Drocketmq.namesrv.addr=rmqnamesrv:9876 -Dcom.rocketmq.sendMessageWithVIPChannel=false
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
docker-compose -f docker-compose.yml -p rocketmq up -d
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
namesrvAddr=rmqnamesrv:9876
|
||||||
|
brokerIP1=172.20.0.81
|
||||||
|
brokerName=rmqbroker
|
||||||
|
brokerClusterName=rmqbroker
|
||||||
|
brokerId=0
|
||||||
|
autoCreateTopicEnable=false
|
||||||
|
autoCreateSubscriptionGroup=true
|
||||||
|
rejectTransactionMessage=false
|
||||||
|
fetchNamesrvAddrByAddressServer=false
|
||||||
|
storePathRootDir=/home/rocketmq/rocketmq-4.9.6/store
|
||||||
|
storePathCommitLog=/home/rocketmq/rocketmq-4.9.6/store/commitlog
|
||||||
|
flushIntervalCommitLog=1000
|
||||||
|
flushCommitLogTimed=false
|
||||||
|
deleteWhen=04
|
||||||
|
fileReservedTime=72
|
||||||
|
maxTransferBytesOnMessageInMemory=262144
|
||||||
|
maxTransferCountOnMessageInMemory=32
|
||||||
|
maxTransferBytesOnMessageInDisk=65536
|
||||||
|
maxTransferCountOnMessageInDisk=8
|
||||||
|
accessMessageInMemoryMaxRatio=40
|
||||||
|
messageIndexEnable=true
|
||||||
|
messageIndexSafe=false
|
||||||
|
haMasterAddress=
|
||||||
|
brokerRole=ASYNC_MASTER
|
||||||
|
flushDiskType=ASYNC_FLUSH
|
||||||
|
cleanFileForciblyEnable=true
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
# RocketMQ 单实例版
|
||||||
|
|
||||||
|
https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart
|
||||||
|
|
||||||
|
### 部署方式
|
||||||
|
|
||||||
|
```shell
|
||||||
|
sh install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Maven依赖
|
||||||
|
|
||||||
|
```xml
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.rocketmq</groupId>
|
||||||
|
<artifactId>rocketmq-client</artifactId>
|
||||||
|
<version>4.9.6</version>
|
||||||
|
</dependency>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 生产者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.producer.DefaultMQProducer;
|
||||||
|
import org.apache.rocketmq.client.producer.SendResult;
|
||||||
|
import org.apache.rocketmq.common.message.Message;
|
||||||
|
|
||||||
|
public class ProducerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建生产者实例,并设置生产者组名
|
||||||
|
DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
producer.setNamesrvAddr("localhost:9876");
|
||||||
|
producer.start();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建消息实例,指定 topic、Tag和消息体
|
||||||
|
Message msg = new Message("TestTopic", "TagA", ("Hello RocketMQ").getBytes());
|
||||||
|
// 发送消息并获取发送结果
|
||||||
|
SendResult sendResult = producer.send(msg);
|
||||||
|
System.out.println("Message sent: " + new String(msg.getBody()));
|
||||||
|
System.out.println("Send result: " + sendResult);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
System.out.println("Message sending failed.");
|
||||||
|
} finally {
|
||||||
|
// 关闭生产者
|
||||||
|
producer.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 消费者 官方示例
|
||||||
|
|
||||||
|
```java
|
||||||
|
import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
|
||||||
|
import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
|
||||||
|
import org.apache.rocketmq.common.message.MessageExt;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ConsumerExample {
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
// 创建消费者实例,并设置消费者组名
|
||||||
|
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique_group_name");
|
||||||
|
// 设置 Name Server 地址,此处为示例,实际使用时请替换为真实的 Name Server 地址
|
||||||
|
consumer.setNamesrvAddr("localhost:9876");
|
||||||
|
// 订阅指定的主题和标签(* 表示所有标签)
|
||||||
|
consumer.subscribe("TestTopic", "*");
|
||||||
|
|
||||||
|
// 注册消息监听器
|
||||||
|
consumer.registerMessageListener(new MessageListenerConcurrently() {
|
||||||
|
@Override
|
||||||
|
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
|
||||||
|
for (MessageExt msg : msgs) {
|
||||||
|
System.out.println("Received message: " + new String(msg.getBody()));
|
||||||
|
}
|
||||||
|
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 启动消费者
|
||||||
|
consumer.start();
|
||||||
|
System.out.println("Consumer started.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 访问地址
|
||||||
|
|
||||||
|
访问地址:http://192.168.235.104:8080
|
||||||
|
|
||||||
|
### 示例
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
docker-compose -f docker-compose.yml -p rocketmq down
|
||||||
Reference in New Issue
Block a user