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