消息中间件
Becolette
不要得罪一个中年人,因为他狠起来什么都学
展开
-
RabbitMQ的七种工作模式-发布确认模式(七)
7.发布确认模式 三种策略: 1.单次确认,并等待超时时间,超时时间内返回结果;超时则抛出异常 实现简单;会大大降低吞吐量,但是延时可接受 2.批量确认,积累到一定次数再等待返回 会很大提升效率和吞吐量;但是出错排查困难 3.同步处理,新建一个同步集合,正常返回就从队列中remove 最佳实践,有效利用资源,错误可以控制;但是实现复杂,需要正确编码 生产者: import com.becolette.amqp.rabbit.simple.MqConnection; import com.ra原创 2020-10-01 14:40:02 · 416 阅读 · 0 评论 -
RabbitMQ的七种工作模式-RPC模式(六)
6.RPC RPC工作原理: 1.客户端发起RPC请求时,request请求中会发送两个参数replyTo和correlationId replyTo:同步互斥队列,也就是该请求对应的队列 correlationId:唯一标识 2.请求存入rpc队列,采用的是有界数组阻塞队列(ArrayBlockingQueue) 3.消息接受端(也就是服务器端)接受到请求之后,利用replyTo中的携带的数据,处理任务并返回结果,返回结果中携带correlationId和具体结果 咱们来复习一下BlockingQueu原创 2020-09-28 21:30:30 · 721 阅读 · 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 · 181 阅读 · 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 · 246 阅读 · 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 · 410 阅读 · 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 · 190 阅读 · 0 评论 -
RabbitMQ的七种工作模式-简单模式(一)
在学习RabbitMQ的工作模式之前,必须先了解Exchange的类型,因为工作模式与交换机类型的基本对应的, 1.Direct:直接交换机通过消息上的路由键直接对消息进行分发,相当于精确匹配,一对一 2.Topic:这个交换机会将路由键和绑定上的模式进行通配符匹配,相当于模糊匹配,一对多 3.Fanout:一个扇出交换机会将消息发送到所有和它进行绑定的队列上,广播,群发 4.Headers:消息头交换机使用消息头的属性进行消息路由,相当于模糊匹配(like header%),一对多 再接着学习工作模式,原创 2020-09-25 10:04:31 · 51143 阅读 · 0 评论 -
RabbitMQ-我的学习路线-原理篇
RabbitMQ是一个流行的开源消息队列系统,是AMQP(高级消息队列协议)标准的实现,由以高性能、健壮、可伸缩性出名的Erlang语言开发,并继承了这些优点。 需要先了解的一些术语: Producer:消息的产生者 Connection:建立连接,包括消息发送到Exhange,消费者从消息队列获取信息 Channel:建立通道,包括消息发送到Exhange,消费者从消息队列获取信息 Exchange:负责接受产生的消息,并把消息路由到对应的消息队列(Queue) Binding:绑定是你设置的用来连接一原创 2020-09-24 10:59:48 · 311 阅读 · 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 · 183 阅读 · 0 评论