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 只有一个。在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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏py+selenium

msf出现Database not connected等问题【已解决】

     kali启动msf后,出现Module database cache not built yet, using slow search,或是Datab...

1022
来自专栏从零开始学自动化测试

Selenium2+python自动化1-最新环境搭建

前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要。本系列依然以selenium2为...

2765
来自专栏lgp20151222

Cannot change version of project facet Dynamic Web Module to 2.5的解决

修改org.eclipse.wst.common.project.facet.core.xml文件

541
来自专栏芋道源码1024

全面了解 Nginx 到底能做什么

本文只针对Nginx在不加载第三方模块的情况能处理哪些事情,由于第三方模块太多所以也介绍不完,当然本文本身也可能介绍的不完整,毕竟只是我个人使用过和了解到过得。...

772
来自专栏Bug生活2048

微信小程序版博客——小程序授权登陆的一点优化

通常授权登陆在第一次登陆小程序时提示,但很多用户会拒绝,接下来的流程就比较尴尬了。

2013
来自专栏前端vue

json-server增删改查

npm install json-server -g或cnpm install json-server -g

1702
来自专栏别先生

从gitlab下载下来的maven无法运行,老报404解决方法

1:由于在不同的地方开发同一个项目,就将项目上传到gitlab上面(可以创建私有项目,免费的),回到住的地方,项目下载下来老报错,自己摸索的,记录一下。自己记得...

3175
来自专栏北京马哥教育

nginx屏蔽ip

马哥linux运维 | 最专业的linux培训机构 ---- 采集和防止采集是一个经久不息的话题,一方面都想搞别人的东西,另一方面不想自己的东西被别人搞走。 ...

35211
来自专栏初入职场

Eclipse打开就提示Initializing Java Tooling “has encountered a problem” 错误

今天打开eclipse就提示Initializing Java Tooling “has encountered a problem”错误,看到网上说要删除工作...

330
来自专栏Ksher

Kubernetes的服务网格(第4部分):通过流量切换持续部署

翻译人:Ksher,该成员来自云+社区翻译社

2668

扫码关注云+社区