rabbitMQ使用java发送者和消费者
发送者
com.rabbitmq
amqp-client
5.8.0
commons-io
commons-io
2.6
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Producer {
//队列名称
public static final String QUEUE_NAME = "hello";
//发消息
public static void main(String[] args) throws IOException, TimeoutException {
//创建一个链接工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂ip 链接mQ队列
factory.setHost("xxx.xxx.xxx.xxx");
//用户名
factory.setUsername("root");
//密码
factory.setPassword("root");
//创建链接
Connection connection = factory.newConnection();
//获取信道
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME,true,false,false,null);
//发消息
String message = "hello world";
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
System.out.println("消息发送完毕");
}
}
- 如果用云服务器记得打开5672端口
- 如果报错
- (Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method(reply-code=530, reply-text=NOT_ALLOWED - access to vhost ‘/’ refused for user ‘root’, class-id=10, method-id=40))
- 是因为权限问题
消费者
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Consumer {
//队列名称
public static final String QUEUE_NAME = "hello";
//接受消息
public static void main(String[] args) throws IOException, TimeoutException {
//创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
//工厂ip 链接mQ队列
factory.setHost("124.220.3.19");
//用户名
factory.setUsername("root");
//密码
factory.setPassword("root");
//创建链接
Connection connection = factory.newConnection();
//获取信道
Channel channel = connection.createChannel();
//声明_接手消息
DeliverCallback deliverCallback = (consumerTag,message) ->{
System.out.println(new String(message.getBody()));
};
//取消消息时的回调
CancelCallback cancelCallback = consumerTag ->{
System.out.println("消费消息被中断");
};
channel.basicConsume(QUEUE_NAME,true,deliverCallback,cancelCallback);
}
}
- 结果图
- 这个文章对应链接: 尚硅谷RabbitMQ教程 P14 P15