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
目录
相关文章
|
9月前
|
机器学习/深度学习 人工智能 算法
AI在体育分析与预测中的深度应用:变革体育界的智能力量
AI在体育分析与预测中的深度应用:变革体育界的智能力量
787 31
|
10月前
|
人工智能 自然语言处理 API
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
Mathtutor on Groq 是一款基于 Groq 架构的 AI 数学辅导工具,支持语音输入数学问题,实时计算并渲染解题过程,适用于代数、微积分等领域的学习和教学辅助。
732 5
Mathtutor on Groq:AI 数学辅导工具,实时计算并展示解题过程,支持通过语音提出数学问题
|
8月前
|
人工智能 小程序 数据挖掘
2025年企业CRM选型指南:销售易、金蝶、纷享销客对比
销售易、金蝶和纷享销客是国内知名的CRM解决方案,各自具备独特优势。销售易功能全面,涵盖销售、客户、营销管理及AI赋能,适合中大型企业;金蝶与ERP无缝集成,财务管理强大,适合传统企业;纷享销客连接能力强,用户体验佳,性价比高,适合中小企业。本文从功能、体验、价格、评价及适用场景对比三者,助力企业选择合适的CRM系统,推动数字化转型。
|
9月前
|
存储 缓存 Java
程序员必懂!上下文切换到底是怎么回事?
大家好,我是小米,一个喜欢分享技术的程序员。今天聊聊社招面试中的高频考点——上下文切换。它指CPU在多个任务间切换时保存和恢复状态的过程,常见于进程、线程切换及中断处理。上下文切换有CPU时间开销、缓存失效、内存开销等代价。优化方法包括减少线程数量、选择合适的并发模型、优化锁使用等。理解这些不仅能提升面试表现,还能写出更高效的代码。欢迎关注我的微信公众号“软件求生”,获取更多技术干货!
290 6
|
存储 Kubernetes 分布式数据库
利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
利用Helm在K8S上部署 PolarDB-X 集群(详细步骤--亲测!!!)
655 0
|
开发框架 缓存 Java
盘古开发框架简介,工业级微服务开发治理框架
「盘古开发框架」是一套轻量灵活、成熟可靠的工业级分布式微服务开发和治理框架(兼容垂直单体分层架构)。它基于 Apache-2.0 协议开源发布,且是免费的。
1243 1
盘古开发框架简介,工业级微服务开发治理框架
|
Java 程序员 网络安全
java版gRPC实战之四:客户端流
客户端流式RPC,适用于客户端提交大量数据到服务端的场景,一起来体验一下
1726 1
java版gRPC实战之四:客户端流
|
SQL Java 数据库
SpringBoot集成slf4j日志系统
日志系统作为一个应用系统的重要部分之一,它能够有助于我们在系统在线上环境中如果有问题,及时发现问题,并且定位问题,从而解决问题,保证服务的高可用,减少生产事故的发生。所以日志的重要性,不言而喻。
728 0
SpringBoot集成slf4j日志系统
|
Shell Python
conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到pycharm中
conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到pycharm中
594 0
conda创建虚拟环境后文件夹中只有conda-meta文件夹,无法将环境添加到pycharm中
|
存储 弹性计算 架构师
游戏上云成标配 云服务器该怎么选?
三大关键点:性能、稳定性和弹性伸缩能力。
游戏上云成标配 云服务器该怎么选?