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

安装并启动RabbitMQ

  1. 启动 RabbitMQ 服务器
./sbin/rabbitmq-server

Java 客户端访问

RabbitMQ 支持多种语言访问,以 Java 为例看下一般使用 RabbitMQ 的步骤。

  1. maven工程的pom文件中添加依赖
<dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><version>4.1.0</version>
</dependency>
  1. 消息生产者
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();}
}
  1. 消息消费者
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使用代码示例相关推荐

  1. RabbitMq(七) Topic模式介绍及代码示例

    概述: 在上一文章中我们介绍了路由模式(Routing),routing模式是不同的消息队列绑定了不同的路由key,但是我们看出路由key为固定的字符串标记.而本章中的Topic模式则为在路由模式下, ...

  2. java爬虫代码示例_那些让你代码思维和能力有较大的提升Java源码

    来源:www.cnblogs.com/jiagou/p/9270070.html 对于学习J2EE的框架有很大的帮助,代码里使用了各种设计模式.事件机制.Java8语法.代码量也很小,web服务使用N ...

  3. 【DDD】2万字讲解DDD,从理论到实战(代码示例)

    文章目录 基础概念 领域 限界上下文 贫血模型和充血模型 贫血模型 充血模型 实体和值对象 实体 值对象 聚合 聚合根 领域事件 领域事件相关案例 事件风暴 DDD分层架构 用户接口层 应用层 领域层 ...

  4. 用户自定义协议client/server代码示例

    用户自定义协议client/server代码示例 代码参考链接:https://github.com/sogou/workflow message.h message.cc server.cc cli ...

  5. 2021年大数据Flink(二十六):​​​​​​​State代码示例

    目录 State代码示例 Keyed State 官网代码示例 需求: 编码步骤 代码示例 Operator State 官网代码示例 需求: 编码步骤: 代码示例 State代码示例 Keyed S ...

  6. TensorFlow常用操作:代码示例

    1,定义矩阵代码示例: import tensorflow as tftf.zeros([3,4]) #定义3行4列元素均为0的矩阵tensor=tf.constant([1,2,3,4])#定义一维 ...

  7. TensorFlow基本计算单元:代码示例

    1,代码示例: import tensorflow as tf a = 3 #创建变量 w = tf.Variable([[0.6,1.2]])#创建行向量 x = tf.Variable([[2.1 ...

  8. php mms,PHP代码示例_PHP账号余额查询接口 | 微米-中国领先的短信彩信接口平台服务商...

    PHP余额查询接口代码示例 请求 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://api.weimi.cc/2/accoun ...

  9. java结束全部操作代码_Java创建与结束线程代码示例

    这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考. 本文讲述了在Java中如何创建和结束线程的最基本方法,只针对于Java初学者.一些高级知识如线程 ...

最新文章

  1. Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失(续)
  2. android pcm频谱_Android音频可视化
  3. Nginx之gzip压缩配置
  4. mysql数据库查询要注意事项_三种mysql高级查询技巧_数据库_mysql函数_课课家
  5. form表单提交数据
  6. 使用docker安装easy-mock
  7. linux暂停和恢复进程
  8. Django OAuth2 linkedin的第三方登录
  9. L298电机驱动原理图+PCB
  10. w3c离线手册2019
  11. [jruby] warbler 配置问题说明
  12. Python的seek函数
  13. android系统优化方向,Android开发的优化方向
  14. 大数据周会-本周学习内容总结05
  15. Edge浏览器的书签(收藏夹)文件夹地址在哪?
  16. win10计算机出现位置不可用desktop不可用,桌面只有此电脑几个图标,其它桌面图标都没有了
  17. int8 和 uint8 区别
  18. 第五章第四十九题(对元音和辅音进行计数)(Count vowels and consonants)
  19. Data Augment ------TensorFlow 训练图片处理
  20. 《MATLAB 入门之旅》知识点总结

热门文章

  1. “我来管管看”系列:质检部门与生产部门信息不对称怎么办?
  2. SQLite数据库操作类
  3. Nginx图片防盗链、缓存和压缩的示例
  4. lighttpd 之防盗链
  5. [OpenGL] glColor 和 glClearColor 区别
  6. Octopus系列之更新历史记录
  7. Boost::Bind 基础
  8. office excel2013如何启用solver选项
  9. 简单数据结构——单向链表
  10. AJPFX关于JDK,JRE,JVM的区别与联系