C语言开发系统服务,编程语言的微服务治理与统计分析

引言:

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

49d4c96550c86053ab3f11f866d42f42.png

目录:

1.EOS微服务平台简介

2.微服务监控统计

3.微服务治理

1.EOS微服务平台简介

4244d05981082574662c5dd45b4ca0e2.png3c6d4a3872fd5119a0d220a460f3bcdb.png

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

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

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

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

(5)应用实例是平台下实际部署应用的进程,应用实例属于某一个应用实例组。

2.微服务监控统计

(1)应用监控

108e07992cbe47c4cfc4ec0573543167.png

通过应用监控可以查看一个系统内应用之间的调用关系。单个应用的平均响应时间、平均吞吐以及慢的端点访问。

(2)实例监控

06e124b1cc349057f2f5b9e48c9a1403.pngdb634d7af5f12a65f44efb9b3f7e957d.png

通过实例监控可以查看一个实例的运行情况包括:平均吞吐、平均响应时间、CPU、内存以及SQL的执行。

(3)请求监控

16ecc20914fd3118bf0bf6865a34c738.pngd06a057aa41b03e8ad0310248d87654a.png

通过请求监控可以查看一个请求是成功还是错误,它的响应时间,以及它的调用链路:经过了几个微服务,在每个微服务内的耗时是什么情况。

(4)API调用统计

a1128e0d8f6907605110edfe29104ac6.png

API调用统计可以按照应用、实例组、实例、API来统计汇总请求信息,包括:响应状态码,请求数,最小响应时间,最大响应时间,平均响应时间以及响应时间总和。支持按应用、实例组、实例、API、时间段等条件进行查询以及按请求数和响应时间排序。

(5)应用日志查看

f634255a53fb4954c9ce77bdc58085d2.png

应用日志汇聚多个应用实例的日志,进行统一查看。查看时支持按实例以及时间段进行查询过滤,应用日志自带traceId, spanId这些请求追踪号。

3.微服务治理

(1)实例上下线

3b6627678eaac583b7d44afe6153de19.png

通过设置实例的状态,使得实例不会被其他应用调用。这个是在客户端实现,客户端是通过ribbon做负载均衡,ribbon会过滤掉状态为OUT_OF_SERVICE的服务提供者实例。

(2)API上下线

f698dd34d33afc1b5b7f605312380475.png

通过设置API的状态,使得API不会被其他应用调用。这个是在服务端实现,通过在服务端增加Filter拦截器,对已下线的API的请求访问,返回403的状态码。

(3)熔断

03581e78414aac2146836e84a089952c.png49b79cb03078ddb26583f6ee9c151171.png

EOS的熔断实现使用的是Hystrix,通过在页面配置熔断对象以及触发条件来设置断路器。熔断对象对应的是Hystrix的CommandKey,触发条件包括:

手工熔断(强制打开熔断器)

取消熔断(强制关闭熔断器)

自动熔断(规定时间内请求数超过阈值并且失败率达到阈值才会触发熔断, 熔断后指定时间内尝试取消熔断)

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

(4)限流

f61065c6a0dd41d7409d966a4078d39a.png

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

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

(5)负载均衡

50b687cf75c38f42d05fde2d28b6e233.png

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

快速失败(Failfast):什么也不做,直接抛出异常

失败自动切换(Failover):尝试访问新的实例,按指定次数尝试

失败原地重试(Failback):尝试访问同一实例,按指定次数尝试

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

JDk是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值