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

This commit is contained in:
YunaiV 2022-06-21 08:15:13 +08:00
parent 6dd514b84a
commit 9945b5fcd0
9 changed files with 83 additions and 20 deletions

View File

@ -1,9 +1,9 @@
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.service.file.FileConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@ -15,14 +15,14 @@ import javax.annotation.Resource;
*/
@Component
@Slf4j
public class FileConfigRefreshConsumer extends AbstractChannelMessageListener<FileConfigRefreshMessage> {
public class FileConfigRefreshConsumer {
@Resource
private FileConfigService fileConfigService;
@Override
public void onMessage(FileConfigRefreshMessage message) {
log.info("[onMessage][收到 FileConfig 刷新消息]");
@EventListener
public void execute(FileConfigRefreshMessage message) {
log.info("[execute][收到 FileConfig 刷新消息]");
fileConfigService.initFileClients();
}

View File

@ -1,17 +1,19 @@
package cn.iocoder.yudao.module.infra.mq.message.file;
import cn.iocoder.yudao.framework.mq.core.pubsub.AbstractChannelMessage;
import lombok.Data;
import org.springframework.cloud.bus.event.RemoteApplicationEvent;
/**
* 文件配置数据刷新 Message
*/
@Data
public class FileConfigRefreshMessage extends AbstractChannelMessage {
public class FileConfigRefreshMessage extends RemoteApplicationEvent {
@Override
public String getChannel() {
return "infra.file-config.refresh";
public FileConfigRefreshMessage() {
}
public FileConfigRefreshMessage(Object source, String originService, String destinationService) {
super(source, originService, destinationService);
}
}

View File

@ -1,26 +1,20 @@
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 org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 文件配置相关消息的 Producer
*/
@Component
public class FileConfigProducer {
@Resource
private RedisMQTemplate redisMQTemplate;
public class FileConfigProducer extends AbstractBusProducer {
/**
* 发送 {@link FileConfigRefreshMessage} 消息
*/
public void sendFileConfigRefreshMessage() {
FileConfigRefreshMessage message = new FileConfigRefreshMessage();
redisMQTemplate.send(message);
publishEvent(new FileConfigRefreshMessage(this, selfDestinationService(), selfDestinationService()));
}
}

View File

@ -62,6 +62,15 @@ jasypt:
encryptor:
password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 ####################
--- #################### 配置中心相关配置 ####################

View File

@ -73,6 +73,15 @@ jasypt:
encryptor:
password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 ####################
--- #################### 配置中心相关配置 ####################

View File

@ -52,6 +52,37 @@ dubbo:
application:
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:

View File

@ -62,6 +62,15 @@ jasypt:
encryptor:
password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 ####################
--- #################### 服务保障相关配置 ####################

View File

@ -72,6 +72,15 @@ jasypt:
encryptor:
password: yuanma # 加解密的秘钥
--- #################### MQ 消息队列相关配置 ####################
spring:
cloud:
stream:
rocketmq:
# RocketMQ Binder 配置项,对应 RocketMQBinderConfigurationProperties 类
binder:
name-server: 127.0.0.1:9876 # RocketMQ Namesrv 地址
--- #################### 定时任务相关配置 ####################
--- #################### 服务保障相关配置 ####################

View File

@ -79,7 +79,7 @@ spring:
bus:
enabled: true # 是否开启,默认为 true
id: ${spring.application.name}:${server.port} # 编号Spring Cloud Alibaba 建议使用“应用:端口”的格式
destination: springCloudBus2 # 目标消息队列,默认为 springCloudBus
destination: springCloudBus # 目标消息队列,默认为 springCloudBus
--- #################### 芋道相关配置 ####################