FFLIB 框架Broker 之Master/Slave 模式

简介: 在FFLIB的两篇介绍中,已经介绍了FFLIB是基于Broker模式构建的框架,核心组件关系图如下:          http://www.cnblogs.com/zhiranok/archive/2012/07/30/fflib_framework.html     http://www.cnblogs.com/zhiranok/archive/2012/08/08/fflib_tutorial.html                 这种情况,比较明显的瓶颈是Broker 只有一个。

          在FFLIB的两篇介绍中,已经介绍了FFLIB是基于Broker模式构建的框架,核心组件关系图如下:

         http://www.cnblogs.com/zhiranok/archive/2012/07/30/fflib_framework.html

    http://www.cnblogs.com/zhiranok/archive/2012/08/08/fflib_tutorial.html

    

 

         这种情况,比较明显的瓶颈是Broker 只有一个。在Client 和 Service 节点不断增多的情况下,单个Broker 将会无法承载。所以本文将探究如何扩展FFLIB 。

         其实解决之道也很直接,就是增加Broker 。为了能够为FFLIB 增加Broker 节点, 参考了Mysql 中的Master/Slave 结构, 设计FFLIB 的多Broker 框架如下图:

    

     

         Service 调用注册服务和接口时只通过Broker Master节点, Master将注册的服务和接口信息同步给所有的Slave节点,而所有的Service 接口和Client 节点和Slave 都是有连接的,所以不同的Service 就实现了通过不同的Slave 完成消息转发,实现了负载均衡。而且消息转发的开销和原来单个Broker的开销完全相同。

         关于 Master 和 Slave 节点核心通信逻辑如下图所示:

    

总结:

  • Master/Slave 模式是可选的,但Broker 仍然是可以工作的。
  • 源码 svn co http://ffown.googlecode.com/svn/trunk/
  • 构建borker : cd example/broker && make
  • 开启Broker Master(默认就是Master): ./app_broker –l tcp://127.0.0.1:10241
  • 开启BrokerSlave :./app_broker –l tcp://127.0.0.1:10242 -node slave –master_host  tcp://127.0.0.1:10241
  • 构建Echo 测试Service :cd example/echo_server && make && ./app_echo_server
  • 构建 Echo 测试Client:dd example/echo_client && make && ./app_echo_client
目录
相关文章
|
28天前
|
消息中间件 数据可视化 RocketMQ
RocketMQ一直连接master失败可能有以下几种原因:
RocketMQ一直连接master失败可能有以下几种原因:
16 2
|
11月前
|
运维 网络协议 Apache
Apache ZooKeeper - 集群中 Follow 的作用_非事务请求的处理与 Leader 的选举分析
Apache ZooKeeper - 集群中 Follow 的作用_非事务请求的处理与 Leader 的选举分析
126 0
|
NoSQL Nacos Redis
RedisTemplateConfig sentinel(哨兵模式)/ cluster(集群模式) 常用配置 以及如何 一键配置切换
RedisTemplateConfig sentinel(哨兵模式)/ cluster(集群模式) 常用配置 以及如何 一键配置切换
RedisTemplateConfig sentinel(哨兵模式)/ cluster(集群模式) 常用配置 以及如何 一键配置切换
|
Go API 开发工具
利用etcd选举sdk实践master/slave故障转移
本次记录[利用etcd选主sdk实践master/slave故障转移], 并利用etcdctl客户端验证选主sdk的工作原理。
利用etcd选举sdk实践master/slave故障转移
|
消息中间件 存储 Java
第八章:手把手教老婆实现:RocketMQ集群模式(3)-RocketMQ主从-多Master多Slave模式
第八章:手把手教老婆实现:RocketMQ集群模式(3)-RocketMQ主从-多Master多Slave模式
155 0
第八章:手把手教老婆实现:RocketMQ集群模式(3)-RocketMQ主从-多Master多Slave模式
|
分布式计算 Java API
Zookeeper开源客户端Curator之Master/Leader选举
Zookeeper开源客户端Curator之Master/Leader选举
344 0
Curator之Master/Leader选举注意事项
Curator之Master/Leader选举注意事项
169 0
|
消息中间件 存储 网络协议
我个人的kafka broker和zookeeper集群实践(★firecat推荐★)
我个人的kafka broker和zookeeper集群实践(★firecat推荐★)
300 0
|
消息中间件 RocketMQ 监控
rocketMq - master/slave同步
本章主要需要讲清楚两个概念,第一个是slave主动和master同步,第二个是master主动和slave同步。而且我保证这是唯一一篇能够把这两个过程讲清楚的文章,至少在这篇文章之前我找了很多文章,没有一篇文章将整个过程合起来讲解清楚的,说明还是花了时间在里面的。
1263 0