Ver Fonte

封装部署rocketmq

mac há 2 anos atrás
pai
commit
585680f682

+ 48 - 17
docker-compose.yml

@@ -108,23 +108,6 @@ services:
 #    networks:
 #      - kxs_cloud_network
 #
-#  kxs-rabbitmq:
-#    image: rabbitmq:3.12.8
-#    container_name: kxs-rabbitmq
-#    restart: always
-#    volumes:
-#      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime"        #设置系统时区
-#      - "/usr/share/zoneinfo/Asia/Shanghai:/etc/timezone"  #设置时区
-#      - "./data/rabbit/:/var/lib/rabbitmq/"
-#      - "./logs/rabbit:/var/log/rabbitmq/"
-#    ports:
-#      - 5672:5672
-#      - 15672:15672
-#    environment:
-#      - RABBITMQ_DEFAULT_USER=admin
-#      - RABBITMQ_DEFAULT_PASS=admin
-#    networks:
-#      - kxs_cloud_network
 
 #  kxs-mongo:
 #    image: mongo:6.0.3
@@ -171,6 +154,54 @@ services:
       - kxs_cloud_network
 
 
+  kxs-rocket:
+    image: apache/rocketmq:5.1.4
+    hostname: kxs-rocket
+    container_name: kxs-rocket
+    ports:
+      - 9876:9876
+    volumes:
+      - ./logs/rocket:/home/rocketmq/logs
+    command: sh mqnamesrv
+    restart: on-failure
+    networks:
+      - kxs_cloud_network
+
+  kxs-rocket-broker:
+    image: apache/rocketmq:5.1.4
+    hostname: kxs-rocket-broker
+    container_name: kxs-rocket-broker
+    ports:
+      - 10909:10909
+      - 10911:10911
+      - 10912:10912
+    environment:
+      JAVA_OPT_EXT: "-server -Xms128m -Xmx128m -Xmn128m"
+    volumes:
+      - ./data/broker/store:/home/rocketmq/store
+      - ./kxs-visual/kxs-rocket/broker/broker.conf:/home/rocketmq/conf/broker.conf
+    command: sh mqbroker -n kxs-rocket:9876 -c /home/rocketmq/conf/broker.conf
+    restart: on-failure
+    networks:
+      - kxs_cloud_network
+    depends_on:
+      - kxs-rocket
+
+  kxs-rocket-dashboard:
+    image: apacherocketmq/rocketmq-dashboard:1.0.0
+    container_name: kxs-rocket-dashboard
+    hostname: kxs-rocket-dashboard
+    ports:
+      - 9870:8080
+    environment:
+      - JAVA_OPTS=-Drocketmq.namesrv.addr=kxs-rocket:9876
+    restart: on-failure
+    depends_on:
+      - kxs-rocket-broker
+    networks:
+      - kxs_cloud_network
+
+
 networks:
   kxs_cloud_network:
     name: kxs_cloud_network

+ 26 - 0
kxs-common/kxs-common-mq/pom.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.kxs</groupId>
+        <artifactId>kxs-common</artifactId>
+        <version>1.1.0</version>
+    </parent>
+
+    <artifactId>kxs-common-mq</artifactId>
+    <packaging>jar</packaging>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.rocketmq</groupId>
+            <artifactId>rocketmq-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 1 - 0
kxs-common/kxs-common-mq/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -0,0 +1 @@
+org.apache.rocketmq.spring.autoconfigure.RocketMQAutoConfiguration

+ 1 - 0
kxs-common/pom.xml

@@ -24,6 +24,7 @@
         <module>kxs-common-swagger</module>
         <module>kxs-common-seata</module>
         <module>kxs-common-oss</module>
+        <module>kxs-common-mq</module>
     </modules>
     <dependencyManagement>
         <dependencies>

+ 6 - 0
kxs-user/kxs-user-biz/pom.xml

@@ -79,6 +79,12 @@
             <groupId>com.kxs</groupId>
             <artifactId>kxs-product-api</artifactId>
         </dependency>
+        <!-- 实现对 RocketMQ 的自动化配置 -->
+        <dependency>
+            <groupId>com.kxs</groupId>
+            <artifactId>kxs-common-mq</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 42 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/TestMq.java

@@ -0,0 +1,42 @@
+package com.kxs.user.biz.controller.kxsapp;
+
+import com.kxs.common.core.util.R;
+import com.kxs.common.security.annotation.Inner;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.rocketmq.client.producer.SendResult;
+import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
+import org.apache.rocketmq.spring.core.RocketMQListener;
+import org.apache.rocketmq.spring.core.RocketMQTemplate;
+import org.springframework.messaging.Message;
+import org.springframework.messaging.support.MessageBuilder;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@RocketMQMessageListener(topic = "test-topic-1", consumerGroup = "test-group")
+public class TestMq implements RocketMQListener<String> {
+
+    private final RocketMQTemplate rocketMQTemplate;
+
+    public void onMessage(String message) {
+        log.info("received message: {}", message);
+    }
+
+
+    @Inner(value = false)
+    @GetMapping("/send/msg")
+    public R sendMsg1 (){
+        try {
+            Message<String> msg = MessageBuilder.withPayload("Hello,RocketMQ").build();
+            //发送信息
+            rocketMQTemplate.send("test-topic-1", msg);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+}

+ 9 - 0
kxs-visual/kxs-rocket/broker/broker.conf

@@ -0,0 +1,9 @@
+brokerClusterName = DefaultCluster
+brokerName = broker-a
+brokerId = 0
+deleteWhen = 04
+fileReservedTime = 48
+brokerRole = ASYNC_MASTER
+flushDiskType = ASYNC_FLUSH
+# 注意,宿主IP是你计算机网卡的IP
+brokerIP1 = 192.168.101.250

+ 11 - 0
pom.xml

@@ -38,6 +38,7 @@
         <knife4j.version>4.3.0</knife4j.version>
         <fastjson.version>1.2.83</fastjson.version>
         <oss.version>3.15.1</oss.version>
+        <rocketmq.version>2.2.3</rocketmq.version>
     </properties>
 
     <!-- 以下依赖 全局所有的模块都会引入  -->
@@ -212,6 +213,11 @@
                 <artifactId>aliyun-sdk-oss</artifactId>
                 <version>${oss.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.rocketmq</groupId>
+                <artifactId>rocketmq-spring-boot-starter</artifactId>
+                <version>${rocketmq.version}</version>
+            </dependency>
             <!-- 鉴权 -->
             <dependency>
                 <groupId>com.kxs</groupId>
@@ -239,6 +245,11 @@
                 <artifactId>kxs-common-oss</artifactId>
                 <version>${project.version}</version>
             </dependency>
+            <dependency>
+                <groupId>com.kxs</groupId>
+                <artifactId>kxs-common-mq</artifactId>
+                <version>${project.version}</version>
+            </dependency>