Я хочу отправить сериализованные объекты 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
с ключом и пользовательским объектом.
Можете ли вы поделиться некоторыми идеями.