【微服务】微服务架构包含哪些组件、各个组件又承担什么职责呢?

【微服务】微服务架构包含哪些组件、各个组件又承担什么职责呢?
最新回答
万花丛中一朵菊

2022-02-26 01:04:19

微服务架构包含的组件及各个组件的职责

微服务架构是一种将应用程序构建为一组小型、自治服务的方法,每个服务运行在其独立的进程中,服务间通信通常采用轻量级通信机制(通常是HTTP API)。微服务架构包含的组件及其职责如下:

1、注册中心(Service Registry)

  • 职责:注册中心是微服务架构最核心的组件,负责新节点的注册与状态维护。微服务节点在启动时会将自己的服务名称、IP、端口等信息在注册中心登记,注册中心会定时检查该节点的运行状态,通过心跳机制最大程度保证已登记过的服务节点都是可用的。
  • 解决的核心问题:如何发现新节点以及检查各节点的运行状态?

2、负载均衡(Load Balance)

  • 职责:负载均衡组件解决了服务发现及负载均衡的问题。微服务在互相调用时,通过服务名在注册中心查询该服务拥有的节点,注册中心返回可用节点列表给服务调用者。服务调用者内置负载均衡器,通过负载均衡策略选择合适的节点发起通信请求。
  • 解决的核心问题:如何发现服务及负载均衡如何实现?

3、服务通信(Communication)

  • 职责:服务通信组件负责微服务间的消息通信,通常采用HTTP RESTful风格的轻量级协议。为了屏蔽底层实现细节,通常会进行封装,如SpringCloud中的Feign和RestTemplate。
  • 解决的核心问题:服务间如何进行消息通信?

4、API服务网关(API Gateway)

  • 职责:服务网关是外部环境访问内部微服务的唯一途径,负责控制用户的访问权限,并可以扩展出用户认证与授权、容错限流、动态路由、A/B测试、灰度发布等功能。
  • 解决的核心问题:如何对使用者暴露服务API?

5、配置中心(Config Management)

  • 职责:配置中心负责集中管理各节点的配置文件,如jdbc配置、自定义配置、环境配置、运行参数配置等。通过部署配置中心服务器,将各节点配置文件从服务中剥离,集中转存到配置中心,方便实现大规模集群配置调整。
  • 解决的核心问题:如何集中管理各节点配置文件?

6、集中式日志管理(Centralized Logging)

  • 职责:集中式日志管理负责收集各节点的日志数据,为数据分析和数据统计提供支撑。业内常见的方案有ELK、EFK,通过搭建独立的日志收集系统,定时抓取各节点增量日志形成有效的统计报表。
  • 解决的核心问题:如何收集各节点日志并统一管理?

7、分布式链路追踪(Distributed Tracing)

  • 职责:分布式链路追踪负责直观展示各节点间的调用链路,帮助开发人员快速分析系统瓶颈及出错的服务。通过可视化链路图展现业务逻辑涉及的每个微服务的运行状态。
  • 解决的核心问题:如何直观的了解各节点间的调用链路?

8、服务保护(Service Protection)

  • 职责:服务保护组件负责实现高延迟服务的快速降级,避免系统崩溃。在业务运行时,微服务间互相调用支撑,如果某个微服务出现高延迟或业务处理失败,服务保护组件将介入进行保护。
  • 解决的核心问题:如何对系统进行链路保护,避免服务雪崩?

以上就是微服务架构包含的组件以及各个组件在架构中承担的职责。这些组件共同协作,确保了微服务架构的高效、稳定和可扩展性。