文档章节

java RabbitMQ

y
 yan5845hao
发布于 2017/05/21 15:12
字数 304
阅读 5
收藏 0

四种交换器

Fanout: 不管消息的routing key和参数表的头信息/值是什么, 消息将会路由到该队列上。
Topic: 如果消息的routing key与bingding的routing key符合通配符匹配的话, 消息将会路由到该队列上。
Direct: 如果消息的routing key与bingding的routing key直接匹配的话, 消息将会路由到该队列上。
Headers: 如果消息参数表中的头信息和值都与binding参数表中相匹配, 消息将会路由到该队列上。

创建消息生成者

String EXCHANGE_NAME = "uwo.topic";
// 创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 设置RabbitMQ相关信息
factory.setHost("10.211.55.8");
factory.setUsername("uwo");
factory.setPassword("yan5845hao");
factory.setVirtualHost("/");
factory.setPort(5672);
// 创建一个新的连接
Connection connection = factory.newConnection();
// 创建一个通道
Channel channel = connection.createChannel();
// 声明topic模式的交换机
channel.exchangeDeclare(EXCHANGE_NAME, "topic", true);
// 发送消息
String message = "Hello, UWO!";
channel.basicPublish(EXCHANGE_NAME, "com.uwo.rabbit", null, message.getBytes());
channel.close();
connection.close();

创建消息消费者

ConnectionFactory factory = new ConnectionFactory();
factory.setHost("10.211.55.8");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
// 声明topic模式的交换机
channel.exchangeDeclare(EXCHANGE_NAME, "topic", true);
String queue = channel.queueDeclare().getQueue();
// 设置匹配的字符
channel.queueBind(queue, EXCHANGE_NAME, "com.uwo.#");
Consumer consumer = new DefaultConsumer(channel) {
      @Override
      public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
        String message = new String(body, "UTF-8");
        System.out.println("收到信息:" + message);
     }
};
channel.basicConsume(queueName, true, consumer);

© 著作权归作者所有

共有 人打赏支持
上一篇: Spring 配置RabbitMQ
下一篇: Docker 安装RabbitMQ
y
粉丝 7
博文 123
码字总数 21918
作品 0
扬州
程序员
私信 提问
redhat 安装Rabbitmq

先安装JDK 安装erlang环境: 安装依赖文件:yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto; yum install unixODBC-devel 解压erlang文件:tar -zxvf otpsrc19.2.ta......

ts88
04/23
0
0
RabbitMQ入门(1)--介绍

前面声明本文都是RabbitMQ的官方指南翻译过来的,由于本人水平有限难免有翻译不当的地方,如发现不对的地方,请联系下我,好及时改正。好了,正文开始: RabbitMQ 是一个消息代理。这主要的原...

-悟空-
2015/02/24
0
18
RabbitMQ入门(2)--工作队列

工作队列 (使用Java客户端) 在这第一指南部分,我们写了通过同一命名的队列发送和接受消息。在这一部分,我们将会创建一个工作队列,在多个工作者之间使用分布式时间任务。工作队列(亦称:任...

-悟空-
2015/02/24
0
8
【2】Hello World示例

介绍 RabbitMQ是作为一个消息代理中间件,其设计的目的很简单:收集消息然后转发消息。你可以把它当成一个邮局:当你发送邮件到邮箱时你肯定相信邮递员肯定会把这封邮件送到收件人手上。在这...

不羁青年
2015/08/16
0
0
RabbitMQ-CookBook-第8章-RabbitMQ性能调优

内存控制 vmmemoryhigh_watermark该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存...

yzy121403725
06/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

get和post详解

get和post是表单提交的两种方式,get请求数据通过域名后缀URL传送,用户可见,不安全,post请求数据通过在请求报文正文里传输,相对比较安全。get是通过URL传递表单值,post通过URL看不到表单...

青衣霓裳
25分钟前
0
0
linux-如何快速替换IP

在Linux在做高可用的时候,经常会使用到虚拟IP。在windows上一个网卡可以配置两个IP,在Linux直接使用ip命令就可以添加了。 添加 ip address add 192.168.1.200/24 broadcast 192.168.1.255 ...

Linux就该这么学
30分钟前
0
0
Unix-Linux 编程实践教程 第五章 小结

设备文件中用逗号连接起来的两个数字为主设备号和从设备号。主设备号确定实际的设备驱动程序,从设备号作为参数。 如下图中的,主设备号-4,从设备号-2 设备文件中的i-node存储的是指向内核子...

Explorer0
32分钟前
1
0
virtual box centos7 挂载进行文件和共享使用说明

一、virtualbox共享文件夹无访问权限问题解决方法 (转载 http://www.cnblogs.com/zhuguanhao/p/6192777.html) 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题...

mbzhong
35分钟前
1
0
Rabbitmq---消息队列

一 . MQ:message queue   消息队列的作用:   1 通信解耦   2 高峰限流 原理分析: 一开始,认证系统是强耦合的,A系统传递认证系统消息接收计算结果的过程中   1 传给认证系统   2 认...

Ala6
39分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部