在前面,我们成功实现了rabbitmq的安装,详见《centos7.x如何使用docker安装rabbitmq并配置管理界面?》,今天我们来讲解下rabbitmq的实战编码之生产者。
第一步、创建一个maven项目
此处略
第二步、添加maven的依赖
<!--rabbitmq --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.6.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.rabbitmq/rabbitmq-client --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>rabbitmq-client</artifactId> <version>1.3.0</version> </dependency>
第三步、创建生产者,这里不过多解释了,所有的说明都在代码注释里面
package com.demo.rabbitmq;
import java.io.IOException;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class RabbitMqProducer {
private String queueName = "test";
private Channel channel = null;
private ConnectionFactory factory = null;
private Connection connection = null;
public RabbitMqProducer() {
try {
// 创建连接工厂
factory = new ConnectionFactory();
// 设置用户名和密码,默认的账号密码是:guest,guest
factory.setUsername("guest");
factory.setPassword("guest");
// 设置 RabbitMQ 地址
factory.setHost("192.168.31.10");
// 端口的话,程序连接需要使用5672端口,我们在web浏览器里面查看的webui的端口是15672
factory.setPort(5672);
// 建立到代理服务器到连接
connection = factory.newConnection();
// 获得通道
channel = connection.createChannel();
// 参数1,声明队列,参数2 是否持久化,参数3
// 是否排他,是否独战连接,队列只允许该链接中访问,如果连接关闭,队列也就删除了,参数4:是否自动删除,如果将此参数设置true,那么就变成零时队列,参数5
// :扩展参数,例如存活时间
channel.queueDeclare(queueName, true, false, false, null);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 生产中,我们发送的message一般都是json字符串。
*
* basicpublish的参数说明 第一个参数是exchange,向指定exchange发送 第二个参数是routingKey,一般用消息队列的名称
* 第三个参数是props,这里是为这条消息设置一些属性,这里不用,所以暂时为空。 第四个参数是消息,需要编码成UTF8
*
* @param message
*/
public void send(String message) {
try {
channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroy() {
try {
// 关闭资源
channel.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}第四步、创建一个测试类
package com.demo.rabbitmq;
public class RabbitmqTest {
public static void main(String[] args) {
produceMsg();
//consumingMsg();
}
private static void consumingMsg() {
RabbitMqConsumer consumer = new RabbitMqConsumer();
consumer.getMsg();
}
/**
* 测试生产消息
*/
private static void produceMsg() {
RabbitMqProducer rabbitMqProducer = new RabbitMqProducer();
rabbitMqProducer.send("11111");
rabbitMqProducer.destroy();
}
}第五步、点击运行
运行之后,我们去rabbitmq的管理界面(管理界面的访问地址是:http://服务器IP:15672,账号:guest,密码:guest)查看
我们看到刚才创建的queueName test所在。就代表生产者测试成功了。










还没有评论,来说两句吧...