我正在使用Spring Framework的KafkaListener接口来收听Kafka主题。该代码正在工作,但是我猜我正在接收ASCII字符串形式的消息。我不太确定为什么会这样。
这是我的代码:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.messaging.handler.annotation.Payload;
import org.springframework.stereotype.Service;
@Service
public class Receiver {
private static final Logger LOG = LoggerFactory.getLogger(Receiver.class);
@KafkaListener(topics = "mongoDBTest", groupId = "test")
public void listen(@Payload String cMessage) {
LOG.info("received message=" + cMessage);
Application.print();
}
}
消费时“测试”,我得到“已接收消息= 116,101,115,116”作为输出。
答案 0 :(得分:0)
嗨,看来有人用错误的方式消费了消息,而不仅仅是String。如果您可以在那部分修复它,那就太好了。
否则,您需要将这些字节解码为普通的String。 请尝试
String[] split = cMessage.split(",");
byte[] bytes = new byte[split.length];
for (int i = 0; i < split.length; i++) {
bytes[i] = Byte.parseByte(split[i]);
}
LOG.info("received message=" + new String(bytes));