微服务应该具备哪些功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_15071263/article/details/82799401

微服务应该具备哪些功能


1、服务的注册和发现

微服务系统由很多个单一职责的服务单元组成,例如 某个系统是由 600 多个微 服务构成的,而每一个微服务又有众多实例。 由于该系统的服务粒度较小,服务数量众多,服 务之间的相互依赖成网状,所以该系统需要服务注册中心来统一管理微服务实例, 方便查看每 一个微服务实例的健康状态。

2、服务的容错

微服务落地到实际项目中,服务的数量往往非常多,服务之间的相互依赖性也是错综复杂的, 一个网络请求通常需要调用多个服务才能完成。如果一个服务不可用,例如网络延迟或故 障,会影响到依赖于这个不可用的服务的其他服务。 一个微服务系统有很多个 服务, 当服务 F 因某些原因导致了服务的不可用,来自于用户的网络请求需要调用服务 F。 由 于服务 F 无响应,用户的请求都处于阻塞状态, 在高并发的场景下, 短时间内会导致服务器的 线程资源消耗殆尽。另外,依赖于服务 F 的其他的服务,例如服务 E、服务 G、服务 J, 也会等待服务 F 的响应,处于阻塞状态,导致这些服务的线程资源消耗殆尽,进而导致它们的 不可用,以及依赖于它们的服务的不可用,最后导致整个系统处于瘫痪的状态,也就是雪崩效应

因此,微服务引入了熔断器来解决这个问题,以 spring cloud 的 Hystrix 为例
1、进行资源隔离:出了问题的服务立马隔离,以免影响其他服务
2、服务降级:请求高过载会导致熔断器打开对服务降级
3、自我修复:熔断器打开一段时间后,会通过半打开状态去检测服务可用性,如果可用则恢复服务

3、服务配置的统一管理

服务多了,每个服务都有自己独立的配置文件,那么如何管理配置文件成了问题

1、配置服务:配置服务想配置中心拉取配置,然后通过消息总线向客户端广播配置
2、配置客户端:客户端从配置服务中拉取配置

4、微服务的特点

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

5、微服务的功能体现在哪些方面

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

猜你喜欢

转载自blog.csdn.net/qq_15071263/article/details/82799401