大家好
RabbitMQ
在ubuntu
与 jJava 一起使用时我有两个问题。
首先,如何从队列中获取消息?有两种“正确”的方式,例如:
ConnectionFactory factory = new ConnectionFactory(params);
Connection conn = factory.newConnection("localhost", 5672);
Channel channel = conn.createChannel();
String message=channel.basicGet("queuename", noAck).getBody();
另一个是
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare("queuename", true, false, false, null);
QueueingConsumer consumer = new QueueingConsumer(channel);
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
那么哪一个是正确的?如果两者都是,它们之间有什么区别?
第二,如何知道队列中的消息数?也就是说,我想检查队列是否为空。
是否有一些我可以使用的 API?channel.basicGet
?
如果队列中有一些消息ack
,会channel.basicGet
返回什么?实际上,我不知道 channel.basicGet 的第二个参数是什么意思......
非常感谢