泰州| 西峰| 西和| 林芝镇| 嘉荫| 宁德| 南山| 黔西| 日照| 七台河| 淄川| 西盟| 马鞍山| 定结| 西昌| 龙海| 兴业| 通道| 河北| 武陟| 东明| 新巴尔虎左旗| 三穗| 竹山| 东方| 金沙| 黄山市| 寻甸| 皋兰| 巨鹿| 鸡泽| 黎川| 桓台| 大渡口| 鹤岗| 玉田| 樟树| 通许| 崂山| 永昌| 巨野| 洋山港| 通化市| 石河子| 桂林| 南昌市| 成都| 互助| 邻水| 五华| 大洼| 北宁| 赤城| 安义| 隆化| 济宁| 道孚| 奉贤| 鄂托克旗| 错那| 思南| 大理| 铜鼓| 龙泉驿| 浪卡子| 大丰| 内丘| 永修| 大安| 古浪| 申扎| 得荣| 济阳| 户县| 衡水| 革吉| 博鳌| 阿克塞| 拜城| 鄂伦春自治旗| 乐昌| 甘泉| 达县| 五常| 天祝| 宁安| 察哈尔右翼前旗| 蓝山| 西宁| 东川| 无为| 丰宁| 靖江| 台北市| 巴南| 皋兰| 津市| 马尔康| 西峡| 铜山| 囊谦| 娄底| 大同市| 凤凰| 安溪| 特克斯| 通河| 玛多| 阜城| 田阳| 临夏市| 勃利| 临西| 石龙| 镇巴| 定日| 贺兰| 弥勒| 汕头| 东西湖| 库伦旗| 宿松| 永平| 宝兴| 北辰| 屯昌| 黔江| 蛟河| 抚顺市| 措美| 温江| 金堂| 庄浪| 永城| 基隆| 石棉| 张掖| 海原| 寿县| 巴林右旗| 阳江| 江苏| 景谷| 临清| 灵宝| 宁夏| 旅顺口| 呼图壁| 勐腊| 冷水江| 南安| 开原| 湖口| 大田| 榆树| 乾安| 邗江| 台北县| 茂县| 鄂州| 平江| 鱼台| 贵州| 祁县| 西青| 新密| 资阳| 额济纳旗| 北票| 大方| 甘孜| 吉利| 密云| 仁化| 文登| 南漳| 淮滨| 于都| 马龙| 赤城| 祁门| 鄂托克旗| 肇州| 茂名| 岳西| 抚松| 新巴尔虎左旗| 万源| 固安| 黄岛| 锦屏| 彭水| 清徐| 宣威| 印台| 紫阳| 漯河| 辽源| 丽江| 海伦| 德清| 枝江| 清流| 宁国| 城步| 弥渡| 浮梁| 襄垣| 汉阳| 蚌埠| 夹江| 沁县| 湘东| 大名| 丘北| 威宁| 通山| 镇坪| 正安| 崇礼| 阿拉尔| 环江| 合肥| 长兴| 涠洲岛| 宁陵| 剑阁| 白山| 屏东| 凤庆| 洋山港| 南岳| 北流| 南涧| 乌拉特前旗| 天祝| 大化| 惠安| 荔浦| 南溪| 桃江| 新巴尔虎左旗| 麻山| 蓬安| 双牌| 宿迁| 禄劝| 揭东| 噶尔| 薛城| 千阳| 红岗| 北票| 曲麻莱| 轮台| 延庆| 黄岩| 施秉| 永登| 奉新| 康县| 开封市| 胶南| 蒙城| 葡京网上娱乐
 
 
当前位置:首页 > 养猪技术 > 综合养猪 > 正文

「十年阿里架构师之路」信用卡在微服务架构下的监控平台架构实践

   转载 发布时间:2019-02-21 19:30:50   来源:Java大将军007   举报
【导读】一、背景介绍51 信用卡的技术架构是基于 Spring Cloud 所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战。监控团队在开源 vs 自研,灵活 vs 稳定等问题上需要不断做出权衡,以应对...

一、背景介绍

标签:再向 澳门百家乐 汨罗县

51 信用卡的技术架构是基于 Spring Cloud 所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战。监控团队在开源 vs 自研,灵活 vs 稳定等问题上需要不断做出权衡,以应对飞速发展的需求。本次将会分享我们在微服务下的白盒监控思考,以及如何将时下社区流行的 Spring Cloud,K8S,Prometheus 等开源技术在企业落地。

