微服务架构常见问题及解决办法

1.这么多小服务,我们应该如何管理

1.1 服务治理

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

  • 服务注册
    服务实例将自身的服务信息注册到注册中心。
  • 服务发现
    服务实例通过注册中心,获取到注册到其中的服务实例信息,通过这些信息去请求它们提供的服务。
  • 服务剔除
    服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到。

2.这么多小的服务,它们之间应该如何调用

  • 服务调用
    在微服务框架中,通常存在多个微服务之间的远程调用的需求。目前主流的远程调用技术有基于HTTP的RESTful接口以及基于TCP的RPC协议。
  • RESTful
    一种HTTP调用的格式,更标准,更通用,无论哪种语言都支持http协议。
  • RPC
    一种进程间的通信方式,允许像调用本地服务一样调用远程服务。

3.这么多小的服务,客户端如何来访问他们

-服务网关
API网关直面意思是将所有API调用统一接入到API网关层,由网关层统一接入和输出。一个网关的基础功能有:统计接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。有了网关之后,各个API服务提供团队可以专注于自己的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。

微服务架构 防止 微服务架构的常见问题_后端

4.这么多小的服务,如果出现问题了,如何处理

  • 服务容错
    在微服务框架中,一个请求经常涉及到调用几个服务,如果其中某个服务不可用,没有做服务容错的话,极有可能会导致一连串的服务不可用,这就是雪崩效应。
  • 服务容错的三个核心思想
    1.不被外界环境影响
    2.不被上游请求压垮
    3.不被下游响应拖垮

5.这么多小的服务,如果中间环节出现问题,如何排插

  • 链路追踪
    随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发。可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要对一次清求涉及的多个服务链路进行日志记录,性能监控即链路追踪。