微服务的基础设施:
微服务基础设施的优先级:
- 服务发现、服务路由、服务容错:这是最基本的微服务基础设施
- 接口框架、API 网关:主要是为了提升开发效率,接口框架是提升内部服务的开发效率,API 网关是为了提升与外部服务对接的效率
- 自动化部署、自动化测试、配置中心:主要是为了提升测试和运维效率
- 服务监控、服务跟踪、服务安全:主要是为了进一步提升运维效率
服务治理
服务治理:就是进行服务的自动化管理,其核心是服务的自动注册与发现
- 服务注册:服务实例将自身信息注册到注册中心
- 服务发现:服务实例通过注册中心,获取到注册到其中的服务实例的信息,通过这些信息去请求它们提供的服务
- 服务剔除:服务注册中心将出问题的服务自动剔除到可用列表之外,使其不会被调用到
服务调用
在微服务架构中,通常存在多个服务之间的远程调用的需求。目前主流的远程调用技术有基于 HTTP 的 RESTful 接口以及基于 TCP 的 RPC 调用。
- REST:Representation State Transfer,这是一种 HTTP 调用的格式,属于标准、通用的格式,主要用于微服务架构
- RPC:Remote Promote Call,一种进程间通信方式,允许像调用本地服务一样调用远程服务,主要用于 SOA 架构
服务网关
在微服务架构中,不同的微服务可以有不同的网络地址,各个微服务之间通过互相调用完成用户请求,客户端可能通过调用N个微服务的接口完成一个用户请求。这样会带来如下问题:
- 客户端需要多次请求不同的微服务,增加客户端的复杂性
- 认证复杂,每个服务都要认证
- http 请求增加,效率不高
- 存在跨域请求,不安全且复杂
为了解决上述问题,可以在客户端和服务端之间增加一个API网关,所有的外部请求先通过这个微服务网关,它只需跟网关进行交互,而由网关进行各个微服务的调用。
API 网关属于系统的入口,封装了应用程序的内部结构,为客户端提供统一服务,一些与业务本身功能无关的公共逻辑可以在这里实现,诸如认证、鉴权、监控、缓存、负载均衡、流量管控、路由转发等功能,大致为统一接入、流量管控、协议适配、安全维护。
**
服务容错
在微服务中,一个请求经常会涉及到调用多个服务,如果调用过程中某个服务不可用,如果没有做服务容错的话,可能会造成一连串的服务不可用,这就是雪崩效应。
服务容错的三个核心思想:
- 不被外界环境影响
- 不被上游请求压垮
- 不被下游响应拖垮
链路追踪
链路追踪,类似于日志,用于排错与性能分析。