Rabbit的直连交换机direct】的更多相关文章

直连交换机类型为:direct.加入了路由键routingKey的概念. 就是说 生产者投递消息给指定交换机的指定路由键. 只有绑定了此交换机指定路由键的消息队列才可以收到消息. 生产者: package com.kf.queueDemo.exchange.direct; import java.io.IOException; import java.util.concurrent.TimeoutException; import com.kf.utils.RabbitConnectionUti…
在上一章中,我们构建了一个简单的日志系统,我们可以把消息广播给很多的消费者.在本章中我们将增加一个特性:我们可以订阅这些信息中的一些信息.例如,我们希望只将error级别的错误存储到硬盘中,同时可以将所有级别(error.info.warning等)的日志都打印在控制台上. 1.绑定(Bindings) 在上一章中,我们已经创建了绑定关系,回顾一下代码: channel.queueBind(queueName, EXCHANGE_NAME, ""); 一个绑定是一个交换器与队列之间的关…
1.前言 上一随笔详细记录了直连交换机的方法,发送的消息是异步的,如果消息未被消费者消费,那么可以一直存在消息队列中. 那么有没有办法做一个回调,当消息被消费后,被通知消息成功被消费者消费啦? 答案是有的. 需要在消息生产者的消息生产类实现  RabbitTemplate.ConfirmCallback  接口,重写 回调方法confirm(), 同时 RabbitTemplate 模板工具需要自定义注入连接rabbitmq的连接工厂对象才可以正常执行回调操作. 而消费者端的代码不需要修改. 下…
1.前言 消息队列除了kafka 外,还有许多种,比如RabbitMQ .ActiveMQ.ZeroMQ.JMQ等. 老牌的ActiveMQ ,底层使用Java写的,资源消耗大,速度也慢,但是适合 JMS [java message service]的使用 ,事实上,性能差,现在用的人很少了. 现在流行使用kafka,那是因为支持很大的吞吐量,处理数据速度很快,但是,对数据的处理安全性不高,而且,需要处理那么大吞吐量的应用实际上不多, kafka更多的是使用在大数据方面,底层是 使用 zooke…
前言 上篇介绍了AMQP的基本概念,组成及其与rabbitmq的关系.了解了这些东西后,下面我们开始学习rabbitmq(消息队列)的作用以及用java代码和rabbitmq通讯进行消息发布和接收.因为消息的的接收以及路由都是通过交换机实现的,所以接下来我们要学习如何利用不同的交换机进行消息的发布.最后会再学习如何利用rabbitmq进行rpc的调用. 一.rabbitmq(消息队列)的作用 1.异步处理消息 假设用户在网站注册成功后,需要向用户发送邮件和信息提示其注册成功.正常的做法是,后台将…
代码 <?php require_once "./vendor/autoload.php"; use PhpAmqpLib\Connection\AMQPStreamConnection; use PhpAmqpLib\Message\AMQPMessage; $conf = [ 'host' => '192.168.33.50', 'port' => 5672, 'user' => 'admin', 'pwd' => 'password', 'vhost…
一: direct 上面我用采用了广播的模式进行消息的发送,现在我们采用路由的方式对不同的消息进行过滤 发送端代码 public class RoutingSendDirect { private static final String EXCHANGE_NAME = "direct_logs"; // 路由关键字 private static final String[] routingKeys = new String[]{"info" ,"warni…
rabbit引入交换机概念. 交换机与生产者绑定. 队列与消费者绑定. 队列又与交换机绑定. 扇形交换机是  fanout类型的. 类似于其他消息中间件的 topic.一对多(生产者推送消息到指定交换机,一个或多个绑定了此交换机的消费者的队列都可以收到此交换机的消息) 生产者: package com.kf.queueDemo.exchange.fanout; import java.io.IOException; import java.util.concurrent.TimeoutExcep…
1.前言 RabbleMQ这种消息中间件,主要的功能是使用异步操作,来达到解耦的目的,比如,有系统a和系统b, 系统a通过消息中间件通知系统b来做业务,那么系统a只需要把要做的事情[也就是消息]发给消息中间件后, 消息中间件就会把消息转发给系统b,系统a不需要关心系统b是怎么完成业务的,也不需要关心业务完成的结果, 这是就是异步操作. 如果系统a希望获得系统b的处理结果,那么系统a使用消息中间件发送消息后需要原地等待,做阻塞操作,但是 等待时长不能超过最大超时时间,可设置RabbleMQ自定义超…
现在,Android的支持Wi -Fi的直接点对点点对点(P2P)Android系统的供电设备和其他类型的设备,没有一个热点或互联网连接之间的连接.Android框架提供了一套Wi - Fi的P2P的API,允许你去发现和连接到其他设备时,每个设备的Wi -Fi的直接支持,然后沟通跨越距离远远长于蓝牙连接迅速​​连接. android.net.wifi.p2p,一个新的软件包,包含所有的API执行同行等连接与Wi - Fi. 你需要与主类是WifiP2pManager,您可以调用getSyste…