深入浅出 -- 系统架构之分布式架构

​​​​​​分布式架构:

根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。

当垂直应用越来越多时,应用之间的交互不可避免,可将共用的基础服务或核心模块抽取出来作为独立服务,逐渐形成稳定的服务中心,使前端应用灵活快捷的面向多变的市场需求。

**优点:**将基础业务功能进行了抽取,系统间相互独立调用,降低服务耦合,提高了代码的复用率和开发效率。

**缺点:**系统间的耦合度变高了,调用关系错综复杂,难以维护。

分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:

服务拆分的粒度如何界定?

服务之间如何调用?

服务的调用关系如何管理?

人们需要制定一套行之有效的标准来约束分布式架构。

  • 分布式架构 简单来说就是一组计算机组成一个系统的整体,一致对外提供服务
  • 这组计算机内的不同系统,都可以互相通信
  • 客户端到服务端的一次请求响应,可能会历经多台计算机。
RPC

RPC 协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括网络分布式多程序在内的应用程序更加容易。这个时期典型的 RPC 协议如 RMI、WebService 等(gRPC 和 Thrift 都属于现代意义的 RPC)。

RPC 优势
  1. 交互方式简单,客户端/服务端间的交互协议容易统一;
  2. 跨语言异构支持;
  3. 不存在 ESB 中的单点故障可能。
RPC 不足
  1. 交互方式较为单一,不能进行复杂的多模块之间的协议交互;
  2. 异常处理困难;
  3. 缺少服务治理能力;
  4. 采用私有协议,扩展性较差。
相关推荐
Coder_Boy_20 分钟前
基于MQ实现秒杀订单系统的异步化架构
java·开发语言·架构
隐语SecretFlow27 分钟前
TrustFlow 可信执行环境之 Intel TDX TEE 方案
架构·开源
赫尔·普莱蒂科萨·帕塔32 分钟前
DeepMind 分布式 AGI 安全框架与拼凑型 AI 群技术深度分析
分布式·安全·agi
Vic1010140 分钟前
Redis防重复点击与分布式锁
java·数据库·redis·分布式
Vic101011 小时前
Redis防重复点击与分布式锁实现方案对比笔记
java·redis·笔记·分布式
食尘者1 小时前
GLM-4.7 vs MiniMax-M2.1:代码工程理解
架构·ai编程
神秘的猪头1 小时前
彻底搞懂 React 组件通信:从 TodoList 实战出发,解锁 React 开发的“核心姿势” 🚀
前端·react.js·架构
leafff1231 小时前
一文了解:Multi-Agent多智能体核心架构的协调与调度模块是如何工作的?
架构
代码笔耕1 小时前
我们这样设计消息中心,解决了业务反复折腾的顽疾
java·后端·架构
没有bug.的程序员2 小时前
负载均衡的真正含义:从算法到架构的深度解析
java·jvm·算法·微服务·架构·负载均衡