4、HelloWorld
使用 Java 和 RabbitMQ ,发送单个消息的生产者和接收消息并打印的消费者。
bean
public class ConnectionBean {
private String host;
private String username;
private String password;
private String queuename;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getQueuename() {
return queuename;
}
public void setQueuename(String queuename) {
this.queuename = queuename;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
util
public class CommonUtil {
public Channel getChannel(String host,
String username,
String password) throws IOException, TimeoutException {
// 创建连接工厂对象
ConnectionFactory connectionFactory = new ConnectionFactory();
// 设置IP地址
connectionFactory.setHost(host);
// 设置登陆用户名
connectionFactory.setUsername(username);
// 设置用户密码
connectionFactory.setPassword(password);
// channel 对象
return connectionFactory.newConnection().createChannel();
}
}
producer
public class Producer {
private static ConnectionBean bean = new ConnectionBean();
private static CommonUtil util = new CommonUtil();
public static void main(String[] args) {
try {
bean.setQueuename("hello");
bean.setHost("192.168.126.129");
bean.setUsername("3aniuma");
bean.setPassword("123456");
bean.setMessage("hello world");
Channel channel = util.getChannel(bean.getHost(),bean.getUsername(),bean.getPassword());
/**
* 生成一个队列
* 参数
* 1.队列名称
* 2.队列里面的消息是否持久化 默认消息存储在内存中
* 3.该队列是否只供一个消费者进行消费 是否进行共享 true 可以多个消费者消费
* 4.是否自动删除 最后一个消费者端开连接以后 该队列是否自动删除 true 自动删除
* 5.其他参数
*/
channel.queueDeclare(bean.getQueuename(),false,false,false,null);
/**
* 发送一个消息
* 1.发送到那个交换机
* 2.路由的 key 是哪个
* 3.其他的参数信息
* 4.发送消息的消息体
*/
channel.basicPublish("",bean.getQueuename(),null,bean.getMessage().getBytes());
System.out.println("消息发送完毕!!");
} catch (IOException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
}
}
consume
public class Consume {
public static void main(String[] args) throws IOException, TimeoutException {
ConnectionBean bean = new ConnectionBean();
bean.setQueuename("hello");
bean.setHost("192.168.126.129");
bean.setUsername("3aniuma");
bean.setPassword("123456");
bean.setMessage("hello world");
CommonUtil util = new CommonUtil();
Channel channel = util.getChannel(bean.getHost(),bean.getUsername(),bean.getPassword());
DeliverCallback deliverCallback = (consumerTag, delivery)->{
String message = new String(delivery.getBody());
System.out.println("message = " + message);
};
CancelCallback cancelCallback = consumerTag->{
System.out.println("消息消费被中断");
};
channel.basicConsume(bean.getQueuename(),false,deliverCallback,cancelCallback);
}
}
版权声明:本文为m0_55668855原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。