上QQ阅读APP看书,第一时间看更新
2.3 微服务
2014年,Martin Fowler撰写的Microservices[1]使得许多国内的先行者接触到微服务这个概念并将其引入国内,Martin Fowler对微服务概念的定义如下:微服务就是将一个完整应用中所有的模块拆分成多个不同的服务,其中每个服务都可以独立部署、维护和扩展,服务之间通常通过RESTful API通信,这些服务围绕业务能力构建,且每个服务均可使用不同的编程语言和不同的数据存储技术。
微服务设计的本质在于使用功能较明确、业务较精炼的服务去解决更大、更实际的问题。
2015年,越来越多的人通过各种渠道了解到微服务的概念并有人开始在生产环境中落地,2016—2017年,微服务的概念被越来越多的人所认可,一大批公司以微服务和容器为核心开始了技术架构的全面革新,于是微服务架构应运而生。
在微服务架构中,随着微服务承担的职责越来越多,服务间的治理开始变得必要,于是又衍生了一批微服务治理框架,该框架与微服务架构本身息息相关,可以说微服务治理框架解决了微服务架构下遇到的种种难题。
至今微服务已经历了两代发展,第一代是以Dubbo、Spring Cloud为代表的微服务治理框架,该类框架在微服务发展的前几年一度独领风骚,甚至在部分人群中成为微服务的代名词,但事实上该类框架并不能友好地解决微服务自身带来的一些问题,如微服务的调用依赖、版本迭代、安全性、可观测性等;第二代微服务治理框架为服务网格,它的出现解决了大部分开发人员在使用Spring Cloud时遇到的不足和痛点。
欲知更多有关微服务治理框架的详细信息,可参考本书的Github仓库。
[1] https://martinfowler.com/articles/microservices.html。