从通道接收Java对象时如何处理它们
我想将序列化的Java对象发送到远程RabbitMQ客户端。我感兴趣的是,当接收到对象并且必须进行处理时,最佳实践是什么。我尝试了以下代码:从通道接收Java对象时如何处理它们,java,rabbitmq,Java,Rabbitmq,我想将序列化的Java对象发送到远程RabbitMQ客户端。我感兴趣的是,当接收到对象并且必须进行处理时,最佳实践是什么。我尝试了以下代码: channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, SerializationUtils.serialize(new SomecustomObj())); 处理接收逻辑的Java代码: public QueueConsumer() throws Exception { try {
channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, SerializationUtils.serialize(new SomecustomObj()));
处理接收逻辑的Java代码:
public QueueConsumer() throws Exception {
try {
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties,
byte[] body) throws IOException {
traslateObj(SerializationUtils.deserialize(body));
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
} catch (IOException e) {
e.printStackTrace();
}
}
private void traslateObj(Object obj) {
if (obj instanceof TransactionsBean) {
/// do something
}
if (obj instanceof NotesBean) {
/// do something
}
}
您能分享一下您的经验吗?使用instanceof
将Java对象导航到适当的处理方式更好吗?或者使用HashMap
和键和自定义对象更好吗
你能分享一些想法吗 最好是每个队列只发送一种类型的对象。这也是我几分钟前得到的一个很好的答案。@mavriksc,以防万一还有其他好的实践吗?