问题描述:Amazon MQ消费者无法获取数据。
解决方法:
String brokerUrl = "ssl://b-XXXXX-XXXXX-XXXXX-XXXXX-1.mq.us-east-1.amazonaws.com:61617";
String username = "my-username";
String password = "my-password";
ConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory(brokerUrl);
connectionFactory.setUserName(username);
connectionFactory.setPassword(password);
Connection connection = connectionFactory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue"); // 或者是createTopic("my-topic");
MessageConsumer consumer = session.createConsumer(destination);
Message message = consumer.receive();
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage) message;
String text = textMessage.getText();
System.out.println("Received message: " + text);
} else {
System.out.println("Received non-text message");
}
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue"); // 或者是createTopic("my-topic");
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage("Hello, World!");
producer.send(message);
在Amazon MQ控制台中,选择正确的Broker,然后在“Configuration”选项卡中查看ACL设置,确保消费者具有正确的权限。
如果以上方法仍然无法解决问题,建议检查Amazon MQ Broker的运行状态和日志,以查找更详细的错误信息,并在Amazon MQ论坛或向AWS支持寻求帮助。