我已经使用 POJO 通过 spring amqp 设置了基本的请求/回复消息,这些通过 JSON 消息转换器在 RabbitMQ 上交换。
到目前为止,我的响应 pojo 的有效负载是简单的字符串,但现在我有时也需要用图像回复。
Q1) 处理此问题的最佳方法是什么?图像是否应该被 base64 编码为 JSON 消息的有效负载字符串?
Q2)是否可以简单地将图像作为 BytesMessage 返回?
Q2.a) spring-amqp 是否能够处理两个单独的侦听器,一个返回 POJO,另一个返回 BytesMessage?我不这么认为,但这里有一些关于我要问的伪代码:
<listener-container>
<listener ref="requestHandlerA" method="handleMessage" queue-names="#{requestQueue.name}" />
<listener ref="requestHandlerB" method="handleMessage" queue-names="#{requestQueue.name}" />
</listener-container>
public class RequestHandlerA {
public ResponseDelegatePojo handleMessage(RequestDelegatePojo requestDelegate) {...}
}
public class RequestHandlerB {
public BytesMessage handleMessage(RequestDelegatePojo requestDelegate) {...}
}
Q2.b) 或者...如果 MessageListener 返回一个对象(有时可能是 POJO,有时可能是 BytesMessage)... spring-amqp 框架是否能够在运行时进行相应调整以发送回序列化的 POJO有时作为 json 和其他时间的BytesMessage?