说在前面
大概是三年前,因一些原因公司原项目最初为单体结构部署,所有业务模块都在一个项目里面,而后随着业务的不断膨胀以及模块之间的耦合,导致后面增加或修改一些简单业务时的成本都会变的极大。新入职的同事更是苦不堪言,学习代码的成本极高。基于这些原因,就开始了后面漫长的架构改造旅途。
这么多微服解决方案,到底选哪个?
1.介绍
- Motan 微博内部使用的 RPC 框架,于 2016 年对外开源。后来在 Motan Agent 的基础上演化出了 WeiboMesh,这里暂时不展开说Motan GitHub
- Dubbo 阿里巴巴开源,一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。曾经有很长一段时间未维护,现已贡献至Apache基金会孵化。附上链接Dubbo官网
- SpringCloud 由Pivotal 公司 2014 年开源,利用 Spring Boot 特性整合了开源行业中优秀的组件(如Netflix相关组件),整体对外提供了一套在微服务架构中服务治理的解决方案。与Dubbo都经常被使用且比较,这次主要是基于SpringCloud基础组件集成
- Kubernetes 全新的基于容器技术的分布式架构方案。用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制
2.对比(话不多说,直接上图)
3.选择
很幸运的是,上图三种技术栈都有用过。算是各有优劣吧,具体还是要结合实际情况去选择,不过千万注意的是尽量别混搭(如SpringCloud+K8S或SpringCloud+Dubbo这样)
后面具体会先围绕SpringCloud技术栈展开,而后也会记录下k8s和Dubbo相关的一些东西。这是第一篇,后面开始实战,以上!
结束
- 关于环境
- 架构图
持续学习,记录点滴。更多请访问【http://qupengkun.github.io】