这次主要讲的是关于微服务的监控,微服务看起来很美话,但实践起来却有很多坑,希望这次的分享能给大家一些收获或者思考。

二、传统的监控分层

传统的监控一般会将监控分层,比如我们常用的分层方式是将监控分成基础设施、系统、应用、业务和用户端这几层,分完层后将每层的监控做到位。

而在传统的监控里,zabbix 是最常用的开源软件,zabbix 的优点主要是成熟可靠,社区非常强大,几乎你的需求,社区都有一套对应的解决方案,但 zabbix 的缺点也很明显,就是太难用,很多监控配置加起来成本很高,甚至很多运维用了很久的 zabbix,还没学会怎么配置 HTTP 监控,这在应用较少的时候,还不是很明显的问题,但是到了微服务时代,这个问题就暴露得非常明显了,而且 zabbix 以机器为维度的监控也无法适用微服务时代的理念。

三、以服务为维度的监控

微服务监控比起传统应用的监控,最明显的改变就是视角的改变,我们把监控从分层 + 机器的视角转换成以服务为中心的视角,在微服务的视角下,我们的监控可以分为指标监控、链路监控和日志监控,在开源社区,这些监控也都有对应的解决方案,比如指标监控有 prometheus、influxdb,链路监控有 zipkin、pinpoint,日志则有 elk。

在 51 信用卡发展起步的时候,我们也同样使用这些开源方案来解决我们的监控问题,但当我们业务快速发展的时候,我们开始不断碰到监控上的挑战,其中有部分是互联网金融特有的,另一部分是微服务所带给我们的。

微服务监控有什么特点?用一句话概括就是服务特别多,服务间的调用也变得非常复杂。我们其实是微服务的受害者,其实业内很多人做的架构只是服务化,并不够「微」,而我们做的比较彻底,我们线上很多服务都只有一个 API,但这样造成线上指标非常多,告警也非常多,读和写的压力都非常大。

互联网金融是一个跟钱息息相关的行业,所以互联网金融对监控也有自己的要求。首先是对故障的容忍程度很低,监控的有效性需要被反复确认,其次是对监控的覆盖度,黑盒监控在互联网金融里很难行得通,白盒监控变得越来越重要,开发们迫切需要对自己的应用有全面的了解。然后是对告警的及时以及快速诊断有更高的需求,告警以及诊断信息在 10 分钟内发出与 5 分钟内发出有很大的差别,举个例子,如果有个活动有个漏洞被黑产行业抓住,如果能早一分钟确定问题关闭后门,就能给公司挽回巨大的损失。

四、Prometheus 下的监控

51 信用卡在早期也同样使用 Prometheus,其实 Prometheus 是个很棒的产品,白盒监控的理念也很先进,自带告警以及 PromQL,稍微学习之后便能上手,作为 CNCF 的项目与 K8S 等开源产品结合得也很好。

在随着服务的增长,我们开始不断地踩坑,首先突出的问题就是 Prometheus 没有现成的分布式方案,性能遇到单机瓶颈之后只能手动给业务划分集群并且之间的数据不能共享,然后拉模式在兼容多数据源上也显得力不从心,比如我们有场景需要指定精确的时间,还有比如我们有些数据是从日志来的或是从 Kafka 来的,这些都没有现成的方案。

微服务的指标增长其实比想像得要快很多,因为微服务架构下,我们总是迫切想要把应用的每个细节都搞清楚,比如主机指标、虚拟机指标、容器指标、应用性能指标、应用间调用指标、日志指标以及自定义的业务指标等等,甚至在这些指标下,我们还会给指标打上更多的标签,比如是哪个进程,哪个机房,我们大致算过一笔账,一个服务即使开发什么都不做,他通过基础框架就自带了 5000 个指标。

我们内部也讨论过为什么指标会这么多,能不能把一些指标去掉,但很快我们就否决了去指标的想法,我们觉得业界的趋势是白盒监控会变得越来越重要,APM 的概念会变得越来越重要,devops 会和白盒监控不断发生化学反应,变成一种潮流。

而在 51 信用卡,我们是怎么解决的呢,其实很简单,用三个字概况就是「平台化」,平台化的好处很多,最直观的好处就是提供了一个统一的平台去处理监控问题,并给开发带来了统一的使用体验。

