β

restful服务的治理

Harries Blog™ 92 阅读

分布式系统 ,服务调用服务,服务再调用服务,一个顶层服务可能会cascade调用几十个甚至几百个底层服务;一旦一个底层服务不稳定,会造成cascading
failure;所以服务治理的推动,在中大型 网站 ,是最最核心和关键的一件事情之一;

所以,v ip 为了推动了服务治理,花了极大的精力,搞了OSP(Open Service
Platform),从头自己实现了类Dubbo的服务治理框架,然后把一个一个的核心应用,从原先的 java /php
的restful的调用,改成了osp服务(同时做了一部分的 应用架构 的梳理和优化);应该说,这个还是投入非常大(近2年的osp框架 开发 和3年的osp服务化改造接入),当然对于稳定定的贡献大大的;

其实vip早年(2012,2013,2014),所有服务都是php+少量的java;为了监控服务性能,我们在每个php和java前面都启用了nginx,让nginx来实现connection
management 和log写日志,然后通过flume 收集日志,在spark上面计算,计算每个pool,
每个 服务器 的qps,4xx/5xx error rate和responsetime
的breakdown以及调用关系/量的分析,在前面几年是网站应用性能的主要监控工具;但是这个只能解决监控问题,但是无法解决 分布式 服务的服务治理问题,一直是一个很大的遗憾;

今天和同事聊到,原先的这套监控体系用mercury替换之后,原先的一部分没有接入OSP服务的,直接采用了nginx+lua来 统计 当年的性能监控的问题;突然想到,既然nginx+lua实现了性能监控,lua本身有能力来做一定的action,我如果统计了每个jvm/php机器的每个restful
call的请求量,请求响应 时间 ,4xx/5xx错误率,加上lua
的action的能力,我其实,可以很简单快速的实现,除了监控的性能 数据 ,还可以针对这个应用服务器,和这个应用服务器上面的每个url请求,根据设定的阈值,来实现快速的前段请求拒绝,后端请求不下发/部分下发等服务治理的 管理 任务和能力;

然后想起来前段时间打开还没来得及看的近期炒作的service
mesh的 文章 一看, https ://liangzl.com/get-article-detail-4046.html, 简直直接就是一个套路!

作者:Harries Blog™
追心中的海,逐世界的梦
原文地址:restful服务的治理, 感谢原作者分享。