美文网首页
消息中间件系列小记---1.初探RabbitMQ

消息中间件系列小记---1.初探RabbitMQ

作者: 量产型炮灰工程师 | 来源:发表于2017-05-16 23:52 被阅读0次

    概念

    什么是rabbitmq?

    RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,主要是为了实现系统之间的双向解耦。用人话来说,就是发消息和接收消息

    要它有什么卵用?

    能够降低系统之间的耦合,并且在分布式领域中转发存储消息,可作为一个中间存储介质,角色类似于CPU的L2缓存

    业界中各种消息队列有什么区别?

    详见此处


    名词解析

    • Virtual Host:

      包含若干个Exchange和Queue,表示一个节点;Vhost之间相互完全隔离,不同Vhost之间无法共享Exchange和Queue。因此Vhost之间数据无法共享和分享。如果要实现这种功能,需要Vhost之间手动构建对应代码逻辑

    • **Exchange(交换机): **

      接受客户端发送的消息,并根据Binding将消息路由给服务器中的队列,只做交换消息,存储功能交由queue实现,Exchange分为direct, fanout, topic三种。

      • direct:转发消息到routigKey指定的队列
      • topic:按规则转发消息(最灵活)
      • headers:(这个还没有接触到)
      • fanout:转发消息到所有绑定队列

      Exchange的绑定功能,可以绑定queue,也可以绑定Exchange。这个看具体业务了。
      如果绑定数据,需要在分发或者重新被分派,使用To Exchange绑定。如果要被直接处理,使用queue绑定。
      如果Exchange绑定了Queue,如果Route Key不对,也会导致数据不可达,被丢掉。(一个数据可以被Queue处理,需要Exchange绑定Queue,并且在Message发送的时候,Route Key 与绑定的Key相等。)

    • Binding: 连接Exchange和Queue,包含路由规则。

    • Queue: 消息队列,存储还未被消费的消息。

    队列的属性:

    • 持久性:如果启用,队列将会在server重启前都有效。
    • 自动删除:如果启用,那么队列将会在所有的消费者停止使用之后自动删除掉自身。
    • 惰性:如果没有声明队列,那么在执行到使用的时候会导致异常,并不会主动声明。
    • 排他性:如果启用,队列只能被声明它的消费者使用。
    • Message: Header+Body
    • Channel: 通道,执行AMQP的命令;一个连接可创建多个通道以节省资源。

    搭建RabbitMQ服务

    • 在win7下搭建
    Paste_Image.png
    先去rabbitMQ官方网站,安装 Erlang,然后安装rabbitmq-server,相比于linux,windows下就是傻瓜化,安装完毕后,直接启动rabbitmq-server服务,即可
    Paste_Image.png
    然后在浏览器访问:http://127.0.0.1:15672/ 即可访问rabbitmq的Web管理界面,linux下需要手动安装,详见下方
    • 在ubuntu下搭建

    点我看这位仁兄博客

    本节主要简要总结rabbitmq的入门知识与概念

    好文推荐

    [RabbitMQ学习之:(一)初识、概念及心得]


    相关文章

      网友评论

          本文标题:消息中间件系列小记---1.初探RabbitMQ

          本文链接:https://www.haomeiwen.com/subject/ujbxxxtx.html