我们使用spring config client来动态刷新属性。我们在类路径上添加了spring-cloud-starter-bus-kafka,一切正常。所有这些依赖项的Pom版本都是2.X。
我想要做的是,删除spring- cloud -starter-bus-kafka并添加我的自定义代码,以获取消费者事件并刷新上下文,进而使用云配置客户端刷新属性。我相信在某个地方Spring正在调用ConfigServicePropertySourceLocator.locate。基本上,我只想复制Spring在spring-cloud-starter-bus-kafka中所做的事情,以使实时刷新属性成为可能。
我做这一切的原因是,我在内部使用了一个旧版本的kafka-clients。我们有一个自己开发的版本,它支持加密等等。问题来了,因为spring-cloud-starter-bus-kafka使用的是kakfa客户端的2.X版本,而我们的家庭版本还没有准备好。由于这一点,它们中的任何一个都在某个时间点工作。
有人能告诉我需要做些什么才能消费kafka的刷新事件并刷新属性吗?我不认为这会太复杂。它应该使用kafka事件,并在某个地方调用ConfigSourceLocator来刷新属性。
发布于 2019-06-08 22:23:03
它甚至比这更简单。如果查看RefreshListener类,就会发现它所做的全部工作是
Set<String> keys = this.contextRefresher.refresh();
log.info("Received remote refresh request. Keys refreshed " + keys);其中contextRefresher是一个org.springframework.cloud.context.refresh.ContextRefresher。
这将触发处理自动查找配置的代码。
https://stackoverflow.com/questions/56506674
复制相似问题