提交 9945b5fc authored 作者: YunaiV's avatar YunaiV

infra 服务:集成 spring-cloud-starter-bus-rocketmq 组件

上级 6dd514b8
package cn.iocoder.yudao.module.infra.mq.consumer.file; package cn.iocoder.yudao.module.infra.mq.consumer.file;
import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessageListener;
import cn.iocoder.yudao.module.infra.mq.message.file.FileConfigRefreshMessage; import cn.iocoder.yudao.module.infra.mq.message.file.FileConfigRefreshMessage;
import cn.iocoder.yudao.module.infra.service.file.FileConfigService; import cn.iocoder.yudao.module.infra.service.file.FileConfigService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -15,14 +15,14 @@ import javax.annotation.Resource; ...@@ -15,14 +15,14 @@ import javax.annotation.Resource;
*/ */
@Component @Component
@Slf4j @Slf4j
public class FileConfigRefreshConsumer extends AbstractChannelMessageListener<FileConfigRefreshMessage> { public class FileConfigRefreshConsumer {
@Resource @Resource
private FileConfigService fileConfigService; private FileConfigService fileConfigService;
@Override @EventListener
public void onMessage(FileConfigRefreshMessage message) { public void execute(FileConfigRefreshMessage message) {
log.info("[onMessage][收到 FileConfig 刷新消息]"); log.info("[execute][收到 FileConfig 刷新消息]");
fileConfigService.initFileClients(); fileConfigService.initFileClients();
} }
......
package cn.iocoder.yudao.module.infra.mq.message.file; package cn.iocoder.yudao.module.infra.mq.message.file;
import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;
import lombok.Data; import lombok.Data;
import org.springframework.cloud.bus.event.RemoteApplicationEvent;
/** /**
* 文件配置数据刷新 Message * 文件配置数据刷新 Message
*/ */
@Data @Data
public class FileConfigRefreshMessage extends AbstractChannelMessage { public class FileConfigRefreshMessage extends RemoteApplicationEvent {
@Override public FileConfigRefreshMessage() {
public String getChannel() { }
return "infra.file-config.refresh";
public FileConfigRefreshMessage(Object source, String originService, String destinationService) {
super(source, originService, destinationService);
} }
} }
package cn.iocoder.yudao.module.infra.mq.producer.file; package cn.iocoder.yudao.module.infra.mq.producer.file;
import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate; import cn.iocoder.yudao.framework.mq.core.bus.AbstractBusProducer;
import cn.iocoder.yudao.module.infra.mq.message.file.FileConfigRefreshMessage; import cn.iocoder.yudao.module.infra.mq.message.file.FileConfigRefreshMessage;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/** /**
* 文件配置相关消息的 Producer * 文件配置相关消息的 Producer
*/ */
@Component @Component
public class FileConfigProducer { public class FileConfigProducer extends AbstractBusProducer {
@Resource
private RedisMQTemplate redisMQTemplate;
/** /**
* 发送 {@link FileConfigRefreshMessage} 消息 * 发送 {@link FileConfigRefreshMessage} 消息
*/ */
public void sendFileConfigRefreshMessage() { public void sendFileConfigRefreshMessage() {
FileConfigRefreshMessage message = new FileConfigRefreshMessage(); publishEvent(new FileConfigRefreshMessage(this, selfDestinationService(), selfDestinationService()));
redisMQTemplate.send(message);
} }
} }
...@@ -62,6 +62,15 @@ jasypt: ...@@ -62,6 +62,15 @@ jasypt:
encryptor: encryptor:
password: yuanma # 加解密的秘钥 password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 #################### --- #################### 定时任务相关配置 ####################
--- #################### 配置中心相关配置 #################### --- #################### 配置中心相关配置 ####################
......
...@@ -73,6 +73,15 @@ jasypt: ...@@ -73,6 +73,15 @@ jasypt:
encryptor: encryptor:
password: yuanma # 加解密的秘钥 password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 #################### --- #################### 定时任务相关配置 ####################
--- #################### 配置中心相关配置 #################### --- #################### 配置中心相关配置 ####################
......
...@@ -52,6 +52,37 @@ dubbo: ...@@ -52,6 +52,37 @@ dubbo:
application: application:
id: infra-server # TODO 一定要写么? id: infra-server # TODO 一定要写么?
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
# Spring Cloud Stream 配置项,对应 BindingServiceProperties 类
stream:
# function:
# definition: roleRefreshConsumer;roleMenuRefreshConsumer;userRoleRefreshConsumer;
# Binding 配置项,对应 BindingProperties Map
bindings:
roleRefresh-out-0:
destination: system_role_refresh
roleRefreshConsumer-in-0:
destination: system_role_refresh
group: system_role_refresh_consumer_group
# Spring Cloud Stream RocketMQ 配置项
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
default: # 默认 bindings 全局配置
producer: # RocketMQ Producer 配置项,对应 RocketMQProducerProperties 类
group: system_producer_group # 生产者分组
send-type: SYNC # 发送模式,SYNC 同步
# Spring Cloud Bus 配置项,对应 BusProperties 类
bus:
enabled: true # 是否开启,默认为 true
id: ${spring.application.name}:${server.port} # 编号,Spring Cloud Alibaba 建议使用“应用:端口”的格式
destination: springCloudBus # 目标消息队列,默认为 springCloudBus
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################
yudao: yudao:
......
...@@ -62,6 +62,15 @@ jasypt: ...@@ -62,6 +62,15 @@ jasypt:
encryptor: encryptor:
password: yuanma # 加解密的秘钥 password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 #################### --- #################### 定时任务相关配置 ####################
--- #################### 服务保障相关配置 #################### --- #################### 服务保障相关配置 ####################
......
...@@ -72,6 +72,15 @@ jasypt: ...@@ -72,6 +72,15 @@ jasypt:
encryptor: encryptor:
password: yuanma # 加解密的秘钥 password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 #################### --- #################### 定时任务相关配置 ####################
--- #################### 服务保障相关配置 #################### --- #################### 服务保障相关配置 ####################
......
...@@ -79,7 +79,7 @@ spring: ...@@ -79,7 +79,7 @@ spring:
bus: bus:
enabled: true # 是否开启,默认为 true enabled: true # 是否开启,默认为 true
id: ${spring.application.name}:${server.port} # 编号,Spring Cloud Alibaba 建议使用“应用:端口”的格式 id: ${spring.application.name}:${server.port} # 编号,Spring Cloud Alibaba 建议使用“应用:端口”的格式
destination: springCloudBus2 # 目标消息队列,默认为 springCloudBus destination: springCloudBus # 目标消息队列,默认为 springCloudBus
--- #################### 芋道相关配置 #################### --- #################### 芋道相关配置 ####################
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论