回顾历史,从传统的单体应用架构,到面向服务架构SOA,再到今天逐渐被大众接受的微服务架构MSA,本质上来说,都是为了解决随着软件复杂度的上升,如何有效提升开发效率、发布效率的问题。
微服务架构在提升开发效率、提升系统扩展能力的同时,也带来了诸多复杂性,比如:运维上的开销、跨进程通信联调的问题、分布式系统的学习成本、排查问题的难度,以及测试回归上的诸多问题。所以,在采用微服务架构之前,要对上面提到的这些挑战、自己的业务,以及自己团队的技能集有着很清醒的了解,切勿为了微服务而微服务。即使是在选择了微服务架构之后,也会面临技术栈选型的问题,从国内广泛使用的Apache Dubbo,到国际上的Spring Cloud,如何选型要考虑技术因素,成本等。
网友评论