GOOD21's Blog

Keep Calm And Carry On

RabbitMQ-流量控制

关于FlowControl RabbitMQ 使用了一种基于 credit 的算法来 限制 message 被 publish 的速率 。 Publisher 只有在其从某个 queue 的 全部镜像处收到 credit 之后才被允许继续 publish 。如果存在没能成功发送出 credit 的 slaves ,则将导致 publisher 停止 publish 动作。 Publis...

RabbitMQ-PHP客户端

github https://github.com/GOOD21/php-rabbitmq 集成了异步队列、同步队列功能,提供监控API的封装。 RPC(sync queue) 异步队列比较简单,这里只说如何实现rpc。 流程图参照下图: 当客户端启动的时候,它创建一个排他的回调队列。 在RPC请求中,客户端发送带有两个属性的消息:一个是设置回调队列的 reply_...

RabbitMQ-架构方案

Vhost & 权限 根据业务区分创建用户、设置权限 rabbitmqctl add_user test testststst rabbitmqctl add_vhost /test rabbitmqctl set_permissions -p /test test ".*" ".*" ".*" 设置Vhost的好处是,后期我们可以通过不同的用户&权限来控制HA策略或...

RabbitMQ-测试

单机测试 机器:mem12 单机直连 4核4线程 是否持久化:否 结论:无论启1个或者两个或者4个producer的进程,总吞吐一直在16000/s 机器:mem12 单机直连 4核4线程 是否持久化:否 过程: 定义一组pc(producer/consumer)为一个p对应6个c 启动一组pc,吞吐稳定在16000/s 跟上面的测试效果一样 增加...

RabbitMQ-集群

RAM nodes & DISC nodes 区别于元数据(metadata)是存在内存还是在硬盘 在集群中声明Exchange Queue Binding,这类操作要等到所有的节点都完成创建才会返回。如果是RAM节点就要修改内存数据,如果是DISC节点 就要等待写磁盘,节点过多这里的速度就会被大大的拖慢。 RabbitMQ的确也是这样要求的:集群中只要有一个DISC节点 就可...

RabbitMQ-功能

Exchange Type 要想知道RabbitMQ能满足哪些需求功能,首先需要了解Exchange的相关类型,最常用的是Direct、Fanout、Topics 性能排序:fanout > direct > topic。比例大约为11:10:6 Direct Exchange Direct类型处理路由key,需要将一个队列通过key绑定到交换机上,要求该消息与一个特...

RabbitMQ-概览

简介 RabbitMQ is a messaging broker - an intermediary for messaging. It gives your applications a common platform to send and receive messages, and your messages a safe place to live until receive...

RabbitMQ-安装

Server端 下载安装包 # 官方下载地址 wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.5.6/rabbitmq-server-3.5.6-1.noarch.rpm yum localinstall -y rabbitmq-server-3.5.6-1.noarch.rpm # 如果yum直接安装提示需要er...