本文已参与「新人创作礼」活动,一起开启掘金创作之路。
接着上一篇的文章,继续讲解:
RabbitMQ在JAVA中的使用
下面是使用JAVA实现消息队列中的生产者(Producer): 主要将消息投递到对应的Exchange上面。一般是独立的程序。
//Producer
public class Producer {
public static void main(String[] args) throws IOException, TimeoutException {
//1.创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
//2.设置参数
factory.setHost("10.2.5.115");
factory.setPort(5672);
factory.setUsername("admin");
factory.setPassword("admin");
//3.创建连接 Connection
Connection conn = factory.newConnection();
//4.创建Channel
Channel channel = conn.createChannel();
//5.创建队列Queue(此时未用到交换器)
/**
* String queue, 队列名称
* boolean durable,是否持久化,当mq重启后还在
* boolean exclusive,是否独占,只能有一个消费监听这队列
* boolean autoDelete,是否自动删除,当没有consumer时,自动删掉
* Map<String, Object> arguments 参数
*/
//如果没有一个名字叫helloWorld的队列,则会创建该队列,如果有则不会创建
channel.queueDeclare("helloWorld", true, false, false, null);
/**
* String exchange, 交换器名称,简单模式下交换器会使用默认的""
* String routingKey,路由名称
* BasicProperties props,配置信息
* byte[] body 发送消息数据
*/
//6.发送消息
channel.basicPublish("", "helloWorld", null, "hello rabbitmq".getBytes());
//7.释放 资源
channel.close();
conn.close();
}
}
下面是使用JAVA实现消息队列中的消费者(Consumer): 消息消费者。消息的接收者,一般是独立的程序。
//Consumer
public class Consumer {
public static void main(String[] args) throws IOException, TimeoutException {
//1.创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
//2.设置参数
factory.setHost("10.2.5.115");
factory.setPort(5672);
factory.setUsername("admin");
factory.setPassword("admin");
//3.创建连接 Connection
Connection conn = factory.newConnection();
//4.创建Channel
Channel channel = conn.createChannel();
//5.创建队列Queue(此时未用到交换器)
//如果没有一个名字叫helloWorld的队列,则会创建该队列,如果有则不会创建
channel.queueDeclare("helloWorld", true, false, false, null);
/**
* String queue, 队列名
* boolean autoAck, 是否自动确认
* Consumer callback 回调函数
*/
//接收消息
channel.basicConsume("", true, null);
}
}
以上~ 欢迎大家评论点赞~