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

Spring Cloud Stream消息正文中发现的嵌入式头

彭建业
2023-03-14

我使用Spring Cloud Stream 1.3.2.Release向Kafka发布字符串消息。当我使用命令行Kafka consumer或Spring Kafka@kafkalistener使用消息时,总是在消息正文中追加一个contentType头。

问题:

有什么方法可以去掉嵌入的头吗?

--

private void send() {
    channel.test().send(MessageBuilder.withPayload("{\"foo\":\"bar\"}").build());
}
$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test
�
 contentType
            "text/plain"{"foo":"bar"}
@KafkaListener(topics = "test")
public void receive(Message message){
    log.info("Message payload received: {}", message.getPayload());
}

2018-05-16 07:12:05.241  INFO 19475 --- [ntainer#0-0-C-1] com.demo.service.Listener  : Message payload received: �contentType"text/plain"{"foo":"bar"}

@KafkaListener(topics = "test")
public void receive(@Payload String message){
    log.info("Message payload received: {}", message);
}

2018-05-16 07:16:14.313  INFO 19747 --- [ntainer#0-0-C-1] com.demo.service.Listener  : Message payload received: �contentType"text/plain"{"foo":"bar"}

共有1个答案

狄兴邦
2023-03-14

参见headermode绑定属性:https://docs.spring.io/spring-cloud-stream/docs/ditmars.sr3/reference/htmlsingle/#_properties_for_use_of_spring_cloud_stream。对于发送消息的目的地,您需要将其设置为raw

 类似资料:
  • 我见过很多不和谐的嵌入代码,比如: (这是一个老问题,我是新来的,所以…) 所以,我不明白的是什么是触发因素?就像你应该打字一样。乒乓球对吗?那么,我应该键入什么来获取我的bot类型呢?

  • 使用StreamBridge,我将包含两种不同类型的对象的消息发送到单个Kafka主题。有没有办法定义一个能够使用两种类型消息的Spring Cloud Stream的功能消费者?

  • DemohornetQServerReceiveApplication: Application.Properties(ServerReceive) 启动这两个应用程序后,日志输出显示如下: 消息似乎没有从ServerEnd转发到ServerReceive。 我做了更多的测试,创建了另外两个Spring Boot应用程序(ClientSend和ClientReceive),它们没有嵌入Hornet

  • 如何在一条消息中发送多个嵌入?像这样发送多个: 输出: 我找不到任何关于发送多个嵌入的文档,在discord.js文件中提到了它,发送了一个嵌入列表。虽然我试过这个,但它也不起作用。

  • 我只是想给加入服务器的新成员写一封欢迎信。我想在每次新成员加入时发送嵌入。但是,未发送嵌入。有人能帮我吗? 这是我的代码: 谢谢

  • 我的discord机器人发送了错误的嵌入消息。这是一个拥抱命令,如果某人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户!我想以嵌入方式发送此消息,但它无法正常工作。每次我使用命令时,没有提到任何人,我的控制台中都不会出现错误。当我提到某人时,它是有效的,但它也会发送错误信息。以下是一个截图:https://i.imgur.com/bcnS1Yb.png 我的代码: 请帮帮