画一个分布式系统架构图,标注服务注册、网关、熔断。
整体架构
这是一个典型的微服务架构,包括客户端、网关、服务注册中心、多个微服务实例以及数据库/缓存。以下是各组件的布局和功能:
1.客户端(Client):
位于架构最左侧,表示用户或外部应用。
通过 HTTP/HTTPS 请求访问系统。
2.API 网关(Gateway):
位于客户端和微服务之间,作为入口。
负责路由、负载均衡、认证、限流、日志记录。
标注:支持 Spring Cloud Gateway 或 Nginx。
3.服务注册中心(Service Registry):
位于网关下方,中心位置。
负责服务发现和注册(如 Eureka、Consul、Nacos)。
微服务启动时注册,网关通过注册中心路由请求。
4.微服务(Microservices):
分布在服务注册中心周围,多个实例(如 OrderService、UserService、PaymentService)。
每个微服务可能有多个实例,分布在不同节点(服务器或容器)。
5.熔断器(Circuit Breaker):
嵌入在微服务或网关中,标注在微服务实例旁。
负责处理服务故障,防止级联失败(如 Hystrix、Resilience4j)。
6.数据库与缓存:
位于架构底部。
数据库(如 MySQL)存储持久化数据,缓存(如 Redis)加速访问。
7.消息队列(可选):
可在微服务和数据库之间添加,用于异步通信(如 Kafka、RabbitMQ)。
连接关系
客户端 → 网关 → 服务注册中心(查询服务) → 微服务实例。
微服务实例间可能通过 REST/HTTP 或 gRPC 通信。
熔断器监控微服务调用,失败后快速切换到降级逻辑。
微服务访问数据库/缓存,必要时通过消息队列异步处理。
手绘或工具生成建议
1.布局:
用矩形框表示各组件,箭头表示数据流。
客户端在左上,网关在中间,服务注册中心居中,微服务环绕,数据库/缓存在底。
2.标注:
服务注册中心标注“Eureka/Nacos”,网关标注“Spring Cloud Gateway”,熔断器标注“Hystrix/Resilience4j”。
用虚线表示熔断器监控,实线表示正常调用。
3.示例工具:
Draw.io:免费在线工具,适合快速绘制。
面试记录要点
1.服务注册:
微服务启动时注册到 Eureka/Nacos,定期心跳保持活动。
网关通过注册中心动态路由。
2.网关:
单一入口,处理路由、认证、限流。
支持负载均衡(如 Ribbon)。
3.熔断:
监控服务调用,失败率高时打开熔断,调用降级逻辑。
典型场景:订单服务故障,支付服务降级为“稍后支付”。