五、基于 Prometheus 的架构改进

我们首先要解决的问题是如何构建对上层统一的存储,一开始我们基于 Prometheus 的生态做了一些架构改进,将底层换成分布式的列式存储 Cassandra,并开发了推送服务和拉取服务来兼容原先的数据模型,在上层,我们开发了兼容 PromQL 的界面提供给开发使用。

但很快,我们就碰到了新的问题。

首先是 labels 的匹配效率问题,当指标名相同的时候,由于 label 是自由组合的,在匹配部分 label 的时候,我们需要先将 labels 的元数据全部读出来,然后进行过滤,这样的效率会显得很低,我们的做法是在 label 元数据上面加上倒排索引,因为我们是分布式方案,倒排索引本身也需要分布式,所以我们直接使用 ES 来帮我们构建元数据。

第二个问题是预聚合,比如我们只想看 API 的整体访问量,但做这个查询的时候,我们会在底层读到 4 份数据,然后再聚合再显示出来,这样无疑也是一种浪费。我们的做法是引入预聚合机制,在纵向,我们需要舍弃维度,在横向,我们需要聚合时间轴。对于分布式而言,预聚合会显得比较麻烦,因为我们需要考虑的东西比较多,比如需要在内存里完成,需要合理将数据分批分配到不同机器,需要有一个窗口机制保证数据的及时有效又高性能。业内常用的做法是引入一个 Storm 这样的流式计算或者 Spark Streaming 这样的微批计算,然后将计算完的结果推入缓存或者内存供告警来使用。

第三个问题是 Metric 的长度,因为在列式存储的底层,我们直接借鉴 Kairosdb 的存储格式,兼容 UTF8 的 Metric 而直接讲 Metric 转换成二进制存储在数据库里,如果指标很少,这个问题不大,但如果指标非常多,这会造成底层存储的存储浪费,而且影响索引的效率,这个问题的解决办法也很简单,直接引入一个 Bitmap 机制就可以解决。

第四个问题是维度重复,比如我们有三个指标,这三个指标的维度都一样,但这三个指标完全不同,代表不同的值,但存储在数据库的时候,它会占用三个 series 的空间,查找的时候也不够高效,因为往往三个指标会同时查询同时展示。这个解决办法是将数据库里原本的 value 定义成多类型支持,不只是双精度浮点或是整型,增加 Map 的支持类型,并在数据库的上层做兼容。

当初我们在解决这些问题的时候,我们发现社区已经有一个比较好的解决方案了,就是 Druid,不是阿里那个数据库连接池 Druid,而是 druid.io。它比较好地满足了 Bitmap、预聚合、复合类型、倒排索引、冷热数据这些需求。

我们将拉服务和收服务做了进一步的改进,可以自动将数据做转换,兼容原先数据模型的同时,将数据也投递一份到 Druid 里。

至此我们基本完成了一个能够满足需求的存储架构改进。

最后限于时间关系,和大家分享两个非常有用又容易实践的告警智能诊断:

第一个是和日志监控的联动,当一个告警发生的时候,我们以时间、服务为维度去匹配 ERROR 或是 Exception 日志,并以 simhash 之类的相似算法排序日志,就会非常快速地找到问题的直接原因,不一定是 Root Cause,但告警的时候如果附上这个日志,对开发排查问题的效率会有很大的帮助。

第二个是和链路监控的联动,当一个告警发生的时候,我们同样以时间、服务查询链路监控,并从日志监控里排名靠前的日志提取 trace id 后进行过滤,能很快发现故障的关联原因,这同样不一定是 Root Cause(很有可能是),但同样对开发排查问题很有帮助。

六、未来

最后展望一下未来,我们会继续在 3 个方向发力。

第一个是更好的底层存储,Cassandra 毕竟是一个通用的列式数据库,对时序数据来说,有很多不好优化的地方,我们期望能够自研一个时序数据库来满足我们的业务需求。

第二个是智能化的监控和告警,运用合适的算法并加上机器学习或是深度学习,探索出无阈值的告警体系,并自动分析出告警之间的关联关系,给出根因。

第三个是 APM 和监控的更紧密结合,将链路监控、日志监控和指标监控直接合并,更深度地诊断系统,系统没有无法探查的秘密。

