当前位置: 首页 > news >正文

java RabbitMQ

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

四种交换器

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

转载于:https://my.oschina.net/yan5845hao/blog/906151

相关文章:

  • linux 21的用法
  • shell脚本编程30分钟入门上手
  • 跟着实例学习ZooKeeper的用法: Leader选举
  • R语言数据可视化2—ggplot2各种维度的业务量统计根据类型统计不同月份的业务量...
  • 使用InteliJ IDEA导出jar包执行报错:找不到主清单属性
  • Ubuntu14.04下sogou输入法的输入框只显示英文不显示中文的问题
  • CentOS 7 更新源 – 使用国内 163 yum 源
  • Linux 的五个重启命令及具体说明
  • 蓝桥杯练习
  • C# 单元测试,带你快速入门
  • 大数据学习系列----python写MapReduce
  • Centos7下Gitlab迁移数据库mysql过程
  • 后缀数组
  • 深入浅出Zabbix 3.0 -- 第十章 Web 监控
  • PHP中switch语句case后表达式写法记录
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • angular2开源库收集
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Elasticsearch 参考指南(升级前重新索引)
  • FineReport中如何实现自动滚屏效果
  • hadoop集群管理系统搭建规划说明
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript HTML DOM
  • JavaScript-Array类型
  • JavaScript学习总结——原型
  • Java-详解HashMap
  • magento 货币换算
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python进阶细节
  • STAR法则
  • Vue全家桶实现一个Web App
  • 测试开发系类之接口自动化测试
  • 警报:线上事故之CountDownLatch的威力
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 【干货分享】dos命令大全
  • 7行Python代码的人脸识别
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​第20课 在Android Native开发中加入新的C++类
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #include
  • #NOIP 2014# day.1 T2 联合权值
  • #NOIP 2014#Day.2 T3 解方程
  • #stm32整理(一)flash读写
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (zt)最盛行的警世狂言(爆笑)
  • (二)hibernate配置管理
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (三) diretfbrc详解
  • (一)基于IDEA的JAVA基础10
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)平衡树
  • .gitattributes 文件