服务化不是什么新鲜话题,很多公司都实现了不同程度的服务化架构,伴随着Docker容器化的大规模应用,服务化实施效率不断提高,成本也进一步降低,服务化依然是整体架构中需要重点考虑的问题之一。RPC框架作为服务化中重要的服务组件,在不同场景中面对的问题与需要解决的问题也不尽相同,在容器化的云时代,对RPC框架也提出了更高的要求。让我们一起来看看微博基于Motan RPC框架的服务化发展过程、遇到的问题、及解决方案。
在4月15日上午WOTA2017分会场《微服务架构实践》,新浪微博技术专家、MotanRPC框架技术负责人张雷进行了主题为《微博服务化的实践与演进》的精彩演讲。那么,微博服务化究竟是怎样做的?微博做服务化的过程中遇到了哪些坑?用什么样的方法解决的?演讲结束,记者第一时间采访了他,就这一系列问题进行了深入交流。
新浪微博的服务化
目前,微博的服务化体系中有上百的业务线,运行着有上千个服务,每天完成万亿次的RPC服务调用和数百亿的API调用。单个服务的server规模从几台到数百台,个别服务的client数量达到上千台。
张雷表示,微博的服务化有许多的服务组件组成,主要包括DCPdocker容器化平台,负责服务的动态部署和回收,是服务化体系的坚实基础;以及Motan RPC 开源框架,提供了丰富的服务治理功能,是服务化体系中各服务交互的主要方式;vintage是服务的注册中心,提供服务注册、订阅以及命名服务,支持动、静态配置的变更通知;cacheService是资源层服务化组件,基于motan框架实现了memcache、redis、mcq等资源层的透明化服务。其他还有一些相关的trace、监控、运维系统等,这些共同构成了微博的服务化体系。
微博服务化过程中遇到的那些坑
张雷表示,新浪微博在服务化过程中,曾遇到过很多坑。微博的服务化并不是一下就有了混合云的服务方式,中间主要经历了以下几个阶段:
服务化发展的每一步都会遇到一些具体的问题,例如在第一个阶段的时候,为了解决资源利用的最大化,这时候选择了把服务耦合在一起。第二个阶段,因为服务成长到了一定的规模,就需要选择把不同的公共服务进行解耦。第三个阶段,就是做容器化的时候,需要提供一个动态的弹性的快速扩容的能力。总之,在每一个阶段都是为了解决上一个阶段遗留的问题,这个阶段遗留的一些问题,当规模发展到一定的程度就会积累,这就是上一阶段留给下一阶段的坑,下一阶段用自身技术的发展,去把上一阶段的坑填平。为了不让坑过深,导致掉进去出不来。新浪微博通过灰度测试等技术,在问题萌芽状态就着手解决。
高性能轻量级的MotanPRC框架
2016年,新浪微博开源了MotanPRC,MotanPRC是一个高性能轻量级的RPC框架,它能够提供非常强的扩展能力,很适合不同的企业进行二次的开发。说它轻量级是因为它的架构,还有代码的规范性等都非常的简洁,学习成本和后面的维护成本非常低,并且能够针对不同使用方的使用场景提供扩展的能力。
因为很多人在使用RPC的框架时,发现都要跟自己原有的系统进行一个有机的结合,很少做到一个开源框架开箱即用,其实这个是很难做到的。所以或多或少都会做一些改进改造,MoTan框架就非常的适合这种二次开发。所以,新浪微博希望把MoTan的RPC框架,自身提供服务的优质能力,还有高性能RPC调用能力,把这部分功能能够提供给广大的朋友们去复用。
采访最后,谈及MotanRPC框架技术未来的发展规划,张雷表示:“从最开始只完成基础的调用,到简单的服务治理,到支持指令进行一个流量控制,以及到目前我们现在正在做的跨语言的服务化统一治理,MotanRPC框架一直在不断的发展。目前,我们现在正在做跨语言的服务化统一治理。后续的方向,我们希望这个框架成为一个跨语言的服务治理框架,它不简简单单的是一个RPC的调用框架,更是一个服务治理框架,最终在跨语言方面发力来进行更多的一些研发工作。”
浏览9015次
浏览5256次
浏览8383次
浏览7077次
浏览3271次
浏览9366次
2025-06-20 深圳
2025-04-19 南京
2025-08-15 上海
2025-10-23 上海
打开微信扫一扫,分享到朋友圈