前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式架构 Broker 简介

分布式架构 Broker 简介

作者头像
用户3147702
发布2022-06-27 13:19:17
1.9K0
发布2022-06-27 13:19:17
举报
文章被收录于专栏:小脑斧科技博客

1. 概述

随着业务规模和复杂性的不断增长,分布式计算成为了数据持久化、运算高性能的必要选择,然而,分布式多机器、多集群的协作成为了一个问题,如何让规模巨大的多机器甚至多个集群协同工作呢?又如何避免集群中单台机器的增加、删除、变动而对集群造成的巨大影响呢? 解决问题的方法就是抽象化的分布式架构,通过代理的方式让客户端与服务端解耦,使各种突发事件能够被透明化的解决,同时,服务的调用者期望服务对他而言足够简单,最好是像调用本地服务一样简单,各种分布式架构应运而生,Broker 就是其中的一个。

2. Broker 的组成

Broker 体系结构拥有六个组成部分:

  1. Client — 需要访问远程服务的客户端
  2. Server — 服务的提供者
  3. Broker — 类似于消息的转发器,负责控制和管理集群,Server 启动时向 Broker 注册,从而 Broker 在接到 Client 的消息后可以得知要将消息转发给哪个 Server,然后在 Server 做出应答或发生异常后再将回应通知给 Client
  4. Client_Proxy — Client 端的代理层,对 Client 隐藏连接、通讯等底层服务,让 Client 在使用远程服务时如同使用本地服务一样简单,他维系了 Client 与 Broker 的通信和连接
  5. Server_Proxy — Server 端的代理曾,同样,他接收请求、解包消息,让 Server 与 Broker 的通信和连接被隐藏
  6. Bridge — 用于多个集群的复杂网络,协调多个 Broker 的数据、消息等工作

3. Broker 的优缺点

3.1. 优点

无论是远程服务的访问还是消息的获取、通信,Broker 提供了代理完成了很高程度的抽象,让 Client 和 Server 的设计者更加关注于业务,而无需考虑底层的实现、通信参数的选取等问题。 同时,由于模块化、抽象化,让整个架构各组件之间耦合度很低,Server 注册即可用,大大增加了可伸缩性、可维护性,动态扩展变得简单而高效。

3.2. 缺点

显而易见的,整套架构的复杂度很高,在实际的生产环境中,Broker 怎么及时发现意外断开的 Server,如何实现负载均衡都是需要考虑的问题。 同时,由于高度的组件化,多了 Broker 的消息转发,让 Client 与 Server 的交互效率有所下降。

4. Broker 的应用

在复杂的系统设计中,Client 和 Server 都有自己的 Broker,Client 的 Broker 收到消息后首先通过 Bridge 找到可以处理消息的 Server 的 Broker 然后再将消息通过 Bridge 发送给 Server 的 Broker。 这样的搞复杂度让整个架构过于庞大,除非分布式计算任务太过复杂,通常使用者都会对这个架构做出不同程度的简化,比如 Client、Server 公用一个或多个 Broker、去除 Bridge、统一跨平台通信协议等。 Broker 已经被用于 RabbitMQ、kafka 等多个成熟的开源框架。

5.参考资料

Broker Pattern — https://en.wikipedia.org/wiki/Broker_Pattern。 Broker一种分布式系统的体系结构模式 — http://www.docin.com/p-371211974.html。 分布式模式之Broker模式 — http://blog.chinaunix.net/uid-23093301-id-90459.html。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. Broker 的组成
  • 3. Broker 的优缺点
    • 3.1. 优点
      • 3.2. 缺点
      • 4. Broker 的应用
      • 5.参考资料
      相关产品与服务
      负载均衡
      负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档