摘要:微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈。本文结合网易考拉海购引用的开源dubbo框架,分享支持考拉微服务工作的基本原理。文章分析了使用dubbo过程中遇到的问题,讲解了团队所做的一些问题修复和功能集成工作,在此基础上最终形成了考拉内部持续维护升级的dubbok框架。
本文背景还要从网易考拉海购(下文简称“考拉”)微服务化说起,现在任何大型的互联网应用,尤其是电商应用从monolithic单体应用走向微服务化已经是必然趋势。微服务化是一个比较宽泛的概念,涉及到一个产品生命周期的多个方面,首先它作为一个指导原则指引业务划分、架构解耦等;技术层面实施微服务需要开发测试阶段、运行阶段、发布阶段、部署阶段等一系列基础框架的支撑。我们在享受服务化易扩展易部署等便利性的同时,也面临新的问题,如数据一致性、分布式调用链路追踪、异常定位、日志采集等。
本文将集中在支撑微服务交互、运行的基础框架讲解上,即考拉当前使用的dubbok框架,dubbok由阿里开源dubbo框架的优化和功能改进而来。当前开源上可选用的微服务框架主要有dubbo、springcloud等,鉴于dubbo完备的功能和文档且在国内被众多大型互联网公司选用,考拉自然也选择了dubbo作为服务化的基础框架。其实相比于dubbo,springcloud可以说是一个更完备的微服务解决方案,它从功能性上是dubbo的一个超集,个人认为从选型上对于一些中小型企业springcloud可能是一个更好的选择。提起springcloud,一些开发的第一印象是。