FFLIB 框架Broker 之Master/Slave 模式
浏览:2201次 出处信息
在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
建议继续学习:
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:几种常见的NoSQL数据库关键特性列表
后一篇:基础设施之殇 >>
文章信息
- 作者:知然 来源: MySQLOPS 数据库与运维自动化技术分享
- 标签: Broker FFLIB
- 发布时间:2012-08-28 23:14:40
建议继续学习
近3天十大热文
-
[318] WordPress插件开发 -- 在插件使用 -
[151] 解决 nginx 反向代理网页首尾出现神秘字 -
[92] IOS安全–浅谈关于IOS加固的几种方法 -
[49] 二维码的生成细节和原理 -
[49] Linux Used内存到底哪里去了? -
[48] Hacker News 排名算法工作原理 -
[48] 到底什么是MVC? -
[48] Shell的那些事儿 -
[48] 浏览器的工作原理:新式网络浏览器幕后揭秘 -
[48] 中间件和稳定性平台
