当前位置: 首页 > 科技观察

微服务治理与统计分析

时间:2023-03-16 00:23:24 科技观察

介绍:微服务架构下,服务越细,服务的粒度越小,可组装性越好;对面服务之间的调用关系会变得复杂,为了保证服务更好的运行,需要对这些服务进行监控和管理。本文将介绍EOS微服务平台如何管理日志查看、API调用统计、限流、熔断、负载均衡等微服务。内容:1.EOS微服务平台简介2.微服务监控与统计3.微服务治理1.EOS微服务平台简介(1)域是平台中一组系统的统称,通常定义为一组系统具有商业意义的域,例如信用域。一个域有多个系统,一个系统只能属于一个域。日志中心、注册中心、配置中心、APM监控中心、断路器监控中心都可以包含在一个域中(2)系统是平台中一组应用的统称,通常定义为具有业务意义的系统对于一组应用程序,例如信用系统。一个系统有多个应用,一个应用只能属于一个系统。(3)Application(微服务应用)是平台开发的基本部署单元。一个应用只能属于一个系统,一个应用可以有一个或多个应用实例组。(4)应用实例组是平台中的应用实例组。每个应用程序可以有一个或多个应用程序实例组。不同的应用实例组具有独立的应用配置和管理能力。不同的应用实例组可以通过流控策略实现应用的灰度发布能力。应用实例组下有多个应用实例。(5)应用实例是在平台下实际部署应用的过程,应用实例属于某个应用实例组。2.微服务监控统计(1)应用监控通过应用监控,可以查看一个系统中应用之间的调用关系。单个应用程序的平均响应时间、平均吞吐量和缓慢的端点访问。(2)实例监控通过实例监控,可以查看实例的运行状态,包括:平均吞吐量、平均响应时间、CPU、内存、SQL执行情况。(3)请求监控通过请求监控,可以查看一个请求是成功还是错误,它的响应时间,它的调用链接:经过几个微服务后,每个微服务的耗时情况如何。(4)API调用统计API调用统计可以按应用、实例组、实例、API收集汇总请求信息,包括:响应状态码、请求次数、最短响应时间、最长响应时间、平均响应时间、总计响应时间。支持按应用、实例组、实例、API、时间段等条件查询,支持按请求数、响应时间排序。(5)查看应用日志应用日志聚合了多个应用实例的日志,统一查看。查看时,支持按实例、时间段查询和过滤。应用程序日志带有traceId、spanId和其他请求跟踪号。3.微服务治理(1)实例下线,通过设置实例的状态,使实例不会被其他应用程序调用。这是在客户端实现的。客户端使用ribbon做负载均衡,ribbon会过滤掉状态为OUT_OF_SERVICE的服务提供者实例。(2)API下线,通过设置API的状态,使API不会被其他应用程序调用。这是在服务器端实现的。通过在服务器端添加Filter拦截器,访问离线API的请求返回403状态码。(3)熔断器EOS的熔断器实现使用Hystrix,通过在页面配置熔断器对象和触发条件来设置熔断器。fuse对象对应Hystrix的CommandKey。触发条件包括:手动熔断(强行打开熔断)取消熔断(强行关闭熔断)自动熔断(规定时间内请求次数超过阈值且失败率达到阈值触发熔断,熔断后指定时间,尽量取消熔断)该配置写入配置中心,及时分发到各个应用,实现动态配置能力。(4)限流EOS的限流是针对每个应用实例独立计算的。比如设置为每秒访问10次,一个应用有3个实例,则这3个实例每一个都允许每秒访问10次。在服务端的过滤器中使用Guava的RateLimiter实现限流。该配置写入配置中心,并及时分发到各个应用,实现动态配置能力。(5)负载均衡EOS的负载均衡使用Ribbon实现,可以为每个目标客户端设置规则类型,支持:随机、循环、自定义等;另外,它还支持容错,指的是当某个实例调用超时后的补救措施:原地重试(Failback):尝试访问同一个实例,对该配置进行指定次数的尝试,并通过写入配置中心的方式及时分发给各个应用,实现动态配置能力。以上为大家分享了朴元EOS8微服务平台的治理和统计分析,希望对大家有所帮助。如有不足之处,还请多多指正。