2、RabbitMQ简单实例
来源:互联网 发布:淘宝助理 批量上传 编辑:程序博客网 时间:2024/04/30 03:37
RabbitMQ 之Hello World
rabbitMQ作为一个消息服务中间件负责接受消息和转发,下面给出一个简单的例子用来说明这种工作方式。
一个简单的实现主要包含3种角色生产者(Producing),消息队列(queue),消费者(consuming)。当然rabbitMQ的核心并不在于此,rabbitMQ核心主要包含Exchange、queue和binging。消息持久化操作也是通过这两个核心来完成的。后面文章会有详细说明,现在先看一下简单的消息队列实现的例子。
生产者 Send.java
importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory; publicclassSend { //消息队列名称 privatefinalstatic String QUEUE_NAME="hello"; publicstaticvoid main(String[] args) throwsjava.io.IOException{ //创建链接工程 ConnectionFactory factory = newConnectionFactory(); factory.setHost("localhost"); //创建链接 Connection connection = factory.newConnection(); //创建消息通道 Channel channel = connection.createChannel(); //生命一个消息队列 channel.queueDeclare(QUEUE_NAME,false,false,false,null); String message = "Hello World"; //发布消息,第一个参数表示路由(Exchange名称),未""则表示使用默认消息路由 channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println(" [x] Sent '"+message+"'"); //关闭消息通道和链接 channel.close(); connection.close(); } }
importcom.rabbitmq.client.Channel;importcom.rabbitmq.client.Connection;importcom.rabbitmq.client.ConnectionFactory;importcom.rabbitmq.client.QueueingConsumer; publicclassRecv { //消息队列名称 privatefinalstatic String QUEUE_NAME="hello"; publicstaticvoid main(String[] args) throwsjava.io.IOException,java.lang.InterruptedException{ //创建链接工厂 ConnectionFactory factory = newConnectionFactory(); factory.setHost("localhost"); //创建链接 Connection connection = factory.newConnection(); //创建消息信道 Channel channel = connection.createChannel(); //生命消息队列 channel.queueDeclare(QUEUE_NAME,false,false,false,null); System.out.println("[*] Waiting for message. To exist press CTRL+C"); //消费者用于获取消息信道绑定的消息队列中的信息 QueueingConsumer consumer = newQueueingConsumer(channel); channel.basicConsume(QUEUE_NAME,true,consumer); while(true){ //循环获取消息队列中的信息 QueueingConsumer.Delivery delivery = consumer.nextDelivery(); String message = newString(delivery.getBody()); System.out.println("[x] Received '"+message+"'"); } } }
这里并没有做消息的持久化操作,由于某些原因在程序运行过程中可能出现服务器宕机,以及其他外在因素使程序运行出现出错,消息的持久化就是使服务器即使停止后下一次启动依然能保持上一次操作消息队列的状态。可以保证程序依然能从异常开始的地方重新执行。也就是为什么要对消息进行持久化的主要原因。
0 0
- 2、RabbitMQ简单实例
- 简单Java实例rabbitMQ
- SpringBoot-RabbitMq 简单实例
- 1-RabbitMQ安装及简单实例
- rabbitmq的简单使用(2)
- RabbitMQ入门之安装配置与简单实例----perfect
- RabbitMQ入门之安装配置与简单实例
- RabbitMQ 实例讲解
- RabbitMQ 实例解析
- springmvc+rabbitmq实例
- java的RabbitMQ 实例
- RabbitMQ实例详解
- RabbitMQ Java 实例
- python结合rabbitmq实例
- Python-rabbitmq实例
- RabbitMQ--go完整实例
- 初识RabbitMQ,附RabbitMQ+PHP演示实例
- python使用rabbitmq实例二,工作队列 (2)
- iOS后台长时间执行
- POJ-1088 滑雪 (记忆化搜索,dp)
- RecyclerView是Android L家第一个美女,我要认识她。
- 盖洛普民意测验中最热门的十大问题
- 网页即时通信
- 2、RabbitMQ简单实例
- js 对象创建小知识
- appium的api
- 控制反转(IoC)与依赖注入(DI)
- IOS开发之UI篇—UISwitch(开关按钮)
- CSDN上Android与IPhone开发博客精选
- 3、RabbitMQ之消息发布订阅与信息持久化技术
- Shiro 学习笔记(1)-Helloworld 和 身份认证
- 7-3 UVA 10976 Fractions Again?!分数拆分