【51CTO.com原创稿件】服务化不是什么新鲜话题,很多公司都实现了不同程度的服务化架构,伴随着Docker容器化的大规模应用,服务化实施效率不断提高,成本也进一步降低,服务化依然是整体架构中需要重点考虑的问题之一。RPC框架作为服务化中重要的服务组件,在不同场景中面对的问题与需要解决的问题也不尽相同,在容器化的云时代,对RPC框架也提出了更高的要求。
2017年4月14日-15日,由51CTO主办的WOTA全球架构与运维技术峰会在北京富力万丽酒店隆重召开。本次WOTA设置了15大前沿热点技术论坛,60+来自Google、LinkedIn、百度、阿里巴巴、腾讯、新浪等海内外一线公司的技术大咖将带来超过50个历经沉淀的架构实战心得与成功经验分享案例,携手打造历时2天的行业***技术盛会。
在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的调用框架,更是一个服务治理框架,最终在跨语言方面发力来进行更多的一些研发工作。”
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】