java架构师指南:微服务架构的优势
复杂度可控:在分解应用程序时,它避免了原始复杂性的无穷积累。 每个微服务都专注于单个功能,并通过定义明确的接口清晰表示服务边界。 由于微服务的体积小,复杂度低,因此每个微服务都可以由小型开发团队完全控制,从而易于维护高可维护性和开发效率。
独立部署:由于微服务具有独立运行的进程,因此每个微服务也可以独立部署。 微服务发生变化时,无需编译和部署整个应用程序。 由微服务组成的应用程序等效于具有一系列并行释放过程,使释放效率更高,同时降低了对生产环境所造成的风险,并最终缩短了应用程序交付周期。。
技术选型灵活:在微服务架构下,技术选择是分散的。 每个团队都可以根据自己的服务需求和行业发展现状自由选择最适合的技术体系。 由于每个微服务都相对简单,因此升级技术堆栈的风险较低,甚至可以完全重构一个微服务也是可行的。
容错:当某一组件发生故障时,在单一进程的传统架构下,故障很有可能在进程内扩散,形成应用全局性的不可用。在微服务架构下,故障会被隔离在单个服务中。若设计良好,其他服务可通过重试、平稳退化等机制实现应用层面的容错。
扩展:整体架构应用程序也可以实现水平扩展,即整个应用程序完全复制到不同的节点。 当应用程序的不同组件的扩展需求不同时,微服务架构将体现其灵活性,因为可以根据实际需求独立扩展每个服务。
推荐阅读:java架构师指南之架构师的工作流程