模式是可以以可预测的方式定期重复的东西。
这个概念适用于所有环境——在建筑、设计、IT 以及需要做某事的每个环境中。
模式的概念始于 70 年代后期,涉及建筑和建筑设计,但模式一直存在。例如,看看大自然——it 充满了可重复和可预测的模式。它们出现在螺旋、波浪和花椰菜中,以及对称几何、分形等数学中。
然而,在我们的环境(IT 环境)中,我们首先在 90 年代中期在我读过的一本书中发现了模式。
模式语言不断演进,以跟上 IT 演进和革命的速度,在新千年伊始,新的工具和系统层出不穷。互联网正在爆炸式增长,分布式系统随着新的基础设施、新架构和新模式的出现而上市。
在我们开始之前,值得一提的是,微服务架构是单体架构的替代方案,因为每种架构都有自己的优点和缺点——这都是关于权衡的。
旧的原则和模式,例如来自 SOA 的服务发现和路由,仍然有效,并且在单体和微服务架构上都在使用。然而,随着微服务和容器的出现,设计、实施和部署软件的方法发生了巨大变化。应用程序现在针对灵活性、可扩展性、故障、弹性进行了优化,并能快速适应新的请求和业务。在新原则的推动下,这些新架构需要应用一组不同的模式和实践。
在本章中,我们不会访问和描述与微服务方法一起使用的模式的完整列表,但我们将专注于最常用的模式,以帮助您开始并对模式主题感兴趣。有大量关于模式的书籍,如果您关心云环境,您应该阅读 Packt 的 Java EE 8 设计模式和最佳实践(https://www.packtpub.com/application-development/java-ee-8-design -模式和最佳实践)。
本章将介绍的模式如下:
- Decomposition
- API gateway
- Bulkheads
- Circuit breaker
- Sidecar