微服务的特点与功能

特点

  1. 按照业务划分服务,单个服务代码量少,业务单一,方便维护
  2. 每个服务都有自己的独立组件
  3. 服务之间通过HTTP协议或消息组件MQ通信,都具有容错能力,HTTP的熔断,MQ的死信
  4. 有服务治理方案,服务之间不耦合,可以方便地加入和剔除服务
  5. 单个服务可以集群化,并且具有负载均衡的能力
  6. 整个微服务系统具有完整的安全机制,包括用户验证,权限验证,资源保护
  7. 具有服务调用链路追踪能力
  8. 具有实时的日志系统

 

功能

  1. 服务的注册与发现
  2. 服务的负载均衡
  3. 服务的容错
  4. 服务的网关
  5. 服务配置的统一管理
  6. 链路追踪
  7. 实时日志

服务注册与发现

服务注册:服务向注册中心注册服务实例,将服务信息(服务名、ip、端口)告知注册中心

服务发现:一个服务通过注册中心获取另一个服务的调用信息

 

服务既是服务提供者,也是服务消费者;注册中心提供服务健康检查方案,服务定期向注册中心发送请求(心跳),注册中心根据心跳确定服务是否可用,当服务不再发送心跳的时候,注册中心就会将服务下线

微服务管理员用户表怎么设计 微服务管理平台功能_链路

服务负载均衡

在服务消费者中集成负载均衡组件,组件从服务消费者获取服务注册列表信息,并且每隔一段时间重新刷新获取该列表。当服务消费者消费服务的时候,通过可配置的策略进行调用。

微服务管理员用户表怎么设计 微服务管理平台功能_链路_02

服务容错

微服务设计中服务调用通常会涉及多服务依赖,如果一个服务的的线程资源被占用,其他依赖于该服务的服务很可能就会收到影响。

 

熔断机制就是为解决微服务中的雪崩问题而出现的。

一段时间内,服务中某接口响应请求失败的次数达到阈值,熔断器打开,后续对该接口的请求都执行快速失败;

熔断器打开一段时间后,进入半打开状态,将部分对该接口的请求放行,其余请求继续执行快速失败;如果那部分请求成功,则熔断器关闭,否则熔断器打开;

微服务管理员用户表怎么设计 微服务管理平台功能_微服务管理员用户表怎么设计_03

熔断机制:
1.将资源隔离

2.服务降级功能

3.自我修复功能

服务网关

微服务中服务的资源不能通过API接口的方式提供给外界,需要使用网关来聚合服务;网关还能进行用户身份认证,权限认证以防止非法请求;网关可以提供实时监控功能,实时日志输出,对请求进行记录;网关还能进行流量监控,在高流量的情况下,对服务进行降级;

 

一般网关都会配置负载均衡层,以达到高可用的目的

服务统一配置管理

微服务中服务单元过多,如果按照传统的做法,每个服务的配置都是与服务绑定,那么维护的成本非常高。通常会将所有的服务的配置文件统一管理,即服务统一配置管理;

服务统一配置管理的流程(spring cloud config)

  1. config server配置服务从配置文件仓库读取配置文件信息,将配置文件信息存放在配置服务内存
  2. 服务单元启动的时候,指定读取配置服务器获取配置信息
  3. 当配置服务器上的配置信息修改后,通过API接口的方式通知服务重新获取配置信息

微服务管理员用户表怎么设计 微服务管理平台功能_微服务_04

服务链路追踪

微服务中服务接口数量多,当单个接口访问数量非常大,出现异常时,日志是排错的重要手段,但是由于并发访问量非常大,所以很难去查找单次访问的日志顺序(一般使用日志添加唯一键处理),服务众多的情况下,链路追踪就成为非常有效的排错手段