
消息中间件
Becolette
不要得罪一个中年人,因为他狠起来什么都学
展开
-
RabbitMQ的七种工作模式-发布确认模式(七)
7.发布确认模式三种策略:1.单次确认,并等待超时时间,超时时间内返回结果;超时则抛出异常实现简单;会大大降低吞吐量,但是延时可接受2.批量确认,积累到一定次数再等待返回会很大提升效率和吞吐量;但是出错排查困难3.同步处理,新建一个同步集合,正常返回就从队列中remove最佳实践,有效利用资源,错误可以控制;但是实现复杂,需要正确编码生产者: import com.becolette.amqp.rabbit.simple.MqConnection; import com.ra原创 2020-10-01 14:40:02 · 454 阅读 · 0 评论 -
RabbitMQ的七种工作模式-RPC模式(六)
6.RPCRPC工作原理:1.客户端发起RPC请求时,request请求中会发送两个参数replyTo和correlationIdreplyTo:同步互斥队列,也就是该请求对应的队列correlationId:唯一标识2.请求存入rpc队列,采用的是有界数组阻塞队列(ArrayBlockingQueue)3.消息接受端(也就是服务器端)接受到请求之后,利用replyTo中的携带的数据,处理任务并返回结果,返回结果中携带correlationId和具体结果咱们来复习一下BlockingQueu原创 2020-09-28 21:30:30 · 782 阅读 · 0 评论 -
RabbitMQ的七种工作模式-主题模式(五)
5.主题模式主题模式对应交换机是Topic和Headers,接收者的routeKey对应如果只有一个单词,如topickey,topic*/topic#是无法匹配上的,应有”.“隔开的这种键值。*:有且只匹配一个单词#:0或多个单词生产者: import com.rabbitmq.client.BuiltinExchangeType; import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connect原创 2020-09-28 14:48:11 · 206 阅读 · 0 评论 -
RabbitMQ的七种工作模式-路由模式(四)
4.路由模式路由模式与发布订阅模式的区别:1.路由模式的routeKey是需要定义的2.Exchange交换机的类型是有区别的,可以在枚举类BuiltinExchangeType中找到3.一个是广播方式,一个是定向传送另外:1.接收者要先于发送者启动,否则接受不到消息(这个我还不知道为什么,待后面了解了再记录)2.如果写了多个交换机,名称记得不要重复,否则报错Caused by: com.rabbitmq.client.ShutdownSignalException: channel er原创 2020-09-28 13:59:59 · 271 阅读 · 0 评论 -
RabbitMQ的七种工作模式-发布/订阅模式(三)
3.发布/订阅模式发布/订阅模式和工作模式最大的不同是,发布/订阅模式才真正的引入Exchange概念,并且采用的fanout交换机(此处自行复习Exchange的四种类型)生产者: import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; /** * @ClassNa原创 2020-09-27 23:28:01 · 438 阅读 · 0 评论 -
RabbitMQ的七种工作模式-工作模式(二)
2.工作模式一个生产者,多个消费者,不涉及Exchange工作模式的优点是,在供大于求或供不应求的情况下,可插拔消费者。消息生产者: import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; import com.rabbitmq.client.ConnectionFactory; import com.rabbitmq.client.MessageProperties;原创 2020-09-27 22:30:22 · 213 阅读 · 0 评论 -
RabbitMQ的七种工作模式-简单模式(一)
在学习RabbitMQ的工作模式之前,必须先了解Exchange的类型,因为工作模式与交换机类型的基本对应的,1.Direct:直接交换机通过消息上的路由键直接对消息进行分发,相当于精确匹配,一对一2.Topic:这个交换机会将路由键和绑定上的模式进行通配符匹配,相当于模糊匹配,一对多3.Fanout:一个扇出交换机会将消息发送到所有和它进行绑定的队列上,广播,群发4.Headers:消息头交换机使用消息头的属性进行消息路由,相当于模糊匹配(like header%),一对多再接着学习工作模式,原创 2020-09-25 10:04:31 · 51203 阅读 · 0 评论 -
RabbitMQ-我的学习路线-原理篇
RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能、健壮、可伸缩性出名的Erlang语言开发,并继承了这些优点。需要先了解的一些术语:Producer:消息的产生者Connection:建立连接,包括消息发送到Exhange,消费者从消息队列获取信息Channel:建立通道,包括消息发送到Exhange,消费者从消息队列获取信息Exchange:负责接受产生的消息,并把消息路由到对应的消息队列(Queue)Binding:绑定是你设置的用来连接一原创 2020-09-24 10:59:48 · 340 阅读 · 0 评论 -
RabbitMQ-我的学习路线
我想,要想完整的,深入的理解RabbitMQ,需要了解以下的几个点,纯属个人的一点看法,因为我是这么学习的,1.RabbitMQ的原理,包括RabbitMQ是怎么通信的,即RabbitMQ模型;及对应的一些专业术语的理解(producer、channel、binding、Exchange、RouteKey、queue、customer、vhost、broker)2.Exhange的四种类型(direct、topic、fanout、headers),RabbitMQ的七种工作模式(simple、work、原创 2020-09-23 23:14:08 · 214 阅读 · 0 评论