由于遇到服务重启导致的业务中断等异常,所以计划通过kafka+eureka实现服务下线通知,来尽可能规避这类问题。
如果可以升级spring,则可以考虑nacos等更为方便的方案;
程序优化:
1.默认启用的为 PollingServerListUpdater,所以需要手动启用EurekaNotificationServerListUpdater
@Configuration
//重要,否则无法关联配置,按默认注入配置只能识别第一个接入的服务
@RibbonClients(defaultConfiguration = ConsumerRibbonClientConfig.class)
public class ConsumerRibbonClientConfig {
@Bean
public ServerListUpdater ribbonServerListUpdater() {
return new EurekaNotificationServerListUpdater();
}
}
2.需要触发PollingServerListUpdater中的更新,则需要先触发DiscoveryClient中的refreshRegistry
@Slf4j
@Component
public class EurekaRefreshUpdater {
public void refresh() {
try {
log.info("EurekaRefreshUpdater-begin");
Method method