diff --git a/ruoyi-common/ruoyi-common-mq/pom.xml b/ruoyi-common/ruoyi-common-mq/pom.xml new file mode 100644 index 00000000..7e29837f --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/pom.xml @@ -0,0 +1,19 @@ + + + + ruoyi-common + com.ruoyi + 2.3.0 + + 4.0.0 + ruoyi-common-mq + pom + + ruoyi-consumer + ruoyi-producer + + + + \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/pom.xml b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/pom.xml new file mode 100644 index 00000000..b4c8f3b1 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/pom.xml @@ -0,0 +1,68 @@ + + + + + ruoyi-common-mq + com.ruoyi + 2.3.0 + + 4.0.0 + ruoyi-consumer + ruoyi-consumer + http://www.example.com + + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + org.springframework.boot + spring-boot-starter-web + + + + org.apache.rocketmq + rocketmq-spring-boot-starter + 2.0.4 + + + + + com.ruoyi + ruoyi-common-security + + + + mysql + mysql-connector-java + + + + junit + junit + test + + + org.springframework.boot + spring-boot-starter-test + + + + + diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/ConsumerApplication.java b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/ConsumerApplication.java new file mode 100644 index 00000000..f243bb3e --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/ConsumerApplication.java @@ -0,0 +1,17 @@ +package com.ruoyi.consumer; + +import com.ruoyi.common.security.annotation.EnableCustomConfig; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.cloud.client.SpringCloudApplication; + +@EnableCustomConfig +@EnableRyFeignClients +@SpringCloudApplication +public class ConsumerApplication { + public static void main(String[] args) + { + SpringApplication.run(ConsumerApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ ConsumerApplication-消费者服务启动成功 ლ(´ڡ`ლ)゙ \n" ); + } +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/listener/DemoMqListener.java b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/listener/DemoMqListener.java new file mode 100644 index 00000000..06661ab7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/java/com/ruoyi/consumer/listener/DemoMqListener.java @@ -0,0 +1,17 @@ +package com.ruoyi.consumer.listener; + +import org.apache.rocketmq.spring.annotation.RocketMQMessageListener; +import org.apache.rocketmq.spring.core.RocketMQListener; +import org.springframework.stereotype.Component; + +@Component +@RocketMQMessageListener(consumerGroup = "groupB", topic = "topicB", + accessKey = "rocketmq2",secretKey = "12345678") +public class DemoMqListener implements RocketMQListener { + + @Override + public void onMessage(Object o) { + System.out.println(o); + } + +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/banner.txt b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/banner.txt new file mode 100644 index 00000000..2b449bfc --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +Spring Boot Version: ${spring-boot.version} +Spring Application Name: ${spring.application.name} + /$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$$ /$$ /$$ /$$$$$$/$$$$ /$$$$$$ /$$$$$$ + /$$_____/ /$$__ $$| $$__ $$ /$$_____/| $$ | $$| $$_ $$_ $$ /$$__ $$ /$$__ $$ +| $$ | $$ \ $$| $$ \ $$| $$$$$$ | $$ | $$| $$ \ $$ \ $$| $$$$$$$$| $$ \__/ +| $$ | $$ | $$| $$ | $$ \____ $$| $$ | $$| $$ | $$ | $$| $$_____/| $$ +| $$$$$$$| $$$$$$/| $$ | $$ /$$$$$$$/| $$$$$$/| $$ | $$ | $$| $$$$$$$| $$ + \_______/ \______/ |__/ |__/|_______/ \______/ |__/ |__/ |__/ \_______/|__/ + +|__/ \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/bootstrap.yml b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/bootstrap.yml new file mode 100644 index 00000000..7ee06415 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/bootstrap.yml @@ -0,0 +1,52 @@ +# Tomcat +server: + port: 9206 + tomcat: + # tomcat的URI编码 + uri-encoding: UTF-8 +# Spring +spring: + http: + encoding: + force: true + application: + # 应用名称 + name: ruoyi-consumer + profiles: + # 环境配置 + active: dev + cloud: + nacos: + discovery: + # 服务注册地址 + server-addr: 127.0.0.1:8848 + config: + # 配置中心地址 + server-addr: 127.0.0.1:8848 + # 配置文件格式 + file-extension: yml + # 共享配置 + shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +rocketmq: + # rocketmq的NameServer地址 + name-server: 127.0.0.1:9876 +# # 生产者端需要配置 +# consumer: +# # 必须指定一个group +# group: groupB +# access-key: rocketmq2 +# SecretKey: 123456781 +# cloud: +# nacos: +# discovery: +# # 服务注册地址 +# server-addr: 127.0.0.1:8848 +# config: +# # 配置中心地址 +# server-addr: 127.0.0.1:8848 +# # 配置文件格式 +# file-extension: yml +# # 共享配置 +# shared-dataids: application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +## namespace: 363618e3-1aba-4b9b-a608-1bb8d6a03c6d + diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/logback.xml b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/logback.xml new file mode 100644 index 00000000..18eefe7d --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/main/resources/logback.xml @@ -0,0 +1,80 @@ + + + + + + :ss} %-5level ${springAppName:-} %thread %logger %msg%n"/> + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 60 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/test/java/com/ruoyi/AppTest.java b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/test/java/com/ruoyi/AppTest.java new file mode 100644 index 00000000..e5834330 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-consumer/src/test/java/com/ruoyi/AppTest.java @@ -0,0 +1,20 @@ +package com.ruoyi; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/pom.xml b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/pom.xml new file mode 100644 index 00000000..b588e920 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/pom.xml @@ -0,0 +1,69 @@ + + + + + ruoyi-common-mq + com.ruoyi + 2.3.0 + + 4.0.0 + com.ruoyi + ruoyi-producer + + ruoyi-producer + + http://www.example.com + + + + + com.ruoyi + ruoyi-common-security + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + org.springframework.boot + spring-boot-starter-web + + + + + org.apache.rocketmq + rocketmq-spring-boot-starter + 2.0.4 + + + + + mysql + mysql-connector-java + + + + junit + junit + test + + + org.springframework.boot + spring-boot-starter-test + + + diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/ProducerApplication.java b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/ProducerApplication.java new file mode 100644 index 00000000..c2e8f234 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/ProducerApplication.java @@ -0,0 +1,18 @@ +package com.ruoyi.producer; + + +import com.ruoyi.common.security.annotation.EnableCustomConfig; +import com.ruoyi.common.security.annotation.EnableRyFeignClients; +import org.springframework.boot.SpringApplication; +import org.springframework.cloud.client.SpringCloudApplication; + +@EnableCustomConfig +@EnableRyFeignClients +@SpringCloudApplication +public class ProducerApplication { + public static void main(String[] args) + { + SpringApplication.run(ProducerApplication.class, args); + System.out.println("(♥◠‿◠)ノ゙ ProducerApplication-生产者服务启动成功 ლ(´ڡ`ლ)゙ \n" ); + } +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/config/RocketMqConfig.java b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/config/RocketMqConfig.java new file mode 100644 index 00000000..425b4e53 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/config/RocketMqConfig.java @@ -0,0 +1,26 @@ +package com.ruoyi.producer.config; + +import org.apache.rocketmq.acl.common.AclClientRPCHook; +import org.apache.rocketmq.acl.common.SessionCredentials; +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.remoting.RPCHook; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +public class RocketMqConfig { + @Autowired + private RocketMQTemplate rocketMQTemplate; + + @Bean + public RocketMQTemplate buildRocketMqTemplate(){ + DefaultMQProducer defaultMQProducer= new DefaultMQProducer(getAclRPCHook()); + rocketMQTemplate.setProducer(defaultMQProducer); + return rocketMQTemplate; + } + + RPCHook getAclRPCHook() { + return new AclClientRPCHook(new SessionCredentials("rocketmq","12345678")); + } +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoService.java b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoService.java new file mode 100644 index 00000000..73f35589 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoService.java @@ -0,0 +1,6 @@ +package com.ruoyi.producer.service; + +public interface RocketMqDemoService { + + public void sendMessage(); +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoServiceImpl.java b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoServiceImpl.java new file mode 100644 index 00000000..b5a99037 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/main/java/com/ruoyi/producer/service/RocketMqDemoServiceImpl.java @@ -0,0 +1,18 @@ +package com.ruoyi.producer.service; + +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +@Service +public class RocketMqDemoServiceImpl implements RocketMqDemoService { + @Resource + private RocketMQTemplate rocketMQTemplate; + + @Override + public void sendMessage() { + rocketMQTemplate.syncSend("topicB", "222"); + } +} diff --git a/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/test/java/com/ruoyi/AppTest.java b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/test/java/com/ruoyi/AppTest.java new file mode 100644 index 00000000..e5834330 --- /dev/null +++ b/ruoyi-common/ruoyi-common-mq/ruoyi-producer/src/test/java/com/ruoyi/AppTest.java @@ -0,0 +1,20 @@ +package com.ruoyi; + +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Unit test for simple App. + */ +public class AppTest +{ + /** + * Rigorous Test :-) + */ + @Test + public void shouldAnswerWithTrue() + { + assertTrue( true ); + } +}