0

我正在尝试实现一些CloudEvent演示。
我有一个 hew spring boot 服务RabbitMQ作为消息总线,它们都将消息发送到队列,并且一个监听队列消息。
我尝试包装我的信息CloudEvent以使它们更标准。
我使用以下代码将消息(数据)包装为CloudEvent.

try {
    inputEvent = CloudEventBuilder.v1()
            .withSource(new URI("app://" + messageData.getChangeRequestId().toString()))
            .withDataContentType("application/json")
            .withId(messageData.myId().toString())
            .withType("com.data.BaseMessageData")
            .withData(objMapper.writeValueAsBytes(eventData))
            .build();

} catch (Exception e) {
   throw new MyMessagingException("Failed to convert the message into json. (See inner exception for further details)", e);
}

由于消息CloudEventData是基于字节的,因此数据被转换为字节。
当然,在我的侦听器方法上,由于SimpleMessageConverter无法处理字节数组,我得到了异常。现在,我可以尝试实现一些自定义消息处理程序或尝试查看CloudEventAMQP 建议的绑定解决方案,但我并不热衷于它涉及的代码量,如果不是绝对必要的话,我不想涉及更多技术。

  1. 我应该走这条路并实现自定义消息转换器吗?
  2. 是否有任何其他标准解决方案可以通过 qeeus 标准化服务消息传递?
4

1 回答 1

0

您将需要一个自定义消息转换器;但请参阅此博客文章:

https://spring.io/blog/2020/12/10/cloud-events-and-spring-part-1

于 2020-12-14T15:22:39.650 回答