IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

FFLIB 框架Broker 之Master/Slave 模式

MySQLOPS 数据库与运维自动化技术分享 2012-08-28 23:14:40 累计浏览 2,506 次
本机暂存

在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

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 大型高并发高负载网站的系统架构分析 (累计阅读 9,004)
  2. mysql 主从同步原理 (累计阅读 6,570)
  3. 消息分发的同步均衡策略 (累计阅读 6,216)
  4. 铁路订票系统的简单设计 (累计阅读 5,075)
  5. 趣图三幅:负载均衡算法需要改进 (累计阅读 5,028)
  6. LVS & MySQL NDB Cluster (累计阅读 4,965)
  7. MYSQL数据库网卡软中断不平衡问题及解决方案 (累计阅读 4,761)
  8. redis源代码分析 - replication (累计阅读 4,454)
  9. 一致性哈希算法(consistent hashing) (累计阅读 4,258)
  10. 当使用 Nginx 做 Hash 时对动态文件和静态文件的处理 (累计阅读 4,236)