从通道接收Java对象时如何处理它们

从通道接收Java对象时如何处理它们,java,rabbitmq,Java,Rabbitmq,我想将序列化的Java对象发送到远程RabbitMQ客户端。我感兴趣的是,当接收到对象并且必须进行处理时,最佳实践是什么。我尝试了以下代码: channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, SerializationUtils.serialize(new SomecustomObj())); 处理接收逻辑的Java代码: public QueueConsumer() throws Exception { try {

我想将序列化的Java对象发送到远程RabbitMQ客户端。我感兴趣的是,当接收到对象并且必须进行处理时,最佳实践是什么。我尝试了以下代码:

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,以防万一还有其他好的实践吗?