随着微服务技术的快速发展,其在各个领域都形成了一系列事实标准,在 Kubernetes 和容器技术加持下,云原生微服务已经成为了主流解决方案。而 Go 语言作为云原生领域最受欢迎的开发语言,正被越来越多的企业作为微服务开发的首选语言,其中比较流行的包括 Go-micro、Go-zero、Dubbo-go 等。作为 Dubbo 微服务体系中多语言实现的一员,在 2022 年 Dubbo-go 以微服务领跑者的角色积极拥抱云原生标准,探索了 Proxyless Mesh 形态,配合适配 Pixiu 云原生网关,形成了完善的 Dubbo-go 微服务生态矩阵。 以 Dubbo-go 为中心的微服务体系在多个知名企业中成功落地和实践,框架的稳定性在实际场景下经受住了考验。截止今年已有 60+ 家企业在我们的用户列表中登记,其中较为典型案例请参考文章《小米电商 Apache Dubbo-go 微服务实践》。小米电商选用了 Dubbo-go + Nacos + sidecar + etcd + mirpc 为核心的微服务体系,除了看中了 Dubbo-go 的互联互通和服务治理能力
当周末躺在被窝里,点外卖时;双 11 的零点,疯狂提交订单时;假期和基友激情开黑,五杀超神…在这个精彩纷呈的互联网世界里,这些应用背后又隐藏着什么?每一次点击行为在 IT 世界里会流经哪些节点,调用哪些服务,带来哪些变化?这一切庞杂且精密,超出了人力探索的边界,而分布式链路追踪就是追溯请求在 IT 系统间流转路径与状态的一门技术。接下来,让我们通过对分布式链路追踪的来了解这个 IT 世界! 说到分布式链路追踪,就绕不开分布式系统与微服务的兴起。早期 IT 系统非常简单,几乎所有程序都运行在同一个节点,互相之间也没有什么依赖。但随着硬件技术突飞猛进,硬件成本大幅下降,软件复杂度却越来越高。单一系统性能无法满足复杂的数据计算任务,而软件逻辑的复杂性也导致维护成本大幅上升。另外,单节点的可靠性也难以保障,不可避免的会偶尔出现宕机等行为,影响软件的可用性。“性能、可维护性和可用性”这三大因素促使了分布式系统与微服务的诞生。
在日常生活中,我们可能都经历过以下场景:去医院看病就诊,但预约页面迟迟无法打开;新款手机发布日促销秒杀,下单页面一直卡住转菊花;游戏大版本更新,在线人数过多,导致人物一直在“漂移”。这些问题令产品体验变得非常差,有耐心的同学还会吐槽几句,没耐心的同学早已转身离开。试想一下,作为该系统开发/运维人员,又该如何避免此类问题发生,或者快速定位止损?
在前面文章里面,我们介绍了单链路的筛选与轨迹回溯,是从单次请求的视角来分析问题,类似查询某个快递订单的物流轨迹。但单次请求无法直观反映应用或接口整体服务状态,经常会由于网络抖动、宿主机 GC 等原因出现偶发性、不可控的随机离群点。当一个问题发生时,应用负责人或稳定性负责人需要首先判断问题的实际影响面,从而决定下一步应急处理动作。因此,我们需要综合一段时间内所有链路进行统计分析,这就好比我们评估某个物流中转站点效率是否合理,不能只看某一个订单,而要看一段时间内所有订单平均中转时间与出错率。 统计分析是我们观察、应用分布式链路追踪技术的重要手段。我们既可以根据不同场景要求进行实时的后聚合分析,也可以将常用的分析语句固化成规则生成预聚合指标,实现常态化监控与告警。相对于链路多维筛选,统计分析需要明确分析对象与聚合维度。其中,分析对象决定了我们对哪些指标进行聚合操作,比如请求量、耗时或错误率。而聚合维度决定了我们对哪些特征进行统计对比,比如不同应用、接口、IP、用户类型的统计量对比。接下来,我们先了解下分析对象和聚合维度的具体概念,再介绍实时分析与监控告警的具体用法。
一线技术人每天都面临写需求、改缺陷、查工单,有时候不妨跳出来以一个旁观者的身份看一看自己。我们面临的业务是变化的,但做事的方法是有共性的,如何沉淀这些共性的做事方法才是做业务需求带来的最大成长。
随着微服务技术的快速发展,其在各个领域都形成了一系列事实标准,在 Kubernetes 和容器技术加持下,云原生微服务已经成为了主流解决方案。而 Go 语言作为云原生领域最受欢迎的开发语言,正被越来越多的企业作为微服务开发的首选语言,其中比较流行的包括 Go-micro、Go-zero、Dubbo-go 等。作为 Dubbo 微服务体系中多语言实现的一员,在 2022 年 Dubbo-go 以微服务领跑者的角色积极拥抱云原生标准,探索了 Proxyless Mesh 形态,配合适配 Pixiu 云原生网关,形成了完善的 Dubbo-go 微服务生态矩阵。 以 Dubbo-go 为中心的微服务体系在多个知名企业中成功落地和实践,框架的稳定性在实际场景下经受住了考验。截止今年已有 60+ 家企业在我们的用户列表中登记,其中较为典型案例请参考文章《小米电商 Apache Dubbo-go 微服务实践》。小米电商选用了 Dubbo-go + Nacos + sidecar + etcd + mirpc 为核心的微服务体系