RabbitMQ是一个由erlang开发的AMQP的开源实现. 核心概念 Message 消息,消息是不具名的,它由消息头和消息体组成,消息体是不透明的,而消息头则由 一系列的可选属性组成,这些属性包括routing-key(路由键),priority(相对于其它消息的优先权), delivery-mode(指出该消息可能需要持久性存储)等. Publisher 消息的生产者,也是一个向交换器发布消息的客户端应用程序. Exchange 交换器,用来接收生产者发送的消息并将这些消息路由给服务器中…
前面都是一条消息只会被一个消费者处理. 如果要每个消费者都处理同一个消息,rabbitMq也提供了相应的方法. 在以前的程序中,不管是生产者端还是消费者端都必须知道一个指定的QueueName才能发送.获取消息.  而rabbitMQ消息模型的核心思想是生产者不会将消息直接发送给队列. 因为,生产者通常不会知道消息将会被哪些消费者接收. 生产者的消息虽然不是直接发送给Queue,但是消息会交给Exchange,所以需要定义Exchange的消息分发模式 ,之前的程序中,有如下一行代码: chan…
本来今天是想做RabbitMQ之优先级队列的,但是,在RabbitMQ Server创建queue时,增加优先级的最大值,头脑发热写了9999999,导致电脑内存直接飙到100%,只能重启电脑,并卸载RabbitMQ.但是,我发现即使卸载(包括卸载Erlang和RabbitMQ Server),再安装,之前创建的queue却还在.这样,致使我的电脑内存一直处于使用100%的状态,根本就做不了事.所以,我就上网查询了RabbitMQ相关命令,想通过命令删除相关的queue.虽然并未成功,但是,还是…
RabbitMQ优先级队列注意点: 1.只有当消费者不足,不能及时进行消费的情况下,优先级队列才会生效 2.RabbitMQ3.5以后才支持优先级队列 代码在博客:RabbitMQ学习笔记三:Java实现RabbitMQ之与Spring集成 最后面有下载地址,只是做了少许改变,改变的代码如下: 消费者 spring-config.xml(还需要增加一个QueueListener监听器,代码就不复制到这里了,可以参考项目中的其他监听器) <!-- =========================…
鉴于目前中文的RabbitMQ教程很缺,本博主虽然买了一本rabbitMQ的书,遗憾的是该书的代码用的不是java语言,看起来也有些不爽,且网友们不同人学习所写不同,本博主看的有些地方不太理想,为此本博主决定根据官网进行原版学习,并进行相关笔记记录. 本博主接下来会根据官网http://www.rabbitmq.com/进行学习记录. 首先,我们来认识一下什么是RabbitMQ:下面摘录并翻译官网上两段话来理解一下他是什么:         RabbitMQ is the most widely…
更多的问题 Direct Exchange帮助我们解决了分类发布与订阅消息的问题,但是Direct Exchange的问题是,它所使用的routingKey是一个简单字符串,这决定了它只能按照一个条件进行分类. 比如RabbitMQ学习笔记(四)Routing中的列子,我们是按照新闻的类型分类的,分为game, sport, music. 如果game下面有ff7,ff8的子分类,sport下面有soccer, basketball的分类.现在我们要求消费者程序接收game下面ff7子类别的所有…
安装过程略过,一搜一大把. rabbitmq管理控制台:http://localhost:15672/   默认账户:guest/guest RabbitMQ默认监听端口:5672 JAVA API地址:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.6.5/rabbitmq-java-client-javadoc-3.6.5/ 引入rabbitmq-java-client-bin-3.6.5下的jar包: 简单的基本流程是: 生…
在第二节我们进行了RabbitMQ的安装,现在我们就RabbitMQ进行集群的搭建进行学习,参考官网地址是:http://www.rabbitmq.com/clustering.html 首先我们来看一下官网对集群的定义:A RabbitMQ broker is a logical grouping of one or several Erlang nodes, each running the RabbitMQ application and sharing users, virtual ho…
详见原文: http://blog.csdn.net/shatty/article/details/9529463 Rabbitmq学习笔记…
openresty 学习笔记四:连接mysql和进行相关操作 毕竟redis是作为缓存,供程序的快速读写,虽然reidis也可以做持久化保存,但还是需要一个做数据存储的数据库.比如首次查询数据在redis查询不到则查询mysql,再将查询结果写过redis供下次查询.保存数据也可以先写入redis再通过队列使用另外的程序异步写入mysql. 后面会逐步把openresty写入rabbitmq和python通过订阅rabbitmq的队列将数据写入mysql得方法都整理一下. 先看看openrest…