RabbitMQ使用代码示例
2019独角兽企业重金招聘Python工程师标准>>>
安装并启动RabbitMQ
- 启动 RabbitMQ 服务器
./sbin/rabbitmq-server
Java 客户端访问
RabbitMQ 支持多种语言访问,以 Java 为例看下一般使用 RabbitMQ 的步骤。
- maven工程的pom文件中添加依赖
<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>4.1.0</version>
</dependency>
- 消息生产者
package org.study.rabbitmq;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Producer {public static void main(String[] args) throws IOException, TimeoutException {//创建连接工厂ConnectionFactory factory = new ConnectionFactory();factory.setUsername("guest");factory.setPassword("guest");//设置 RabbitMQ 地址factory.setHost("localhost");//建立到代理服务器到连接Connection conn = factory.newConnection();//获得信道Channel channel = conn.createChannel();//声明交换器String exchangeName = "hello-exchange";channel.exchangeDeclare(exchangeName, "direct", true);String routingKey = "hola";//发布消息byte[] messageBodyBytes = "quit".getBytes();channel.basicPublish(exchangeName, routingKey, null, messageBodyBytes);channel.close();conn.close();}
}
- 消息消费者
package org.study.rabbitmq;
import com.rabbitmq.client.*;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
public class Consumer {public static void main(String[] args) throws IOException, TimeoutException {ConnectionFactory factory = new ConnectionFactory();factory.setUsername("guest");factory.setPassword("guest");factory.setHost("localhost");//建立到代理服务器到连接Connection conn = factory.newConnection();//获得信道final Channel channel = conn.createChannel();//声明交换器String exchangeName = "hello-exchange";channel.exchangeDeclare(exchangeName, "direct", true);//声明队列String queueName = channel.queueDeclare().getQueue();String routingKey = "hola";//绑定队列,通过键 hola 将队列和交换器绑定起来channel.queueBind(queueName, exchangeName, routingKey);while(true) {//消费消息boolean autoAck = false;String consumerTag = "";channel.basicConsume(queueName, autoAck, consumerTag, new DefaultConsumer(channel) {@Overridepublic void handleDelivery(String consumerTag,Envelope envelope,AMQP.BasicProperties properties,byte[] body) throws IOException {String routingKey = envelope.getRoutingKey();String contentType = properties.getContentType();System.out.println("消费的路由键:" + routingKey);System.out.println("消费的内容类型:" + contentType);long deliveryTag = envelope.getDeliveryTag();//确认消息channel.basicAck(deliveryTag, false);System.out.println("消费的消息体内容:");String bodyStr = new String(body, "UTF-8");System.out.println(bodyStr);}});}}
}
转载于:https://my.oschina.net/chendongj/blog/1836870
RabbitMQ使用代码示例相关推荐
- RabbitMq(七) Topic模式介绍及代码示例
概述: 在上一文章中我们介绍了路由模式(Routing),routing模式是不同的消息队列绑定了不同的路由key,但是我们看出路由key为固定的字符串标记.而本章中的Topic模式则为在路由模式下, ...
- java爬虫代码示例_那些让你代码思维和能力有较大的提升Java源码
来源:www.cnblogs.com/jiagou/p/9270070.html 对于学习J2EE的框架有很大的帮助,代码里使用了各种设计模式.事件机制.Java8语法.代码量也很小,web服务使用N ...
- 【DDD】2万字讲解DDD,从理论到实战(代码示例)
文章目录 基础概念 领域 限界上下文 贫血模型和充血模型 贫血模型 充血模型 实体和值对象 实体 值对象 聚合 聚合根 领域事件 领域事件相关案例 事件风暴 DDD分层架构 用户接口层 应用层 领域层 ...
- 用户自定义协议client/server代码示例
用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc cli ...
- 2021年大数据Flink(二十六):State代码示例
目录 State代码示例 Keyed State 官网代码示例 需求: 编码步骤 代码示例 Operator State 官网代码示例 需求: 编码步骤: 代码示例 State代码示例 Keyed S ...
- TensorFlow常用操作:代码示例
1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...
- TensorFlow基本计算单元:代码示例
1,代码示例: import tensorflow as tf a = 3 #创建变量 w = tf.Variable([[0.6,1.2]])#创建行向量 x = tf.Variable([[2.1 ...
- php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...
PHP余额查询接口代码示例 请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://api.weimi.cc/2/accoun ...
- java结束全部操作代码_Java创建与结束线程代码示例
这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...
最新文章
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失(续)
- android pcm频谱_Android音频可视化
- Nginx之gzip压缩配置
- mysql数据库查询要注意事项_三种mysql高级查询技巧_数据库_mysql函数_课课家
- form表单提交数据
- 使用docker安装easy-mock
- linux暂停和恢复进程
- Django OAuth2 linkedin的第三方登录
- L298电机驱动原理图+PCB
- w3c离线手册2019
- [jruby] warbler 配置问题说明
- Python的seek函数
- android系统优化方向,Android开发的优化方向
- 大数据周会-本周学习内容总结05
- Edge浏览器的书签(收藏夹)文件夹地址在哪?
- win10计算机出现位置不可用desktop不可用,桌面只有此电脑几个图标,其它桌面图标都没有了
- int8 和 uint8 区别
- 第五章第四十九题(对元音和辅音进行计数)(Count vowels and consonants)
- Data Augment ------TensorFlow 训练图片处理
- 《MATLAB 入门之旅》知识点总结