RabbitMQ
不死鸟.亚历山大.狼崽子
太极计算机股份有限公司系统架构师,从事ios、.net、flex、java等开发
展开
-
【java】RabbitMQ-RabbitMQ消息确认机制
问题产生背景:生产者发送消息出去之后,不知道到底有没有发送到RabbitMQ服务器, 默认是不知道的。而且有的时候我们在发送消息之后,后面的逻辑出问题了,我们不想要发送之前的消息了,需要撤回该怎么做。 解决方案: 1.AMQP 事务机制 2.Confirm 模式事务模式: txSelect 将当前channel设置为transaction模式 txCommit 提交当前事务 txRollback 事务回滚...原创 2020-09-05 09:59:01 · 292 阅读 · 0 评论 -
【java】RabbitMQ-通配符模式Topics
说明:此模式实在路由key模式的基础上,使用了通配符来管理消费者接收消息。生产者P发送消息到交换机X,type=topic,交换机根据绑定队列的routing key的值进行通配符匹配;符号#:匹配一个或者多个词lazy.# 可以匹配lazy.irs或者lazy.irs.cor符号*:只能匹配一个词lazy.* 可以匹配lazy.irs或者lazy.cor...原创 2020-09-05 09:28:06 · 189 阅读 · 0 评论 -
【java】RabbitMQ-路由模式RoutingKey
生产者发送消息到交换机并指定一个路由key,消费者队列绑定到交换机时要制定路由key(key匹配就能接受消息,key不匹配就不能接受消息)例如:我们可以把路由key设置为insert ,那么消费者队列key指定包含insert才可以接收消息,消费者队列key定义为update或者delete就不能接收消息。很好的控制了更新,插入和删除的操作。采用交换机direct模式...原创 2020-09-04 23:15:55 · 1270 阅读 · 0 评论 -
【java】RabbitMQ-发布/订阅模式Publish/Subscribe
这个可能是消息队列中最重要的队列了,其他的都是在它的基础上进行了扩展。功能实现:一个生产者发送消息,多个消费者获取消息(同样的消息),包括一个生产者,一个交换机,多个队列,多个消费者。思路解读(重点理解):一个生产者,多个消费者 每一个消费者都有自己的一个队列 生产者没有直接发消息到队列中,而是发送到交换机 每个消费者的队列都绑定到交换机上 消息通过交换机到达每个消费者的队列该模式就是Fanout Exchange(扇型交换机)将消息路由给绑定到它身上的所有队列 以用户发邮件案例讲解原创 2020-09-04 21:15:40 · 242 阅读 · 0 评论 -
【java】RabbitMQ的公平转发
目前消息转发机制是平均分配,这样就会出现俩个消费者,奇数的任务很耗时,偶数的任何工作量很小,造成的原因就是近当消息到达队列进行转发消息。并不在乎有多少任务消费者并未传递一个应答给RabbitMQ。仅仅盲目转发所有的奇数给一个消费者,偶数给另一个消费者。 为了解决这样的问题,我们可以使用basicQos方法,传递参数为prefetchCount= 1。这样告诉RabbitMQ不要在同一时间给一个消费者超过一条消息。换句话说,只有在消费者空闲的时候会发送下一条信息。调度分发消息的方式,也就是...原创 2020-08-24 13:53:12 · 286 阅读 · 0 评论 -
【java】RabbitMQ消息应答模式ACK
为了确保消息不会丢失,RabbitMQ支持消息应答。消费者发送一个消息应答,告诉RabbitMQ这个消息已经接收并且处理完毕了。RabbitMQ就可以删除它了。 如果一个消费者挂掉却没有发送应答,RabbitMQ会理解为这个消息没有处理完全,然后交给另一个消费者去重新处理。这样,你就可以确认即使消费者偶尔挂掉也不会丢失任何消息了。没有任何消息超时限制;只有当消费者挂掉时,RabbitMQ才会重新投递。即使处理一条消息会花费很长的时间。 消息应答是默认打开的。我们通过显示的设置autoAsk=true关闭原创 2020-08-23 19:52:18 · 964 阅读 · 0 评论 -
【java】RabbitMQ简单队列
一个生产者P发送消息到队列Q,一个消费者C接收新建一个maven项目,进行如下操作:1配置Maven <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.9.0</version> </dependency>.原创 2020-08-23 18:58:17 · 231 阅读 · 0 评论 -
docker安装RabbitMQ
docker run -d --hostname my-rabbit --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 -p 15672:15672 -p 5672:5672 rabbitmq:management三、访问ui页面http://127.0.0.1:15...原创 2020-03-27 19:51:56 · 270 阅读 · 0 评论 -
RabbitMQ消息队列的使用
我们知道RabbitMQ的Exchange常用交换器类型分为fanout、direct、topic、headers 4种类型,这里我们将对fanout、direct、topic 3种类型以实际代码的形式进行讲解,至于关于交换器对各类型的具体讲解,请参照文章开始给出的链接进行了解,这里就不再赘述,我们新建了如下图的解决方案:1、RabbitMQHelper 帮助类,对常用的消息入队以及消费消...转载 2018-08-16 15:13:30 · 461 阅读 · 0 评论 -
【.NET】RabbitMQ的Topic类型Exchange的使用
Producter 发送消息代码: /// <summary> /// 连接配置 /// </summary> private static readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory(){ H...原创 2018-08-15 11:06:51 · 585 阅读 · 0 评论 -
【.NET】RabbitMQ的direct类型Exchange的使用
Producter发送消息代码:/// <summary> /// 连接配置 /// </summary> private static readonly ConnectionFactory rabbitMqFactory = new ConnectionFactory(){ HostName =...原创 2018-08-15 11:02:21 · 461 阅读 · 0 评论 -
RabbitMQ中Exchange的类型
类型有4种,direct,fanout,topic,headers。其中headers不常用,本篇不做介绍,其他三种类型,会做详细介绍。那么这些类型是什么意思呢?就是Exchange与队列进行绑定后,消息根据exchang的类型,按照不同的绑定规则分发消息到消息队列中,可以是一个消息被分发给多个消息队列,也可以是一个消息分发到一个消息队列。具体请看下文。介绍之初还要说下RoutingKey...原创 2018-08-12 15:30:30 · 4536 阅读 · 0 评论 -
RabbitMQ用户增删及权限控制
用户角色分类none:无法登录控制台不能访问 management plugin,通常就是普通的生产者和消费者。management:普通管理者。仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对policies进行管理。用户可以通过AMQP做的任何事外加:列出自己可以通过AMQP登入的virtual hosts查看自己的virtu...原创 2018-08-11 21:35:02 · 242 阅读 · 0 评论 -
RabbitMQ报错(2)——Message:Already closed: The AMQP operation was interrupted: AMQP close-reason, initia
原因:队列服务端重启后,队列发布端断开了接口,无法再次发送消息解决:发送端设置断开连接后自动启动属性,默认为断开后每隔五秒钟重试连接 var factory = new ConnectionFactory();factory.AutomaticRecoveryEnabled = true; //设置端口后自动恢复连接属性即可...原创 2018-08-11 21:32:35 · 9273 阅读 · 2 评论 -
RabbitMQ连接报错(1)—— None of the specified endpoints were reachable
这个异常在创建连接时抛出(CreateConnection()),原因一般是ConnectionFactory参数设置不对,比如HostName、UserName、Password标准设置:var factory = new ConnectionFactory();factory.UserName = QueueSetttiong.UserName; //用户名factory....原创 2018-08-11 21:31:25 · 35066 阅读 · 1 评论 -
windows7下RabbitMQ的安装
一、下载资源Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang。(在官网自行选择版本)1、otp_win64_20.2.exe下载地址 :http://www.erlang.org/downloads 2、rabbitmq-server-3.7.0.exe下载地址 :http://ww...转载 2018-08-11 14:09:11 · 1800 阅读 · 0 评论