11|微服务挑战:微服务治理体系与实践
郑建勋
你好,我是郑建勋。
上一节课,我们通过服务架构的演进过程,讲解了微服务的边界、拆分的原则以及服务间的通信。微服务架构是解决大型系统复杂性的一种选择,构建微服务本身并不是目的,我们的选择需要为我们的目标服务。
在构建微服务的过程中,不可避免地会遇到一些新的挑战。例如,分散服务的指标如何变得可观测?数据如何保证一致性?系统出现的问题如何降级止损?新的问题需要新的思维、新的手段来解决,这就要提到服务治理了。
这节课,我们就来分析一下微服务遇到的挑战,一起来看看应对这些挑战的最佳实践,了解复杂微服务架构的运作模式。
分布式日志与监控
在微服务架构中,由于大量的服务分散在各处,我们面临的第一个挑战就是要集中收集系统产生的日志等信息,这些信息通常是进一步完成监控、分析的基础。
目前业内通用的做法是借助一个 agent 服务(典型的工具有 Flume、Filebeat、Logstash、Scribe),监听并增量采集日志数据到消息中间件,下游计算引擎会实时处理数据,并把数据存储到对应的数据库做进一步处理。典型的日志采集与监控链路如下所示:
日志数据写入到 MQ 之后,下游流式处理引擎会按照预定的处理规则对数据进行清洗、统计,还可以对错误日志进行告警。经过最终处理的数据会存储到相应的数据库中。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文从分布式日志与监控、分布式Metric与监控、分布式追踪三个方面探讨了微服务治理体系与实践。在分布式日志与监控方面,文章介绍了日志数据的收集、清洗和存储,以及利用Elasticsearch和Kibana进行可视化处理的方法。在分布式Metric与监控方面,文章提到了需要聚合的各种服务信息,并强调了好的可视化能力对监控的重要性。最后,分布式追踪方面介绍了分布式链路追踪的重要性,以及Jaeger等开源组件的应用。通过这些内容,读者可以了解到微服务架构中面临的挑战以及相应的解决方案,为构建复杂微服务架构的运作模式提供了有益的参考。此外,文章还介绍了微服务测试的三种方法:单元测试、服务测试和端到端测试,以及微服务降级的策略:降级、限流、熔断、切流。最后,文章展示了典型的大型微服务架构,强调微服务架构的挑战和解决方法,以及对服务稳定性的重要性。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
《Go 进阶 · 分布式爬虫实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(6)
- 最新
- 精选
- 范飞扬请问老师服务的漂移是什么意思?它的英文是什么?
作者回复: 这里不一定有严格对应的英文,主要指的是将一个服务转移到另外的机器中,如果对应到k8s中,可以把它理解为migrate the pods to another node
2022-11-03归属地:北京23 - 烟消云散催更,哈哈哈
作者回复: copy that
2022-11-03归属地:北京2 - 陈东有些难度,还在建设框架阶段,实战在后半段,对吗?
作者回复: 15讲开始会进入实战
2022-11-08归属地:北京1 - RealmP50: 即中位数值。100个请求按照响应时间从小到大排列,位置为50的值,即为P50值。如果响应时间的P50值为200ms,代表我们有半数的用户响应耗时在200ms之内,有半数的用户响应耗时大于200ms。如果你觉得中位数值不够精确,那么可以使用P95和P99.9 P95: 响应耗时从小到大排列,顺序处于95%位置的值即为P95值。 还是采用上面那个例子,100个请求按照响应时间从小到大排列,位置为95的值,即为P95值。 我们假设该值为200ms,对95%的用户的响应耗时在200ms之内,只有5%的用户的响应耗时大于200ms,据此,我们掌握了更精确的服务响应耗时信息。 P99: 99%的请求耗时在xxx以内.2022-11-03归属地:浙江110
- brqi在发现问题时能够有降级的预案,通过降级、限流、熔断、切流等机制保证服务的隔离性和最小的故障损失2022-11-29归属地:广东
- 张小明。关于熔断个人有个问题,以hytrix-go为例,假设我们设置错误率30%阈值,在hystrix-go的代码里断路器close的条件是有一个成功了就会close掉断路器,这样似乎无法保护服务。2022-11-07归属地:北京
收起评论