RabbitMQ之前的那些事

RabbitMQ消息队列

RabbitMQ是一个消息队列的产品有着 集群、消息确认、内存化、高可用、镜像等高级功能,是目前MQ产品中的佼佼者

RabbitMQ的来历

它是用erlang语言遵守amqp(高级队列)协议的一个消息队列产品

amqp协议:高级消息队列协议

它相当于一份产品设计需求文档 ,在文档中把所有的规则与清楚。例如要有什么方法,方法中应该有什么参数

rabbitMQ完全遵从了amqp协议的规则

了解RabbitMQ的元素

vhost:一个vhost与另一个vhost是隔离开的,互不影响

exchange:交换机。

  • direct:直连
  • headers:管道
  • topic:局部
  • fanout:分发,多播

measia:rabbitMQ数据存储的DB

时间: 2024-10-24 20:22:22

RabbitMQ之前的那些事的相关文章

RabbitMQ 一二事 - 简单队列使用

消息队列目前流行的有三种 1. RabbitMQ 2. ActiveMQ 3. Kafka 这三种都非常强大,RabbitMQ目前用的比较多,也比较流行,阿里也在用 ActiveMQ是阿帕奇出品,但是性能上和RMQ相比相对差一些 卡夫卡呢,使用场景不同,不多介绍,主要是用于日志收集方面,结合hadoop非常灵活 RabbitMQ官网:http://www.rabbitmq.com/ 安装不多说了,可以下载Windows版本,或者linux版本 下载页面:http://www.rabbitmq.c

RabbitMQ 一二事5 - 通配符模式应用

One-day-%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0-%E5%95%86%E5%93%81%E6%88%90%E4%BA%A4%E6%97%B6%E5%8F%91%E9%80%81%E7%9F%AD%E4%BF%A1 ?????O5EWtPoC?^?n?\????? ?????UqwQNtaE????????W?d ????HXzlPeEU4???v??h?? http://auto.315che.com/junjiecross/qa23864614.htm

RabbitMQ 一二事(5) - 通配符模式应用

之前的路由模式是通过key相等来匹配 而通配符,顾名思义,符合条件,则进行消息匹配发送 将路由键和某模式进行匹配.此时队列需要绑定要一个模式上. 符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词. 因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs” 如图: 官网截图: 代码示例: 服务方 接收方1 接受方2 路由模式也是通配符模式的一种 在生产环境中,以通配符模式用的较多 当然简单应用的话路由模式也够了

RabbitMQ 一二事(3) - 订阅模式(微信公众号模式)的应用

之前讲的消费者互相可以把队列中的消息全部读取,但是不是读完整的所有信息 那么采用订阅模式就行,这就是微信公众号的模式, 比如10个人订阅了我的公众号"BeJavaGod",当我发送一条消息的时候, 那么这10个人都能收到我的消息并且查看,比如本条消息,对吧? 生产者制造消息发送给交换机X,而不是发送给队列,队列和交换机绑定,消费者从各自的队列中获得消息 这样则实现一个生产者发送的所有消息都能被所有的消费者同时接收到 需要注意的地方是,在生产者创建消息发送到交换机时,此时没有队列,那么消

RabbitMQ 一二事(2) - 工作队列使用

上篇文章讲了简单队列的使用,这其实就是RMQ给的demo,实际并没有什么用 本篇讲讲工作模式队列,也称之为任务队列 一个生产者发布了多条消息,消费者A可以接受消息,接受消息后该消息就消除,消费者B可以接受其他消息 使用场景,一些数据库操作比较缓慢的话可以分别给多个接口调用,降低压力,或者抢单场景也能考虑, 比如就10个商品,100个消费者来抢单,前10个抢到了后,消息队列就为空了,那么第11个以后的所有消费者都不会抢到 代码示例: 生产者 1 public class Send { 2 3 pr

【译】RabbitMQ:工作队列(Work Queue)

在第一篇我们写了两个程序通过一个命名的队列分别发送和接收消息.在这一篇,我们将创建一个工作队列在多个工作线程间分发耗时的工作任务. 工作队列的核心思想是避免立刻处理资源密集型任务导致必须等待其执行完成.相反的,我们安排这些任务在稍晚的时间完成.我们将一个任务封装为一个消息并把它发送到队列中.一个后台的工作线程将从队列中取出任务并最终执行.当你运行多个工作线程,这些任务将在这些工作线程间共享. 这个概念对于在一个HTTP请求中处理复杂任务的Web应用尤其有用. 准备工作 在前一篇中,我们发送了一条

RabbitMQ 发布/订阅

我们会做一些改变,就是把一个消息发给多个消费者,这种模式称之为发布/订阅(类似观察者模式). 为了验证这种模式,我们准备构建一个简单的日志系统.这个系统包含两类程序,一类程序发动日志,另一类程序接收和处理日志. 在我们的日志系统中,每一个运行的接收者程序都会收到日志.然后我们实现,一个接收者将接收到的数据写到硬盘上,与此同时,另一个接收者把接收到的消息展现在屏幕上.本质上来说,就是发布的日志消息会转发给所有的接收者. 1.转发器(Exchanges) RabbitMQ消息模型的核心理念是生产者永

RabbitMQ指南(Java)

原文地址:http://www.rabbitmq.com/getstarted.html 翻译得不好,欢迎指出. 一.Hello World 1.基本概念介绍 RabbitMQ是一个消息代理(或者说消息队列),它的主要意图很明显,就是接收和转发消息.你可以把它想象成一个邮局:当你把一封邮件放入邮箱,邮递员会帮你把邮件送到收件人的手上.在这里,RabbitMQ就好比一个邮箱.邮局或者邮递员. RabbitMQ和邮局的主要区别在于,RabbitMQ不是处理邮件,而是接收.存储和将消息以二进制的方式转

【译】RabbitMQ:发布-订阅(Publish/Subscribe)

在前一篇教程中,我们创建了一个工作队列,我们假设在工作队列后的每一个任务都只被调度给一个消费者.在这一部分,我们将做一些完全不一样的事情,调度同一条消息给多个消费者,也就是有名的“发布-订阅”模式.为了阐述这种模式,我们将构建一个简单的日志系统.该系统将由两部分组成:一部分发送日志消息,另一部分接收并且打印日志消息,在这个日志系统中,每一份运行着的接收程序都将会收到消息.这样我们可以运行一个接收者把日志写入到磁盘中,同时可以运行另一个接收者将日志打印到显示器上面.也就是说,发布的日志消息会被广播