在前面,我们成功实现了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所在。就代表生产者测试成功了。
还没有评论,来说两句吧...