zoukankan      html  css  js  c++  java
  • Rabbitmq 介绍

    rabbitmq 是一个基于AMQP协议的轻量级,可靠,可扩展且可移植的消息中间件。

    消息发送到消息消费共需要以下组件支持:

    1、消息提供者

      1)用于发送消息

    2、交换机

      1)交换机用于接收提供者发送的消息,再将消息转发到与之绑定并路由规则相同的消息队列

      2)交换机共分一下4中类型:direct, topic, headers,fanout

        direct: direct类型交换机可以指定一个routingKey,用来进行消息过滤以及转发匹配

            当交换机于消息队列进行绑定时,可以指定一个routingKey,如果提供者发送

            消息时同样可以指定一个routingKey,如果该routingKey于交换机和消息队列

            绑定时指定的routingKey相同,则该消息将由交换机转发到消息队列,否则消息将发送失败

        topic:  direct类型交换机相同,topic类型交换机同样可以指定一个routingKey,但是不同的是

              该routingKey必须由“.”分隔的单词,单词内容可以自定义,例如 routingKey.rk,同时支持

              “*”号和“#”号,*号代表一个单词,#代表一个或多个单词,例如:

              routingkey.*  可以匹配 routingkey.rr或者routingkey.tt

              routingkey.#  可以匹配 routingkey.rr.ee或者routingkey.tt.yy.dd 

       fanout:  fanout 类型交换机则不支持路由,只要提供者发送消息到该交换机,消息就会被转发给与该交换机绑定的消息队列中

      headers:   heanders类型交换机可以根据提供者发送的消息中的MessageProperties类中设置的headers属性进行匹配消息队列,

                headers的值是以键值对的格式设置,值可以使任意类型,如果消息提供者发送的消息中的header交换机与消息队列

             绑定时设置的header属性值匹配成功,交换机则转发消息到消息队列

    3、消息队列

      1)存储消息提供者发送的消息

    4、消费者

      1)接收其监听的消息队列,获取消息

    工作模式共分为以下6种:

    1、最简单的一提供、一消费模式:提供者消息->消息队列->消费者接受消息

    2、一提供多消费模式:提供者发送消息->消息队列->多个消费者接收消息并消费(C1和C2接收的消息不相同)

    3、发布与订阅模式:提供者发送消息->交换机->消息队列->消费者接收。

     4、提供者发送消息到交换机,通过交换机进行路由规则匹配将消息发送某个消息队列,消费者消费监听的消息队列中的消息

    5、提供者发送消息到topic类型交换机,通过匹配routingkey转发消息到消息队列

    6、远程过程调用(RPC)

  • 相关阅读:
    ASP字符串16进制互转
    LINQ Dictionary加速查询(TryGetValue)
    ASP中将UTF8格式的URL进行解码。函数
    C# 保护进程不被结束(源代码)防任务管理器结束进程
    用WebBrowser做web 打印时的权限不足。。。。
    .net 2.0 中 ‘注册为 allowDefinition='MachineToApplication' 的节是错误的’
    sql 2005 中分页
    BitComet web 插件和 flash get web 插件 对脚本的影响
    同时使用 C# and VB.NET 在 .net 2.0 中
    用触发器实现主从表关系(主表更改从表更改 )
  • 原文地址:https://www.cnblogs.com/shiguotao-com/p/10443545.html
Copyright © 2011-2022 走看看