当前位置: 首页 > 知识库问答 >
问题:

从Spring Cloud Stream MessageChannel获取主题名称

夹谷星纬
2023-03-14

我们在Spring Boot应用程序中使用Kafka Cloud Stream向Kafka发送数据。这样地

producerChannel.send(MessageBuilder
                    .withPayload(data)
                    .setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON)
                    .build())

我想知道除了直接从 yaml 文件中读取之外,是否可以从消息通道获取主题名称?

@Output("topic-name-out")
MessageChannel producerChannel();

主题名称存在于kafka.yaml中

spring:
  cloud:
    stream:
      bindings:
        topic-name-out:
          destination: topic_name_to_producer
          contentType: application/json
          producer:
            partitionCount: ${partition_count:3}

共有1个答案

桓瀚
2023-03-14

我看到您正在使用基于注释的编程模型(例如,@Outapp)。它已被弃用3年,正在从代码库中删除。请升级到功能模型。

至于您关于外部配置的目的地名称的问题,有一种方法可以通过绑定以编程方式访问它,但我更好奇的是,为什么需要它,因为它是一个内部细节,而且考虑到它是外部配置的,它可以在没有通知的情况下更改,从而影响您的代码。

 类似资料:
  • X2.2.0新增 sp_get_current_theme($default_theme='') 功能: 获取当前主题名 参数: $default_theme: 指定的默认主题 返回: 类型string,主题名 使用: $theme = sp_get_current_theme();

  • 问题内容: 在我的Django应用中,我需要从引荐来源网址中获取主机名及其协议,以便从类似以下网址的网址中获取: https://docs.google.com/spreadsheet/ccc?key=blah-blah-blah-blah#gid=1 https://stackoverflow.com/questions/1234567/blah-blah-blah-blah http://ww

  • 我想通过IP地址获得远程机器/主机名。我找到了很多答案,如nslookup、host、resloveip等。但是我仍然无法从我的目标机器(中央操作系统,ubuntu等)获得主机名似乎需要注册到DNS服务器? 我有一台名为test的机器,使用IP 10.1.27.97 但是我用了上面的方法还是不能得到“测试” 有人能帮我得到主机名表单IP地址吗?

  • 我的用例是,从生产者端,它将一行数据(大约100字节)作为一条消息发布到kafka topic,从消费者端,我希望一次消费5条消息,并将其提供给我的消费者逻辑。 我做了一个简单的例子,它总是得到一个消息并打印在控制台上。请建议我任何需要的配置更改,以实现这一点。 请在下面找到源代码。 使用以下命令启动生产者 /kafka生产者性能测试——num记录500——主题测试——吞吐量10——有效负载文件测

  • 我正在验证服务器上的客户端证书。 我已经使用了SSL_CTX_SET_VERVIY,并且有一个有效的回调API,我在里面验证客户端证书的过期日期和其他一些参数。我需要提取客户端证书的“颁发者”和“颁发给”值。 回调函数是这样的 我得到的客户证书详细信息填充到X509指针,并能够得到过期日期太(直接访问)。但是我不知道使用什么OpenSSL API来获取“发布者”和“发布到”。

  • 我需要创建一个消费者,能够从多个主题拉和订单消息相对于时间戳(Kafka消息时间戳) 在本例中,我订阅了“主题A”和“主题B”,并按照时间戳的顺序对消息进行排队 现在,只要所有主题只有一个分区,这很容易用这个伪代码来解决: 当我为每个主题引入多个分区时,问题就出现了。显然,不可能将多个主题按时间顺序排序到一个流中,因为在一个主题中,顺序不能保证,只能在一个分区中,所以新的问题是将多个主题排序到具有