From 386dbfbe0364072452bb2d37a30af8c764724f5f Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Mon, 28 Apr 2025 16:16:37 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=B7=BB=E5=8A=A0=E5=BE=AE=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=B3=A8=E5=86=8C=E6=88=90=E5=8A=9F=E5=88=B7=E6=96=B0?= =?UTF-8?q?nacos=E7=BC=93=E5=AD=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bonus/listener/SaOrderSecondListener.java | 7 +-- .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ .../pub/controller/ConfigBaseController.java | 17 ++------ .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ .../NacosInstancesChangeEventListener.java | 43 +++++++++++++++++++ 8 files changed, 263 insertions(+), 19 deletions(-) create mode 100644 bd-business/bd-business-bonus/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java create mode 100644 bd-business/bd-business-member/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java create mode 100644 bd-business/bd-business-report/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java create mode 100644 bd-business/bd-business-sale/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java create mode 100644 bd-business/bd-business-system/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java create mode 100644 bd-third/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java index 2a2b55c5..a25f52fe 100644 --- a/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/bonus/listener/SaOrderSecondListener.java @@ -12,11 +12,7 @@ import org.springframework.messaging.Message; import org.springframework.stereotype.Component; /** - * @Description: 订单秒接 - * @Author: sui q - * @Time: 2023/3/1 16:30 - * @Classname: SaOrderSecondListener - * @PackageName: com.hzs.third.mqcall.listener + * 订单秒接 */ @Slf4j @Component @@ -42,6 +38,5 @@ public class SaOrderSecondListener { } catch (Exception e) { e.printStackTrace(); } - // todo 失败的时候记录日志 } } diff --git a/bd-business/bd-business-bonus/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-business/bd-business-bonus/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..ee8d9ebc --- /dev/null +++ b/bd-business/bd-business-bonus/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("bonus 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("bonus 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +} diff --git a/bd-business/bd-business-member/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-business/bd-business-member/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..f03fa2ef --- /dev/null +++ b/bd-business/bd-business-member/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("member 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("member 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +} diff --git a/bd-business/bd-business-report/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-business/bd-business-report/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..f8d672c7 --- /dev/null +++ b/bd-business/bd-business-report/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("report 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("report 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +} diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-business/bd-business-sale/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..e5d45f0b --- /dev/null +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("sale 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("sale 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +} diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/config/pub/controller/ConfigBaseController.java b/bd-business/bd-business-system/src/main/java/com/hzs/config/pub/controller/ConfigBaseController.java index 10839be0..01975b3b 100644 --- a/bd-business/bd-business-system/src/main/java/com/hzs/config/pub/controller/ConfigBaseController.java +++ b/bd-business/bd-business-system/src/main/java/com/hzs/config/pub/controller/ConfigBaseController.java @@ -16,17 +16,13 @@ import java.util.Date; import java.util.List; /** - * @Description: 配置controller - * @Author: sui q - * @Time: 2023/3/10 15:45 - * @Classname: ConfigBaseController - * @PackageName: com.hzs.config.pub.controller + * 配置controller */ @Slf4j public abstract class ConfigBaseController extends BaseController { @DubboReference - private IDelayedMessageApi delayedMessageApi; + IDelayedMessageApi delayedMessageApi; protected boolean sendDelayedMessage(Object config, Integer delayBusType, String key, String... otherKey) { Integer pkId = null; @@ -63,18 +59,13 @@ public abstract class ConfigBaseController extends BaseController { } /** - * @description: 校验object的属性值是Long类型还是Integer - * @author: zhang jing - * @date: 2024/5/20 16:01 - * @param: [field, object] + * 校验object的属性值是Long类型还是Integer **/ public static boolean isLong(Object object) { if (object instanceof Long) { return false; - } else if (object instanceof Integer) { - return true; } else { - return false; + return object instanceof Integer; } } } diff --git a/bd-business/bd-business-system/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-business/bd-business-system/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..ce800181 --- /dev/null +++ b/bd-business/bd-business-system/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("system 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("system 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +} diff --git a/bd-third/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java b/bd-third/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java new file mode 100644 index 00000000..6d0f5596 --- /dev/null +++ b/bd-third/src/main/java/com/hzs/listener/NacosInstancesChangeEventListener.java @@ -0,0 +1,43 @@ +package com.hzs.listener; + +import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; +import com.alibaba.nacos.common.notify.NotifyCenter; +import com.alibaba.nacos.common.notify.listener.Subscriber; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.Cache; +import org.springframework.cache.CacheManager; +import org.springframework.cloud.loadbalancer.core.CachingServiceInstanceListSupplier; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@Component +@Slf4j +public class NacosInstancesChangeEventListener extends Subscriber { + + @Resource + private CacheManager defaultLoadBalancerCacheManager; + + @PostConstruct + public void registerToNotifyCenter(){ + NotifyCenter.registerSubscriber(this); + } + + @Override + public void onEvent(InstancesChangeEvent event) { + log.info("third 接收微服务刷新事件:{}, 开始刷新本地存储的微服务缓存", event.getServiceName()); + Cache cache = defaultLoadBalancerCacheManager.getCache(CachingServiceInstanceListSupplier.SERVICE_INSTANCE_CACHE_NAME); + if (cache != null) { + cache.evict(event.getServiceName()); + log.info("{} 微服务刷新", event.getServiceName()); + } + log.info("third 微服务缓存刷新完成"); + } + + @Override + public Class subscribeType() { + return InstancesChangeEvent.class; + } + +}