什么是微服务体系结构?
正如名称所示,微服务体系结构是一种将大型应用程序分解为一组较小的服务的方法。 每个服务都在自己的进程中运行,并使用 HTTP/HTTPS、WebSocket 或 AMQP 等协议与其他进程进行通信。 每个微服务在特定的上下文边界内实现特定的端到端域或业务功能,每个微服务都必须自主开发,并且可以独立部署。 最后,每个微服务应拥有其相关的域数据模型和域逻辑,并且可以基于不同的数据存储技术(SQL、NoSQL)和不同的编程语言。
微服务的一些主要特征包括:
- 微服务具有规模小、独立和松散耦合的特点。
- 每个微服务具有一个单独的代码库,可由小型开发团队进行管理。
- 微服务是独立部署的。 团队可以更新现有微服务,而无需重新生成和重新部署整个应用程序。
- 微服务负责将其数据或外部状态保存到各自的数据库中。 与整体体系结构不同,微服务不共享数据库。
- 微服务使用定义完善的 API 相互通信。 每个服务的内部实现细节均对其他服务隐藏。
- 支持 polyglot 编程。 例如,微服务无需共享相同的技术堆栈、库或框架。
为什么要在微服务体系结构中进行开发?
微服务的优点是其通常各自封装较为简单的客户需求功能,你可以独立进行横向扩展或缩减、测试、部署和管理。 微服务方法的一个重要优点是团队更倾向于以客户方案为导向,而非以技术为导向。 小型团队基于客户方案开发微服务,并使用他们想要使用的任何技术。
微服务提供了长期的灵活性。 通过允许基于许多独立的可部署服务(每个服务都具有粒度和自主生命周期)创建应用程序,