Spring Cloud微服务架构开发实战

董超 胡炽维
前言 2014年3月,Martin Fowler在其博客上发表了Microservices(微服务)一文,对过去几年逐渐开始流行的微服务架构开发模式给出了正式的定义。同年,Netflix OSS将自己多年来在实际开发中所使用的微服务基础组件开源。随后,Pivotal在Netflix OSS的基础上对这些组件进行了封装和集成,推出了Spring Cloud。到如今,微服务架构已逐渐普及,在技术生态上也得到了不断完善和更新,其在容器、应用框架、发布管理及监控等方面都有了长足进步。微服务在日常开发中也崭露头角,逐渐得到了开发者的认同。与此同时,Spring Cloud在过去几年中快速发展,不断迭代和更新,已经形成了微服务开发“全家桶”式的解决方案,逐渐在微服务开发领域奠定了坚实的基础。 当我第一次接触微服务的概念时,以为这又是一个“新瓶装旧酒”的把戏。就像当年一些大公司为解决分布式大型应用所提出的COBRA、EJB、DCOM和ESB等概念一样难以使用,它们甚至还没有来得及等用户完全掌握就退出了历史的舞台。当我再次注意到微服务时,是因为Spring Cloud的推出。在大致阅读了相关文档之后顺便“跑”了一下示例项目,我就被其深深吸引了。正是这次接触,使我改变了对微服务的看法。正巧接下来的一段时间,公司内部正在做架构调整,也发现了微服务有其可用之处,所以便在架构调整中引入了Spring Cloud,并最终在项目中取得了不错的效果。这加深了我对微服务的好感,所以后续对Spring Cloud进行了更加深入和系统的学习与研究。 不过话又说回来,虽然公司的第一次微服务架构实践取得了不错的效果,但在实践中也出现了很多问题。感受最深的是,微服务架构不再仅仅是编写代码。单体架构应用开发,一般在完成代码编写之后部署上线就可以了。但在微服务架构下,项目的部署和运维等都面临着新的考验。幸好,Spri…