通过Sidecar模式实现服务注册、服务发现和负载均衡的分布式系统架构

server/2025/3/1 20:51:55/

以下是通过Sidecar模式实现服务注册、服务发现负载均衡的分布式系统架构的详细文字图示:

+----------------------------------------------------------------------------------------+
|                           分布式系统架构示意图                                          |
+----------------------------------------------------------------------------------------+
|                                                                                        |
|  +----------------+       +----------------+       +----------------+                 |
|  |    服务A        |       |    服务B        |       |    API网关      |                 |
|  +----------------+       +----------------+       +----------------+                 |
|  | 业务逻辑        |       | 业务逻辑        |       | 路由规则         |                 |
|  | (容器)          |       | (容器)          |       | (容器)           |                 |
|  +--------+-------+       +-------+--------+       +--------+--------+                 |
|           |                       |                        |                          |
|  +--------v-------+       +-------v--------+       +-------v--------+                 |
|  | Sidecar代理     |       | Sidecar代理     |       | Sidecar代理     |                 |
|  | (容器)          |       | (容器)          |       | (容器)           |                 |
|  | - 服务注册      |       | - 服务注册      |       | - 请求转发       |                 |
|  | - 服务发现      |       | - 服务发现      |       | - 负载均衡       |                 |
|  | - 负载均衡      |       | - 负载均衡      |       +--------+--------+                 |
|  +--------+-------+       +-------+--------+                  |                          |
|           |                       |                           |                          |
|           |                       |                           |                          |
|  +--------v-----------------------+--------------------------v--------+               |
|  |                                                                      |               |
|  |                       服务注册中心 (如Consul/Etcd)                   |               |
|  |                                                                      |               |
|  | - 存储服务实例元数据(IP、端口、健康状态)                            |               |
|  | - 提供心跳机制和健康检查                                             |               |
|  +----------------------------------------------------------------------+               |
|                                                                                        |
+----------------------------------------------------------------------------------------+

核心组件说明

  1. 业务服务(Service A/B)

    • 职责:运行核心业务逻辑的独立容器(如处理订单、用户认证等)。
    • 通信依赖:所有网络请求(如调用其他服务)均通过本地Sidecar代理转发,不直接处理网络逻辑
  2. Sidecar代理

    • 服务注册:在服务启动时,自动将服务实例信息(IP、端口、健康状态)上报至服务注册中心。
    • 服务发现:当需要调用其他服务时,向注册中心查询可用实例列表(例如Service A调用Service B时,Sidecar查询B的实例列表)。
    • 负载均衡:根据预设策略(轮询、随机、最少连接等)选择目标实例,并转发请求。
    • 健康检查:定期向注册中心发送心跳,若服务实例故障,自动将其从可用列表剔除。
  3. 服务注册中心

    • 数据存储:维护所有服务实例的动态目录,记录其实时状态。
    • 一致性保障:通过分布式协议(如Raft)确保集群内数据一致性。
    • 通知机制:当服务列表变更时,主动推送更新至订阅的Sidecar代理。
  4. API网关(可选)

    • 统一入口:接收外部请求,通过Sidecar代理路由到内部服务。
    • 全局策略:实施认证、限流、SSL终止等跨服务策略。

交互流程示例:Service A调用Service B

  1. 服务注册

    • Service B启动时,其Sidecar代理将实例信息注册到服务注册中心。
    • 注册中心更新Service B的实例列表,标记为健康状态。
  2. 服务发现

    • Service A的业务逻辑向本地Sidecar发送调用Service B的请求。
    • Sidecar代理查询注册中心,获取Service B的所有可用实例列表。
  3. 负载均衡

    • Sidecar代理根据策略(如轮询)选择一个Service B实例(例如实例B1)。
    • 将请求转发至B1的Sidecar代理。
  4. 请求处理

    • B1的Sidecar接收请求,验证后传递给Service B的业务容器处理。
    • 响应结果沿原路径返回给Service A。

架构优势

  • 解耦性:业务代码与网络逻辑分离,服务无需感知通信细节。
  • 弹性:Sidecar自动处理故障实例剔除和重试,提升系统容错能力。
  • 可观测性:Sidecar统一收集指标、日志和链路追踪数据,便于监控。
  • 策略一致性:通过Sidecar统一实施安全、流量控制策略,避免代码重复。

架构广泛用于服务网格(如Istio、Linkerd),通过Sidecar标准化服务间通信,简化分布式系统的复杂度。


http://www.ppmy.cn/server/171628.html

相关文章

在AI中,tokens是自然语言处理(NLP)的基本单位,用于文本的分割和处理。

在AI中,tokens是自然语言处理(NLP)的基本单位,用于文本的分割和处理。‌ Tokens可以是单个单词、字符、子词或标点符号,具体形式取决于使用的分词方法。‌12 Tokens在AI模型中的作用 ‌文本处理‌:在AI模…

赋能农业数字化转型 雏森科技助力“聚农拼”平台建设

赋能农业数字化转型,雏森助力“聚农拼”平台建设 在数字化浪潮席卷各行业的今天,农业领域也在积极探索转型升级之路。中农集团一直以“根植大地,服务三农”为核心,以“乡村振兴,农民增收”为目标,及时响应…

MapStruct 对象转换工具【DDD 架构】

文章目录 一、前言二、对象模型1. DTO 数据传输对象2. BO 业务对象3. PO 持久化对象4. VO 值对象 三、MapStruct 对象转换1. 工具介绍2. 代码演示 一、前言 上篇我们学习了 DDD 架构,从上到下依次是:用户接口层、应用层、领域层和基础层。 那么不同层的…

版图自动化连接算法开发 00002 ------ 添加一个中间点实现 Manhattan 方式连接两个给定的坐标点

版图自动化连接算法开发 00002 ------ 添加一个中间点实现 Manhattan 方式连接两个给定的坐标点 引言正文引言 必读文章 ------ 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点 之前,我们实现了两个坐标点之间的直接连接,属于最简单的布线方式,但是对于光…

DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求

DeepSeek 新的 LLM 推理方法 DeepSeek 通过强化学习(RL)提出了一种创新的改进大规模语言模型(LLM)推理能力的方法,这在他们最近关于 DeepSeek-R1 的论文中有详细介绍。这项研究代表了在不依赖于大量有监督微调的情况下…

软件高级架构师 - 设计模式

六大原则 1. 单一职责原则 一个类只负责一项职责。 案例 餐厅中的厨师和服务员: 厨师的职责是做饭,服务员的职责是上菜。 如果让厨师同时负责做饭和上菜,会导致职责混乱,效率降低。 2. 开放-封闭原则(OCP&#xff09…

Apache Doris 索引的全面剖析与使用指南

搞大数据开发的都知道,想要在海量数据里快速查数据,就像在星图里找一颗特定的星星,贼费劲。不过别慌,数据库索引就是咱们的 “定位神器”,能让查询效率直接起飞!就拿 Apache Doris 这个超火的分析型数据库来…

RFID:汽车智能化产线工艺加工的指挥棒

RFID:汽车智能化产线工艺加工的指挥棒 南通某汽车涂装装配现场问题: 目前使用视觉读取二维码的形式,二维码的数据无法重复利用。因为现场有喷漆的工艺,二维码被漆挡住了就无法识别。无法修改数据,所以无法告诉下一道…