Rabbitmq-Message Queue

Rabbitmq 学习

1. 功能点

Rabbitmq消息服务擅长于解决多系统、异构系统间的数据交换(消息通知/通讯)问题,也可以把它用于系统间服务的相互调用(RPC).消息中间件主要用于组件之间的解耦,也是处理高并发过程中的一种比较常用的手法。

2. 应用

2.1 producter

内容生厂

2.2 consumer

内容消费

2.3 exchange

路由器

2.4 queue

处理队列

exchange exchange type

    direct 
        default_exchange
            
        conn = Bunny.new.tap do |c|
          c.start
        end

    fanout # subscribe, 一对多

    topic # 多对多

    RPC 
    
    header 

2.5 queue

quene name

q = ch.queue("", :exclusive => true) # 暂时队列,名字是随机生成

2.6 binding key and roting key

queue.bind(x, :routing_key => routing_name_or_routing_reg)

routing_reg:

*.orange.*  -> "*" only matches a single word
*.orange.# -> matches all words

2.7 ack

消息确认机制

2.8 durability

消息持久化机制

2.9 Prefetch count

消息处理平衡机制

3 bunny and rabbitmq

4 Demo

demo1

demo2

5 rabbitmq 集群

6 rabbitmq-cli工具(用户管理和插件管理)