鹰眼:商城系统的守护者

鹰眼(Hawkeye),是商城自研的服务治理的整体解决方案。在商城部门成立之初,由于各方面原因导致商城和公司的技术体系不一致,很多公司提供的公共组件商城不能完全接入,但由于商城业务不断增加,服务应用也随之增多,为了更好的对这些服务应用进行管控,鹰眼也随之诞生。

一、鹰眼系统的演进

鹰眼的雏形

在商城业务发展的前期,服务应用不断增加,各服务之间相互依赖,商城部没有系统对这些服务进行有效的监控,一旦系统出现问题需要对相关依赖链上的所有服务应用进行逐一排查,在这种情况下,为了快速的对问题进行排查,决定使用openzipkin对服务链路进行监控,这样一来商城的服务应用得到了较好的监控。

鹰眼的诞生

随着业务复杂度的不断增加,单纯的zipkin链路已经无法满足需求,所以商城开发人员在此基础上进行了扩展。将链路监控,服务依赖管理,服务统计分析,流量管控,告警等功能加入到系统中,形成了初期的鹰眼。

鹰眼的部署实施

系统研发出来最主要的就是落地,商城这边主要采用了分阶段部署实施,首先选择非核心类业务系统进行接入,这一阶段主要是对系统进行试用和完善。待系统稳定之后接入主要业务系统(如商品、用户等),这一阶段主要是对系统容错的考验,鹰眼系统尽量降低对业务系统的入侵,降低风险。第三阶段是含核心类业务系统的全面接入。

二、鹰眼系统的介绍

商城鹰眼系统主要用于商城目前所有服务的全链路追踪和告警,该系统是基于spring cloud基础上自研的一套系统,主要分为客户端、HawkeyeServer、Hawkeye API、Hawkeye UI以及Hawkeye Alert。

客户端(应用)

客户端(应用)使用spring cloud sleuth将收集到的链路数据上报到Kafka中。

Hawkeye Server

Hawkeye Server从Kafka中消费链路数据,将数据处理之后存储到Elasticsearch中,Spark SQL从Elasticsearc中将数据统计后再存入Elasticsearch的统计结果索引中。

Hawkeye API

Hawkeye API 将链路数据以服务接口的方式提供出来。

Hawkeye UI

Hawkeye UI 通过调用API将数据以图表和详情的方式直观的展现出来,其中功能包含搜索、报表、预警管理等。

Hawkeye Alert

Hawkeye Alert 主要是通过用户设置的报警规则对超出预警范围的数据进行报警。

鹰眼系统功能

服务依赖关系

服务调用统计

服务排行榜

调用链查询

服务实时统计

服务离线统计

三、系统预览

作者:程诚

版权申明:本文为公众号原创,如需转载,请在公众号后台留言。

图片来源:网络

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181217A18JPM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券