文档章节

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);

© 著作权归作者所有

共有 人打赏支持
y
粉丝 7
博文 120
码字总数 21437
作品 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 php 使用

RabbitMQ是一个开源的基于AMQP(Advanced Message Queuing Protocol)标准,并且可靠性高的企业级消息系统,目前很多网站在用,包括reddit,Poppen.de等。 1. 安装RabbitMQ sudo apt-get ins...

mac_zhao
2014/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash常用内置变量介绍

Bash常用内置变量介绍 Bash中有很多内置变量,这些变量不仅影响Bash的相关行为,也大大的方便了用户的常见操作。**Bash内置变量大体上包括两类,一类是传统Shell所具备的,另一类就是Bash所特...

小陶小陶
26分钟前
0
0
05-《深度拆解Java虚拟机》之JVM是如何执行方法调用的?(下)

一、问题引入 我们知道,设计模式大量使用了虚方法来实现多态。但是虚方法的性能效率并不高,所以作者就想在此基础上写篇文章,评估每一种设计模式因为虚方法调用而造成的性能开销,并且在文...

飞鱼说编程
46分钟前
3
0
nginx统一入口 多服务出口

nginx配置多ip和端口统一调用入口log_format中$upstream_addr 标识打印转发的url地址配置upstream和locationhttp {include mime.types;default_type application/octet-stream...

GoldenVein
47分钟前
3
0
阿里P9架构师谈:高并发网站的监控系统选型、比较、核心监控指标

在高并发分布式环境下,对于访问量大的业务、接口等,需要及时的监控网站的健康程度,防止网站出现访问缓慢,甚至在特殊情况出现应用服务器雪崩等场景,在高并发场景下网站无法正常访问的情况...

我是你大哥
49分钟前
2
0
华为HiAI 助力苏宁易购,让你尽享完美视觉购物体验!

还在感慨商品照片与实物存在差距,又要退货? 还在抱怨被忽视的图片小细节,影响了生活品质? 想要“买买买”, 又担心海量的商品图片耗光你的流量? 就在近期 搭载HiAI能力的苏宁易购新版上线...

华为终端开放实验室
51分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部