diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/broker-master/broker.conf b/Message/rocketmq-4.9.6-cluster-1m2s/broker-master/broker.conf new file mode 100644 index 0000000..e923d3f --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/broker-master/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave1/broker.conf b/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave1/broker.conf new file mode 100644 index 0000000..286fc7b --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave1/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave2/broker.conf b/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave2/broker.conf new file mode 100644 index 0000000..d11d5c0 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/broker-slave2/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/demo.png b/Message/rocketmq-4.9.6-cluster-1m2s/demo.png new file mode 100644 index 0000000..dce4935 Binary files /dev/null and b/Message/rocketmq-4.9.6-cluster-1m2s/demo.png differ diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/docker-compose.yml b/Message/rocketmq-4.9.6-cluster-1m2s/docker-compose.yml new file mode 100644 index 0000000..5f93c48 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/docker-compose.yml @@ -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 + diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/install.sh b/Message/rocketmq-4.9.6-cluster-1m2s/install.sh new file mode 100644 index 0000000..943293a --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/install.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p rocketmq up -d \ No newline at end of file diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/run.md b/Message/rocketmq-4.9.6-cluster-1m2s/run.md new file mode 100644 index 0000000..8fdb90e --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/run.md @@ -0,0 +1,100 @@ +# RocketMQ 主从版 + +https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart + +### 部署方式 + +```shell +sh install.sh +``` + +### Maven依赖 + +```xml + + + org.apache.rocketmq + rocketmq-client + 4.9.6 + +``` + +### 生产者 官方示例 + +```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 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 + +### 示例 + +![demo](demo.png) + diff --git a/Message/rocketmq-4.9.6-cluster-1m2s/shutdown.sh b/Message/rocketmq-4.9.6-cluster-1m2s/shutdown.sh new file mode 100644 index 0000000..5afab2b --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-1m2s/shutdown.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p rocketmq down \ No newline at end of file diff --git a/Message/rocketmq-4.9.6-cluster-2m/broker-master1/broker.conf b/Message/rocketmq-4.9.6-cluster-2m/broker-master1/broker.conf new file mode 100644 index 0000000..e923d3f --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/broker-master1/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-cluster-2m/broker-master2/broker.conf b/Message/rocketmq-4.9.6-cluster-2m/broker-master2/broker.conf new file mode 100644 index 0000000..4a82f86 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/broker-master2/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-cluster-2m/demo.png b/Message/rocketmq-4.9.6-cluster-2m/demo.png new file mode 100644 index 0000000..a48e64b Binary files /dev/null and b/Message/rocketmq-4.9.6-cluster-2m/demo.png differ diff --git a/Message/rocketmq-4.9.6-cluster-2m/docker-compose.yml b/Message/rocketmq-4.9.6-cluster-2m/docker-compose.yml new file mode 100644 index 0000000..1b67c65 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/docker-compose.yml @@ -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 + diff --git a/Message/rocketmq-4.9.6-cluster-2m/install.sh b/Message/rocketmq-4.9.6-cluster-2m/install.sh new file mode 100644 index 0000000..7f65302 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/install.sh @@ -0,0 +1,3 @@ +chmod -R 777 ./broker1 +chmod -R 777 ./broker2 +docker-compose -f docker-compose.yml -p rocketmq up -d \ No newline at end of file diff --git a/Message/rocketmq-4.9.6-cluster-2m/run.md b/Message/rocketmq-4.9.6-cluster-2m/run.md new file mode 100644 index 0000000..aac5fc2 --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/run.md @@ -0,0 +1,100 @@ +# RocketMQ 双主版 + +https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart + +### 部署方式 + +```shell +sh install.sh +``` + +### Maven依赖 + +```xml + + + org.apache.rocketmq + rocketmq-client + 4.9.6 + +``` + +### 生产者 官方示例 + +```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 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 + +### 示例 + +![demo](demo.png) + diff --git a/Message/rocketmq-4.9.6-cluster-2m/shutdown.sh b/Message/rocketmq-4.9.6-cluster-2m/shutdown.sh new file mode 100644 index 0000000..5afab2b --- /dev/null +++ b/Message/rocketmq-4.9.6-cluster-2m/shutdown.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p rocketmq down \ No newline at end of file diff --git a/Message/rocketmq-4.9.6-standalone/docker-compose.yml b/Message/rocketmq-4.9.6-standalone/docker-compose.yml new file mode 100644 index 0000000..43d0078 --- /dev/null +++ b/Message/rocketmq-4.9.6-standalone/docker-compose.yml @@ -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 + diff --git a/Message/rocketmq-4.9.6-standalone/install.sh b/Message/rocketmq-4.9.6-standalone/install.sh new file mode 100644 index 0000000..943293a --- /dev/null +++ b/Message/rocketmq-4.9.6-standalone/install.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p rocketmq up -d \ No newline at end of file diff --git a/Message/rocketmq-4.9.6-standalone/master/broker.conf b/Message/rocketmq-4.9.6-standalone/master/broker.conf new file mode 100644 index 0000000..6394fa8 --- /dev/null +++ b/Message/rocketmq-4.9.6-standalone/master/broker.conf @@ -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 diff --git a/Message/rocketmq-4.9.6-standalone/run.md b/Message/rocketmq-4.9.6-standalone/run.md new file mode 100644 index 0000000..9e4d352 --- /dev/null +++ b/Message/rocketmq-4.9.6-standalone/run.md @@ -0,0 +1,100 @@ +# RocketMQ 单实例版 + +https://rocketmq.apache.org/zh/docs/4.x/quickstart/01quickstart + +### 部署方式 + +```shell +sh install.sh +``` + +### Maven依赖 + +```xml + + + org.apache.rocketmq + rocketmq-client + 4.9.6 + +``` + +### 生产者 官方示例 + +```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 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 + +### 示例 + +![demo](demo.png) + diff --git a/Message/rocketmq-4.9.6-standalone/shutdown.sh b/Message/rocketmq-4.9.6-standalone/shutdown.sh new file mode 100644 index 0000000..5afab2b --- /dev/null +++ b/Message/rocketmq-4.9.6-standalone/shutdown.sh @@ -0,0 +1 @@ +docker-compose -f docker-compose.yml -p rocketmq down \ No newline at end of file