点击这里获取更多资源

点击这里获取更多资源

免责申明:本栏目所发资料信息部分来自网络,仅供大家学习、交流。我们尊重原创作者和单位,支持正版。若本文侵犯了您的权益,请直接点击提交联系我们,立刻删除!
 
相关资讯
 
相关图文
 
图文热点
 

 

栏目推荐

跟小米后的首发,美图全新V7手机发布

农村创业:看懂这些策略,让你年入百万

「十年阿里架构师之路」信用卡在微服务架构下的监控平台架构实践

Word表格的编辑技巧

Word技巧大全,标书制作靠它准没错!

东莞新手妈妈注意了 申请生育津贴有“有效期”

 
 
盖洋镇 太古风情街 白帽胡同 花茶 前儒林庄
宣州区 厂招待所 江苏省丰县实验小学 十里牌村 袁家庄
百家乐技巧 百家乐技巧 澳门葡京赌场 澳门葡京赌场 澳门葡京官网
澳门永利赌场 澳门永利线上娱乐 葡京网上赌场 百家乐破解 澳门葡京赌场
葡京网上赌场 葡京国际 澳门葡京官网 澳门葡京赌场 澳门永利赌场
澳门永利官网 澳门威尼斯人官网 澳门威尼斯人官网 澳门永利备用网址 葡京国际
老虎机定位器 澳门大富豪网址 现金三公注册网址 牛牛游戏下载 现金骰宝 年度十大电子游戏 大小点游戏 玩什么游戏可以挣钱 电子游戏厅 方法奇葩赌博网 巴黎人网站 pt电子游戏哪个最会爆 澳门巴黎人游戏 澳门龙虎斗注册 澳门大富豪网站 押大小排行 真钱打牌 明升网站 十三水技巧 电子游戏下载 二十一点平台 现金网游戏开户平台 澳门百老汇游戏官网 皇博压大小 真钱捕鱼 跑马机游戏 赌博技巧 巴比伦赌场官网 现金三公 地下网址 捕鱼游戏技巧 英皇网站 手机玩游戏赚钱平台 现金网排行 pt电子游戏注册 赌博技巧 电脑玩游戏赚钱平台 海立方游戏 ag电子游戏排行 希尔顿官网 太阳网上压大小 现金赌钱游戏 现金棋牌游戏 真人网站网址 地下开户 九五至尊娱乐网址 澳门梭哈游戏官网 奇葩袖赌博网 鸿胜国际压大小 博狗扑克游戏 德州扑克游戏规则 庄闲代理 奔驰宝马老虎机下载 现金三公开户注册 免费试玩电子游戏 GT压大小 新濠天地注册 现金老虎机网站 纸牌赌博种类 乐天堂开户 澳门永利平台 电脑版捕鱼达人 玩电子游戏入门 斗牛游戏 bbin压大小 网上电子游戏网址 澳门网络下注平台 明升国际网址 明升娱乐 捕鱼达人电子游戏 mg电子游戏试玩 二十一点游戏赌场 澳门万利赌场官网 大小对比网站 现金电子游戏 电子游戏实用技术 老虎机破解器 澳门梭哈官网 澳门百老汇赌场注册 千炮捕鱼兑换现金 网上合法赌场 PT电子游戏 波克棋牌官方下载 天天棋牌 凤凰棋牌 美少女战士电子游戏 什么游戏可以赚人民币 银河国际娱乐 澳门番摊官网 澳门梭哈官网 胜博发电子游戏 电子游戏打鱼机 澳门现金网 大三巴网站 PT电子游戏 澳门银河国际娱乐 皇冠比分 老虎机 真钱斗地主 德州扑克游戏下载 申博 澳门金沙 澳门金沙 澳门金沙 申博 申博 申博 申博 申博 申博 申博 申博 澳门葡京 澳门葡京 澳门永利赌场 澳门永利赌场 澳门永利赌场 澳门永利赌场 澳门永利赌场 澳门百家乐 澳门百家乐 威尼斯人注册 威尼斯人注册 威尼斯人注册 威尼斯人注册 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 澳门葡京赌场 葡京赌场 葡京赌场 葡京赌场 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 必赢亚洲 葡京网址 葡京网址 葡京网址 葡京网址 葡京网址 永利 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 永利棋牌 现金网 现金网 现金网