本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"!
作者:陈于吉吉|慕课网讲师
随着这几年微服务的火爆,在平时的工作或者技术交流中,我们总能听到哪家公司说把自己的项目用微服务重构啦,是的,微服务确实能解决单体系统变得臃肿难以维系的问题。现在如果你的企业正在考虑采用微服务对架构进行重构,那么企业必定需要选择一个框架将微服务进行落地。
我们都知道,现在在微服务市场比较流行的有 2 大框架,一个是 Ali 的 Dubbo,一个是 SpringCloud。两者孰优孰劣一直是一个比较令人头疼的问题。接下来我们一起探讨下如何进行微服务的技术选型。
1. 技术选型考虑的要素
其实我们可以先不去考虑是采用 Dubbo 还是 SpringCloud,而是回到技术选型本身,先看下技术选型可能存在的指标,然后根据这些指标来考虑到底是选择那个微服务框架。
考虑要素 | 评判 |
---|---|
背景 | 调研选型技术的背景,了解来源 |
是否满足业务需求 | 是否能满足业务的需求,切记避免过重引用,技术是支撑业务,避免太过超前于业务 |
成本 | 成本包含了人力成本,时间成本,还有资源硬件成本 |
是否开源 | 如果是开源,应该清楚开源的组织是哪一家,谨慎使用社区版 |
社区活跃度 | 社区活跃度在一定程度决定软件质量,当你碰到问题之前活跃的社区已经有其他人碰到过,并可能已经很好的解决 |
安全性 | 了解框架或组件是否存在漏洞 |
与本公司技术栈是否一致 | 尽可能考虑与公司技术栈一致或相差不关的技术,可以保证质量和成本 |
是否是自己熟悉的技术 | 一次选型不要引用过多未知新技术,避免出现过多不可控风险,保证稳定 |
稳定性 | 系统是否开源长期运行,是否已经经得住考验 |
扩展性 | 是否兼容其他平台,是否可以进行二次开发 |
性能效率 | 考虑吞吐率,响应时间等等 |
技术前进的步伐 | 选择的技术什么周期必须明显长于项目的生命周期,确保技术本身都紧跟时间进行迭代 |
可以看到,技术选型需要评估的指标还是非常多的,也是要个很需要经验的决策。要进行大量的调研和输入,根据现有的业务情况作出一个符合自身情况的决策。
我们在做技术选型的时候最忌讳的是临时抱佛脚,在网上随意搜索几个对比文章利用这些碎片化信息来做出决策。一定要确保我们的选型是基于当前业务增长的判断,还要弄清楚业务事实背后的假设。
即使这样,也未必能选出一个最优的方案,但是通过这一系列的评