zoukankan      html  css  js  c++  java
  • rabbitmq实战记录

    环境安装:

    1、下载服务器包

    2、解压到测试文件夹下

    3、设置必需的文件夹结构

    /var/log/rabbitmq

    /var/lib/rabbitmq/mnesia/rabbit

    4、启动rabbitmq服务器  rabbitmq-server

    5、检查服务器状态 rabbitmqctl status

    消息:

    有效载荷,可为任何内容

    标签,描述有效载荷,rabbitmq用它决定谁将获得消息拷贝

    信道:

    应用程序和rabbit服务器创建后(通过认证)——》应用程序创建信道,信道是建立在“真实”TCP连接内的虚拟连接

    AMQP通过信道将信息发送出去,每条信道都会被指派一个唯一的ID,在一条TCP连接上创建多少信道是没有限制的

    发布消息,订阅队列,接收消息都是通过信道完成的

    AMQP消息路由组成:交换器,队列和绑定

    生产者把消息发布到交换器上,消息最终到达队列,并被消费者接收

    绑定决定了消息如何从路由器路由到特定队列

    消费者接收消息2种方式:

    1、basic.consume

    2、basic.get

    Rabbit队列有多个消费者,消息以循环方式发送给消费者

    消费者接收到每条消息必须进行确认

    1、basic.ack

    2、auto_ack

    拒绝消息:basic.reject

    在消息确认前,如果消费者断开连接后,rabbit会把消息投递给下一个消费者

    队列是AMQP通信的基础模块:

    1、为消息提供处所,消息在些等待消费

    2、对负载均衡来说,队列是绝优方案,只需附加一堆消费者,并让RabbitMA以循环方式分配消息

    3、队列是Rabbit中消息终点,除非消息进入黑洞

    队列通过路由键绑定到交换器

    服务器根据路由键将消息从交换器路由到队列

    交换器类型:

    direct

    fanout

    topic

    AMQP架构中最关键的几个组件分别是交换器,队列和绑定

    根据绑定规则将队列绑定到交换器

    消息是发布到交换器的

    有3种类型的交换器:direct fanout topic

    基于消息路由键和交换器类型,服务器会决定将消息投递到哪个队列去

    队列路由键更像是一种地址,标记

    vhost:

    相互隔离

    rabbitmqctl add_vhost name

    rabbitmqctl delete_vhost name

    rabbitmqctl list_vhosts

    持久化:

    1、将投递模式选项设置为2

    2、发送到持久化交换器

    3、到达持久化队列

    事务:

    1、把信道设置为事务模式

    2、发送方确认模式,将信道设为 confirm

    开发:

    发布者:

    连接到时rabbitmq

    获取信道

    声明交换器

    创建消息

    发布消息

    关闭信道

    关闭连接

    消费者:

    连接到时rabbitmq

    获取信道

    声明交换器

    声明队列

    把队列和交换器绑定起来

    消费消息

    关闭信道

    关闭连接

    理解消息路由工作机制

    把每个队列想象成节点上运行的进程,每个有自己进程ID,交换器不过是路由模式列表和匹配消息就发往的队列进程ID列表,当发布的消息匹配了交换器中的绑定规则时,实际上是由信道完成匹配工作,并在匹配之后建立到队列PID的连接,然后将消息传送过去,队列的进程ID本质是其在Erlang的地址。简单说,交换器是查询表,信道完成分配

    https://github.com/m2492565210/rabbitmqwithpython3

  • 相关阅读:
    【找回数学的感觉】1 再版汉诺塔等
    【算法】7 分不清栈和队列?一张图给你完整体会
    好玩的WPF第四弹:用Viewport2DVisual3D实现3D旋转效果
    我们应该怀念爱因斯坦的五个原因
    【万里征程——Windows App开发】如何在多个页面间读取/保存文件【草稿】
    仅仅是来自深夜的想法
    好玩的WPF第三弹:颤抖吧,地球!消失吧,地球!
    Markdown大赛二等奖
    让JavaScript在Visual Studio 2015中编辑得更容易
    好玩的WPF第二弹:电子表字体显示时间+多彩呼吸灯特效按钮
  • 原文地址:https://www.cnblogs.com/m2492565210/p/8622344.html
Copyright © 2011-2022 走看看