Middle
54
Erzählen Sie mir von Ihrer Erfahrung mit JMS und ActiveMQ. Wie sieht der Code zum Lesen von Nachrichten aus der Warteschlange aus?
Unternehmen wurden gefragt
Финансовые платформы
Antwort von AI
sobes.tech KI
JMS (Java Message Service) — это стандартный API для работы с сообщениями в Java, а ActiveMQ — популярный брокер сообщений, реализующий JMS.
Для чтения сообщений из очереди с помощью JMS и ActiveMQ обычно создаётся соединение, сессия, получатель сообщений (consumer), и затем происходит получение сообщений.
Пример кода для чтения сообщений из очереди:
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
public class JMSConsumer {
public static void main(String[] args) throws JMSException {
// Создаём фабрику соединений
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
// Создаём соединение
Connection connection = factory.createConnection();
connection.start();
// Создаём сессию без транзакций и с автоматическим подтверждением
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// Создаём очередь
Destination queue = session.createQueue("exampleQueue");
// Создаём получателя сообщений
MessageConsumer consumer = session.createConsumer(queue);
// Получаем сообщение (ожидаем до 1 секунды)
Message message = consumer.receive(1000);
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
System.out.println("Получено сообщение: " + textMessage.getText());
} else {
System.out.println("Получено не текстовое сообщение");
}
// Закрываем ресурсы
consumer.close();
session.close();
connection.close();
}
}
Этот код подключается к ActiveMQ, слушает очередь "exampleQueue" и выводит текст полученного сообщения.