微服务治理与统计分析

引言:

微服务架构下,服务拆得越细,服务的粒度越小,可组装性就越好;与之相对的服务之间的调用关系就会变复杂,为了保证服务更好的运行,需要对这些服务进行监控和管理。本文大家介绍下EOS微服务平台如果对微服务进行日志查看、API调用统计、限流、熔断、负载均衡的管理。

目录:

1.EOS微服务平台简介

2.微服务监控统计

3.微服务治理

1.EOS微服务平台简介

1、域是平台中一组系统的统称,通常为一组系统定义成有业务含义的域,比如信贷域。一个域有多个系统,一个系统只能属于一个域。一个域下可以日志中心、注册中心、配置中心、APM监控中心已经断路器监控中心

2、系统是平台中一组应用的统称,通常为一组应用定义成有业务含义的系统,比如信贷系统。一个系统有多个应用,一个应用只能属于一个系统。

3、应用(微服务应用)是平台开发出的基本部署单元,一个应用只能属于一个系统,一个应用有1到多个应用实例组。

4、应用实例组是平台中应用的实例分组,每个应用可以有1到多个应用实例分组,不同的应用实例组拥有独立的应用配置与管理能力,不同的应用实例组之间可以通过流控策略,实现应用的灰度发布能力。应用实例组下面有多个应用实例。

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,通过在页面配置熔断对象以及触发条件来设置断路器。熔断对象对应的是Hystrix的CommandKey,触发条件包括:

  • 手工熔断(强制打开熔断器)
  • 取消熔断(强制关闭熔断器)
  • 自动熔断(规定时间内请求数超过阈值并且失败率达到阈值才会触发熔断, 熔断后指定时间内尝试取消熔断)

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

4、限流

EOS现在的限流是对于每个应用实例独立计算,如设置每秒访问10次,一个应用有3个实例,则这3个实例每个都允许每秒访问10次。限流是通过在服务端的Filter里使用Guava的RateLimiter实现。

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

5、负载均衡

EOS的负载均衡使用的是Ribbon实现,可以针对每个目标客户端设置规则类型,支持:随机、循环、自定义等;另外还支持容错,容错是指当对某个实例的调用超时后的补救措施:

  • 快速失败(Failfast):什么也不做,直接抛出异常
  • 失败自动切换(Failover):尝试访问新的实例,按指定次数尝试
  • 失败原地重试(Failback):尝试访问同一实例,按指定次数尝试

这个配置通过写入到配置中心及时下放到各个应用,实现动态配置能力。

以上向大家分享了普元EOS 8 微服务平台里治理与统计分析,希望对大家有所帮助。不足之处,也请多多指正。

关于作者:王文斌,普元高级软件工程师,开源技术爱好者,容器技术专家,曾参与浦东发展银行BPM项目、银联PAASV1等项目。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。

(0)

相关推荐

  • 爱奇艺微服务标准技术架构实践「转」

    原文地址:https://www.infoq.cn/article/AJj3lKQyaKVeA08Bgj9e 背景 为数以亿计的用户提供优质的视频服务的爱奇艺技术产品团队,为了适应业务的快速迭代和创新 ...

  • 建设微服务API网关的一些实践

    随着这些年微服务的流行,API网关已经成为微服务架构中不可或缺的一环.一方面它承担着服务对外的唯一门户,一方面它提取了许多应用的共性功能. 整体架构 我们的API网关目前的架构如下图所示,可以看到AP ...

  • .Net Core with 微服务 - 架构图

    dotNET跨平台 今天 以下文章来源于馒哥不光会玩当耐特 ,作者MJZHOU上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务).介绍了微服务的来龙去脉,一些基 ...

  • 微服务架构师的道、法、术

    作者:李鑫 | 天弘基金移动直销平台技术负责人 出品:百林哲 导语: 这几年微服务的热度持续居高不下,企业纷纷向微服务架构转型.但微服务架构会对整个研发体系,包括开发.运维.团队协同.组织架构都带来冲 ...

  • 基于ESB和API网关的服务运行监控分析和实践

    今天准备谈下基于ESB或API网关的服务运行监控分析,对于服务运行分析和监控本身也属于服务治理或微服务治理的一个关键内容. 为何基于ESB或API网关? 当所有的接口服务和API接入到ESB或API网 ...

  • 微服务治理平台化探索

    一.摘要 好大夫在线已经收录了超过69万医生信息,其中有24万医生在平台上实名注册,服务用户累计6700万.随着业务快速发展,伴随而来的系统复杂性和多样性也越来越多,我们发现原先的服务架构已经跟不上业 ...

  • SpringCloud微服务架构实战:微服务治理

    微服务治理 Spring Cloud 工具套件为微服务治理提供了全面的技术支持.这些治理工具主要包括服务的注册与发现.负载均衡管理.动态路由.服务降级和故障转移.链路跟踪.服务监控等.微服务治理的主要 ...

  • 面对微服务的N种坑,我们需要构建综合的微服务治理能力

    这几年微服务的热度持续居高不下,企业纷纷向微服务架构转型.但在微服务落地时,大家更多是在技术架构层面发力,以为所谓的微服务化就是简单的引入一套微服务框架,却忽略了微服务架构带来的影响是全方位的,它会对 ...

  • 从SOA治理到微服务治理,对整体框架构建的再思考

    今天谈下微服务治理方面的内容,对于微服务治理是整个企业微服务架构转型和微服务建设实施中一个关键内容,很多企业在转型过程中各自技术工具虽然采用了最新的微服务开发框架环境,治理平台等,但是实际上微服务整个 ...

  • 分布式事务+DDD+负载均衡+服务治理已撸!微服务不就这点事?

    Go语言中文网 今天 最近有看到"微服务,分久必合.合久必分"的言论,我同意,微服务不是架构演变的终点,细说还有Serverless.FaaS等方向.但纠结要不要拆分是没有必要的, ...

  • 分布式事务 DDD 负载均衡 服务治理,微服务搞懂这些就够了?

    最近有看到"微服务,分久必合.合久必分"的言论,我同意,微服务不是架构演变的终点,细说还有Serverless.FaaS等方向.但纠结要不要拆分是没有必要的,拆往往是随着业务变化不 ...

  • 微服务,大作为——禅城区探索社区治理和服务创新新路径

    (记者:刘军 陈惠婷报道)随着城市化的不断推进和深入,近年我国在社区治理领域,正面临越发严峻的挑战.比如城市人口密度不断上升,社区在公共服务供应方面的压力不断增大:城市人口的碎片化和异质化,不仅让居民 ...

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...

  • 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...