0
我有一個PHP中的生產者和Java中的消費者,它們將通過RabbitMQ進行通信。他們將使用三種不同的消息類型。如果製片人也是一個Java應用程序,我可以只序列化對象爲原料,然後在消費者做:消費不同的消息類型序列化爲json
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
Object deserializedBody = SerializationUtils.deserialize(body);
if (deserializedBody instanceof TypeOne) {
TypeOne typeOne = (TypeOne) deserializedBody;
// process with corresponding code
} else if (deserializedBody instanceof TypeTwo) {
TypeTwo typeTwo = (TypeTwo) deserializedBody;
// process with corresponding code
} else if (deserializedBody instanceof TypeThree) {
TypeThree typeThree = (TypeThre) deserializedBody;
// process with corresponding code
} else {
// throw exception
}
}
};
但由於我的製片人是在PHP中,我將不得不序列化消息JSON字符串。
我該如何區分三種消息類型?