微服务的特点与功能

微服务特点

  1. 按照业务来划分服务,单个服务代码量小,业务单一,易于维护。
  2. 每个微服务都有自己独立的基本组件,例如数据库、缓存等,且运行在独立的进程中。
  3. 微服务之间的通信是通过HTTP协议或者消息组件,且具有容错能力。
  4. 微服务有一套服务治理的解决方案,服务之间不耦合,可以随时加入和剔除服务。
  5. 单个微服务能够集群化部署,并且有负载均衡的能力
  6. 整个微服务系统应该有一个完整的安全机制,包括用户验证、权限验证、资源保护等。
  7. 整个微服务系统有链路追踪的能力。
  8. 有一套完整的实时日志系统。

微服务功能

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

 

微服务相关概念

  • 服务注册是指向服务注册中心注册一个服务实例,服务提供者将自己的服务信息(如服务名、IP地址等)告知服务注册中心。
  • 服务发现是指当服务消费者需要消费另外一个服务时,服务注册中心能够告知服务消费者它所要消费服务的实例信息(如服务名、IP地址等)。通常情况下,一个服务即使服务提供者,也是服务消费者。
  • 服务心跳:通常一个服务实例注册后,会定时向服务注册中心提供“心跳”,以表明自己还处于可用的状态。
  • 负载均衡:服务消费者集成负载均衡组件,该组件会帮助服务消费者获取服务注册列表信息,并每隔一段时间重新刷新获取该列表。当服务消费者消费服务时,负载均衡组件获取服务提供者所有实例的注册信息,并通过一定的负载均衡策略(可以自定义配置),选择一个服务提供者的实例,向该实例进行服务消费,这样就实现了负载均衡。
  • 熔断器:在分布式系统中,当用户的请求处于阻塞状态,并高并发的场景下,短时间内会导致服务器的线程资源消耗殆尽,最后导致整个系统处于瘫痪的状态也不就是雪崩效应,分布式系统引进了熔断器机制。
  •  
  • 熔断器存在的意义:
  1. 将资源进行隔离,如果某个服务里的某个API接口出现了故障,只会隔离该API接口。不会影响到其他API接口。
  2. 服务降级的功能。当服务处于正常的状态时,大量的请求在短时间内同时涌入,超过了服务的处理能力,这时熔断器会被打开,将服务降级,以免服务器因负载过高而出现故障。
  3. 自我修复能力。当因某个微小的故障,例如网络服务商的问题,导致网络在短时间内不可用,熔断器被打开。

 

  • 服务网关:微服务系统通过将资源以API接口的形式暴露给外界来提供服务。在微服务系统中,API接口资源通常是由服务网关(也称API网关)统一暴露,内部服务不直接对外提供API资源的暴露。通常情况下,网关层以集群的形式存在。在服务网关层之前,有可能需要加上负载均衡层,通常为Nginx双机热备,通过一定的路由策略,将请求转发到网关层。到达网关层后,经过一系列的用户身份验证、权限判断,最终转发到具体得服务。具体的服务经过一系列的逻辑运算和数据操作,最终将结果返回给用户。

 

  • 服务网关存在的意义:
  1. 网关将所有的API接口资源统一聚合,对统一聚合,对外统一暴露,外界系统调用的API接口都是网关对外暴露的API接口。
  2. 网关可以做一些用户身份认证、权限认证,防止非法请求操作API接口,对内部服务起到保护作用。
  3. 网关可以实现监控功能,实时日志输出,对请求进行记录。
  4. 网关可以用来做流量监控,在高流量的情况下,对服务进行降级。
  5. API接口从内部服务分类出来,方便做测试
  • 服务链路追踪:去跟进一个请求到底有哪些服务参与,参与的顺序又是怎样的,从而使每个请求链路清晰可见,出了问题很快就能定位。

 

你可能感兴趣的:(微服务)