02 | 从单体应用到 Service Mesh过程

本文仅作为学习记录,非商业用途,侵删,如需转载需作者同意。

一、单体服务

内部信息,没太看得懂,有些地方借鉴下:
在接入层实现了一些通用的逻辑,比如提供统一的认证、频次控制、黑白名单、降级开关、配置服务等功能。平台服务内部则通过 Jar 包的方式依赖调用,对外暴露 API 接口。

在这里插入图片描述

二、 服务化改造

按照业务模块进行拆分,业务解耦。

三、RPC服务化

1、HTTP的RESTful接口

好处:http是明文协议,开发调试比较方便,RESTful接口描述也很简单。
坏处:http协议本身比较臃肿,内部服务的依赖主要解决数据可靠性传输的问题,不需要这么多无用的请求头。

2、RPC

好处:具有可编程性,可以根据微博业务特性订制开发,因为使用私有协议,可以减少每个请求的体量,提高访问性能。

微博自研rpc框架Motan
在这里插入图片描述

四、容器化

自研了公有云和私有云平台DCP,实现资源的动态扩缩容,结合Motan RPC的服务治理实现对流量的弹性调度。
有了完善的服务治理相关组件,明确的SLA指标,Trace和监控体系。

在这里插入图片描述

五、跨语言服务化

跨语言之间的调用通过RESTful接口进行交互,服务调用经过层层转发,经过繁重的网络I/O,拖慢了请求耗时,影响系统性能和问题排查,每种语言有自己的一套的系统或者指标,带来了资源浪费。

下面这种的效果也没有太好,PHP的PB反序列化耗时很大,也没有优化很多。
在这里插入图片描述

下面这种是service mesh的雏形。
在这里插入图片描述

个人感受:不如下掉PHP,还支持干嘛,换成java或者go都可以啊。这个和有赞的tether是类似的组件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章