AMQP和CORE都是ActiveMQ支持的消息协议,它们之间的主要区别在于消息的格式和传输方式。
AMQP协议是一种面向消息的协议,支持传输不同类型的消息,包括文本、二进制和结构化数据。它使用TCP作为底层传输协议,并定义了可靠和可恢复的消息传输机制。
CORE协议是一种基于STOMP的简化消息协议,它依赖于文本格式的消息,而不支持二进制或结构化数据。CORE协议使用TCP传输,但没有定义消息传输机制,因此消息可能会在传输过程中丢失。
下面是一个使用AMQP协议发送和接收消息的示例代码:
// 创建一个AMQP连接 ConnectionFactory factory = new JmsConnectionFactory("amqp://localhost:5672"); Connection connection = factory.createConnection(); connection.start();
// 创建一个会话 Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建一个目的地 Destination destination = session.createQueue("myqueue");
// 创建一个消息生产者 MessageProducer producer = session.createProducer(destination);
// 创建一个文本消息 TextMessage message = session.createTextMessage("Hello World!");
// 将消息发送到目的地 producer.send(message);
// 创建一个消息消费者 MessageConsumer consumer = session.createConsumer(destination);
// 接收消息并处理 Message receivedMessage = consumer.receive(); if (receivedMessage instanceof TextMessage) { TextMessage receivedTextMessage = (TextMessage) receivedMessage; System.out.println("Received message: " + receivedTextMessage.getText()); }
// 关闭连接 connection.close();