rabbitmq的java调用实例
来源:互联网 发布:php好找工作么 编辑:程序博客网 时间:2024/05/16 18:20
本文将介绍rabbitmq在用java进行调用的代码实现
一、添加maven依赖
<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>4.1.0</version></dependency>
二、消息生产者
关键点如下:
1、创建ConnectionFactory,包括设置rabbitmq服务的地址与端口号(amqp默认端口是5672)、用户名、密码、vhost(默认是/) ;
2、获取Connection ;
3、获取Channel ,并在其上声明queue、exchanger,并通过routingkey把queue在exchanger进行绑定 ;
代码实例如下:
public class RabbitmqProducerMain { public static void main(String[] args) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("192.168.0.107"); factory.setPort(5672); factory.setUsername("admin"); factory.setPassword("123456"); factory.setVirtualHost("vhostOne"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); String queueName = "queueOne"; String exchangeName = "exchangerOne"; String routingKey = "queueOne"; channel.exchangeDeclare(exchangeName,"direct"); channel.queueDeclare(queueName,false,false,false,null); channel.queueBind(queueName,exchangeName,routingKey); int msgCnt =15000; while(msgCnt-->0){ String msg = "msg"+Math.random()*100; channel.basicPublish(exchangeName,routingKey,null,msg.getBytes()); //发送消息 System.out.println("produce msg :"+msg); TimeUnit.MILLISECONDS.sleep((long) (Math.random()*500)); } channel.close(); connection.close(); }}
三、消息消费者
关键点如下:
1、创建ConnectionFactory,包括设置rabbitmq服务的地址与端口号(amqp默认端口是5672)、用户名、密码、vhost(默认是/) ;
2、获取Connection ;
3、获取Channel ,并在其上声明queue ;
4、定义消费消息Consumer;
5、消费消息channel.basicConsume(queueName,false,"queueOne",consumer);
代码实例如下:
public class RabbitmqConsumerMain { public static void main(String[] args) throws Exception { ConnectionFactory factory = new ConnectionFactory(); factory.setHost("192.168.0.107"); factory.setPort(5672); factory.setUsername("admin"); factory.setPassword("123456"); factory.setVirtualHost("vhostOne"); Connection connection = factory.newConnection(); Channel channel = connection.createChannel(); String queueName = "queueOne"; channel.queueDeclare(queueName,false,false,false,null); channel.basicQos(5); //每次取5条消息 Consumer consumer = new DefaultConsumer(channel){ @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { //消费消费 String msg = new String(body,"utf-8"); System.out.println("consume msg: "+msg); try { TimeUnit.MILLISECONDS.sleep((long) (Math.random()*500)); } catch (InterruptedException e) { e.printStackTrace(); } //手动消息确认 getChannel().basicAck(envelope.getDeliveryTag(),false); } }; //调用消费消息 channel.basicConsume(queueName,false,"queueOne",consumer); }}
阅读全文
0 0
- rabbitmq的java调用实例
- java的RabbitMQ 实例
- java调用rabbitmq消息队列发送和接收消息实例
- RabbitMQ Java 实例
- 简单Java实例rabbitMQ
- RabbitMQ环境配置,java实例
- java远程连接调用Rabbitmq
- Spring-rabbitmq 实现RPC 风格调用实例
- RabbitMQ的RPC【JAVA】
- RabbitMQ(二) java简单的实现RabbitMQ
- RabbitMQ 入门指南(Java)带实例
- java-rabbitmq-官网实例01
- java-rabbitmq-官网实例02
- java-rabbitmq-官网实例03
- java-rabbitmq-官网实例04
- java-rabbitmq-官网实例05
- java-rabbitmq-官网实例06
- JAVA调用RabbitMQ,附安装过程
- SQLite系列笔记之环境搭建
- Android之Menu解析
- 闭包与回调
- Python的import
- windows下tensorflow的安装与学习(基于anaconda的python3.5)
- rabbitmq的java调用实例
- Problem C: 给我一台计算机吧!
- Hadoop工作原理图-WordCount示例
- git将代码上传到coding分支
- 网络编程
- java学习之接口
- Hibernate入门05_一对一映射
- Oracle 事务隔离级别
- 数据挖掘岗面试总结