【问题标题】:Integrating custom kafka consumer with Spring cloud config client将自定义 kafka 消费者与 Spring 云配置客户端集成
【发布时间】:2019-10-23 16:34:05
【问题描述】:

我们正在使用 spring 配置客户端来动态刷新属性。我们在类路径中添加了 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-clients 的 2.X 版本,而我们的家庭版本还没有准备好。因此,他们中的任何一个都在某个时间点工作。

有人可以告诉我一些需要做什么来消耗来自 kafka 的刷新事件并刷新属性的指针吗?我不认为这太复杂了。它应该正在消耗 kafka 事件并在某个地方调用 ConfigSourceLocator 来刷新属性。

【问题讨论】:

    标签: spring-cloud spring-kafka spring-cloud-stream spring-cloud-config


    【解决方案1】:

    比这更简单。如果您查看 RefreshListener 类,您会发现它所做的只是

        Set<String> keys = this.contextRefresher.refresh();
        log.info("Received remote refresh request. Keys refreshed " + keys);
    

    其中contextRefresher 是org.springframework.cloud.context.refresh.ContextRefresher。

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

    【讨论】:

    • 超级!这太容易了!
    猜你喜欢
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 2023-03-20
    • 2020-12-09
    • 2015-09-18
    • 2014-06-22
    • 2015-11-13
    • 1970-01-01
    相关资源
    最近更新 更多