我们正在使用spring config客户端动态刷新属性。我们在类路径上添加了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
正在使用2.x版本的kakfa-clients,而我们的家庭版本尚未准备就绪,因此问题来了。因此,它们中的任何一个都在某个时间点工作。
有人可以告诉我一些指示,以了解如何使用kafka的刷新事件并刷新属性吗?我不认为这太复杂了。应该消耗卡夫卡事件,并在某个地方调用ConfigSourceLocator刷新属性。
答案 0 :(得分:3)
比这更简单。如果您查看RefreshListener
类,您会发现它所做的只是
Set<String> keys = this.contextRefresher.refresh();
log.info("Received remote refresh request. Keys refreshed " + keys);
contextRefresher
是org.springframework.cloud.context.refresh.ContextRefresher
的地方。
这将触发自动处理查找配置的代码。