Spring cloud 将定制kafka消费者与Spring云配置客户端集成

Spring cloud 将定制kafka消费者与Spring云配置客户端集成,spring-cloud,spring-kafka,spring-cloud-stream,spring-cloud-config,Spring Cloud,Spring Kafka,Spring Cloud Stream,Spring Cloud Config,我们正在使用spring配置客户端动态刷新属性。我们在类路径上添加了SpringCloudStarter总线kafka,一切正常。所有这些依赖项的Pom版本都是2.X 我想做的是,删除SpringCloudStarterBusKafka并添加我的自定义代码以获取消费者事件和刷新上下文,然后使用CloudConfigClient刷新属性。我相信Spring正在调用ConfigServicePropertySourceLocator.locate。基本上,我只想复制Spring在Spring clo

我们正在使用spring配置客户端动态刷新属性。我们在类路径上添加了SpringCloudStarter总线kafka,一切正常。所有这些依赖项的Pom版本都是2.X

我想做的是,删除SpringCloudStarterBusKafka并添加我的自定义代码以获取消费者事件和刷新上下文,然后使用CloudConfigClient刷新属性。我相信Spring正在调用
ConfigServicePropertySourceLocator.locate
。基本上,我只想复制Spring在Spring cloud starter bus kafka中所做的工作,以便能够实时刷新属性

我这么做的原因是,我在内部使用的是卡夫卡客户端的旧版本。我们有一个自主开发的版本,它支持加密等等。问题来了,因为spring cloud starter bus kafka正在使用2.X版本的kakfa客户端,而我们的主版本还没有准备好。因此,它们中的任何一个都在某个时间点工作


有人能告诉我需要做些什么来使用kafka的刷新事件并刷新属性吗?我认为这不会太复杂。它应该使用kafka事件并在某处调用ConfigSourceLocator来刷新属性。

它甚至比这更简单。如果您查看
RefreshListener
类,您可以看到它所做的只是

    Set<String> keys = this.contextRefresher.refresh();
    log.info("Received remote refresh request. Keys refreshed " + keys);
Set keys=this.contextrefresh.refresh();
log.info(“收到远程刷新请求。密钥刷新”+密钥);
其中
contextrefresh
是一个
org.springframework.cloud.context.refresh.contextrefresh


这将触发处理自动查找配置的代码。

Super!这太容易了!