2. 微服务架构的问题:管理问题,通信问题,访问问题...

微服务,简单来说就是微小的服务,将一个应用拆封成为一个一个的更小的服务,每一个服务都是一个可以独立运行的项目。

目录

    • 1. 微服务架构的常见问题
    • 相应的组件
      • 1. 服务治理:解决管理问题
      • 2. 服务调用:解决服务通信问题
      • 3. 服务网关: 解决客户端访问问题
      • 4. 服务容错:解决自处理问题
      • 5. 链路追踪:找到出现问题的地方

1. 微服务架构的常见问题

采用微服务架构之后,会产生这么几个问题:

  1. 这么多微服务,如何管理?
  2. 这么多微服务,都是独立的,他们如何通信?
  3. 这么多微服务,客户端要怎么访问呢?记住每一个服务的网址吗?
  4. 这么多微服务,一旦出现了问题,该怎么自处理呢?
  5. 这么多微服务,出现了问题,要怎么找到问题出在哪里?

采用了微服务架构,那么这些问题时跳不过去的,所以大部分的微服务产品针对上边的问题都提供了相应的解决办法。使用相应的组件就可以解决这些问题了!

解决图示:
2. 微服务架构的问题:管理问题,通信问题,访问问题..._第1张图片
下边来看一些这些组件吧!

相应的组件

1. 服务治理:解决管理问题

服务治理就是进行服务的自动化管理,其核心是服务的自动注册与发现

服务注册: 服务实例将自身服务信息注册到注册中心

服务发现: 服务实力通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求他们提供的服务

服务剔除: 服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用。


2. 服务调用:解决服务通信问题

在微服务架构中,经常会存在多个服务之间的远程调用的需求。目前主流的远程调用技术有基于 HTTP 的 Restful 接口, 还有基于 TCP 的 RPC 协议


3. 服务网关: 解决客户端访问问题

随着微服务不断增多,不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务接口才能完成一个业务需求,如果客户端直接与每个微服务通信可能会出现:

  • 客户端需要调用不同的 url 地址才能访问不同的服务
  • 在一定的场景下,存在跨域请求的问题,例如:跨端口,跨ip,跨协议
  • 每个微服务存在单独的身份认证

针对这些问题,出现了 API 网关
API 网关将所有的 API 调用同一接入到 API 网关层,由网关层统一控制,一个网关的基本功能有:同一接入,安全防护,协议适配,流量控制,长短连接支持,容错能力。有了网关之后,每个服务都可以专注于自己的业务逻辑。2. 微服务架构的问题:管理问题,通信问题,访问问题..._第2张图片

4. 服务容错:解决自处理问题

在微服务中,一个请求经常会涉及到调用几个服务,如果其中某个服务不可用,如果没有服务容错的化,很有可能会出现一个服务导致一连串服务不可用的情况,出现服务雪崩。
为了防止雪崩,就出现了服务容错,服务容错的三个思想:

  • 不被外界影响: 不被外界的运行环境影响
  • 不被上游请求压垮:不能因为上游的频繁访问导致服务不可用
  • 不被下游相应拖垮:不能因为下游响应缓慢、无响应拖累, 要有备用方案

2. 微服务架构的问题:管理问题,通信问题,访问问题..._第3张图片

5. 链路追踪:找到出现问题的地方

服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。
因此,就需要对一次请求涉及的多个服务链路进行日志记录,性能监控即链路追踪。
这样就可以很快的找到问题出现的地方以及原因了。
2. 微服务架构的问题:管理问题,通信问题,访问问题..._第4张图片

就是这样!

你可能感兴趣的:(学习笔记,#,微服务,分布式,java)