服务治理

作者: carlSQ | 来源:发表于2018-02-12 20:18 被阅读92次

引言

随着越来越多的公司应用服务化,总结下这段时间了解到服务化相关的东西,这里不谈服务到底是SOA,还是微服务,笔者在网上搜了一些相关资料,看得很是懵逼,所以这里只谈谈笔者在项目中理解到的一些东西。


image.png

服务化架构图

image.png

API Gateway

Gateway 层主要给用户提供统一入口、API配置管理、分流、鉴权、服务监控、协议转换。

服务化治理

image.png

服务注册发现

服务在启动的时候会将服务名,集群名,机器ip,端口号等信息 注册到服务治理中心。
消费方在调用服务方提供接口时,会向服务治理中心请求服务方的集群信息,并且订阅集群的变更信息,当集群信息变化时,立即同步给消费方。

image.png

服务配置

在服务治理层改变配置之后,变更会同步给服务。


image.png

链路追踪

服务化之后,服务会有成千上万个,一个接口可能涉及到好几个服务,中间件,调用关系复杂,怎么样让问题的追踪和定位会变得比较方便,这时候我们就需要一个链路追踪工具。链路追踪工具的实现,著名的有Google Dapper

image.png

负载均衡

consumer服务Client SDK 会内置一些负载均衡策略,目前在项目中内置了轮询、权重轮询、最少连接均衡策略,但是最少连接分流并不是很均衡。一致性hash负载均衡可以内置,在有些时候是可以提高本地内存缓存命中率。

服务健康检查

目前项目中go client实现的健康检查就比较粗暴,只会在拿到一个连接的时候会去调用下provider的ping 接口(接口定义规范)。在java client sdk 中粒度为依赖服务的实例级别的。在应用收到新增服务实例的消息后,会启动一个此实例的后台健康检查线程。删除服务实例的消息后,会停止并销毁此实例对应的健康检查线程。健康检查在线程中循环执行,间隔为0.5s。连续失败3次,视为服务死亡。成功1次,即视为服务存活。

服务熔断

服务熔断是一种服务自我保护机制。在客户端实现,粒度为方法级别。

1. 统计策略
    每次请求时统计当前时间点前一定的阈值秒内请求的错误率。若满足以下两点:
    请求总数 > 一定的阈值;
    请求的错误率 = (非业务异常请求数+超时请求数)/总的请求数 > 一定的阈值。
    就会触发熔断,不再向服务端发送请求。     
2. 恢复策略
    恢复发生在熔断保护期之后最小阈值。
  1. 如果有请求到来,则放行一条请求用于测试服务端提供服务的质量(其他并发 来的请求还是处于熔断中。

  2. 如果这条测试的请求,正常完成调用,到熔断保护期之后最大阈值之前会随机性的通过一些流量,到最大阈值之后恢复正常;否则,继续1。

3. 熔断期间的行为
    熔断之后,client的请求会抛出api 异常。

总结

服务治理设计到很多东西和细节,笔者只是简单的总结下,还有很多东西没有列出来,例如授权、限流、降级、超时,服务端内部状态查询等。

相关文章

  • EUREKA服务治理

    1、服务治理三个核心点、服务提供者、服务消费者、服务注册中心 结合Ribbon 服务治理图 服务治理时序图 服务提...

  • Spring Cloud-1.服务治理

    服务治理 服务治理用来实现各个微服务示例的自动化注册与发现。 服务治理围绕“服务注册”和“服务发现”机制来完成对微...

  • springboot-服务治理

    一、什么是服务治理 由于微服务数量太多导致维护成本巨大,服务治理就是来解决这个问题。服务治理就是让服务子维护,微服...

  • 一、springCloud注册中心

    一、注册中心的说明 一 Eureka服务治理体系 1.1 服务治理 服务治理是微服务架构中最为核心和基础的模块,它...

  • 三、Eureka服务中心详解

    一、Eureka服务治理体系 1.1 服务治理 服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服...

  • 服务治理SpringCloud Eureka

    服务治理SpringCloud Eureka 什么是服务治理在传统rpc远程调用中,服务与服务依赖关系,管理比较复...

  • 服务治理

    引言 随着越来越多的公司应用服务化,总结下这段时间了解到服务化相关的东西,这里不谈服务到底是SOA,还是微服务,笔...

  • 服务治理

    服务治理是个比较有意思的事情,更多的人将服务治理等同于分布式服务框架、也有拿着微服务、能力开放之类的内容。 还好他...

  • 服务治理

    我们的线上服务会把单个idc的集群划分出一部分标记为小流量,小流量内的服务调用会被限制在小流量内,这样的话就会出现...

  • 服务治理

    服务治理包括服务发现、负载均衡、限流、熔断、超时、重试、服务追踪等。 服务发现 服务发现是指使用注册中心记录分布式...

网友评论

  • moonCoder:一年就这么厉害了,自惭形秽

本文标题:服务治理

本文链接:https://www.haomeiwen.com/subject/xugazxtx.html