部署单体应用程序的时候,我们往往需要运行单个的通常也是大型应用程序的多个相同副本。通常,您需要配置N台服务器(物理服务器或虚拟服务器),并在每台服务器上运行M个应用程序实例。单体应用程序的部署并非总是完全简单的,但比部署微服务应用程序要简单得多。
微服务应用程序包含数十甚至数百个服务。服务以多种语言和框架编写。每个应用程序都是一个微型应用程序,具有自己的特定部署,资源,扩展和监视要求。例如,我们需要根据对该服务的需求运行一定数量的每个服务的实例。另外,必须为每个服务实例提供适当的CPU,内存和I / O资源。更具挑战性的是,尽管存在这种复杂性,但部署服务必须快速,可靠且具有成本效益。
有几种不同的微服务部署模式。首先是每个主机多个服务实例的模式。
每个主机多个服务实例模式
部署微服务的一种方法是使用“每个主机多个服务实例”模式。 使用此模式时,您将配置一个或多个物理或虚拟主机,并在每个虚拟或虚拟主机上运行多个服务实例。 这是应用程序部署的传统方法。 每个服务实例在一个或多个主机上的一个端口上运行。
下图显示了此模式的结构。

此模式有多种变体。每个服务实例的一个变体是一个流程或一个流程组。例如,您可以将Java服务实例作为Web应用程序部署在Apache Tomcat服务器上。一个Node.js服务实例可能包含一个父进程和一个或多个子进程。
此模式的另一个变体是在同一进程或进程组中运行多个服务实例。例如,您可以在同一Apache Tomcat服务器上部署多个Java Web应用程序,或在同一OSGI容器中运行多个OSGI捆绑软件。
每个主机多个服务实例模式既有优点也有缺点。一个主要的好

本文探讨了微服务的不同部署模式,包括每个主机多个服务实例、一个主机一个服务实例(虚拟机和容器)、无服务器部署等。每个模式都有其优缺点,如资源效率、隔离性、部署速度和管理复杂性。无服务器部署如AWS Lambda提供了按需付费的便捷方式,但也有其限制,如无状态服务和请求时间限制。
最低0.47元/天 解锁文章
2061

被折叠的 条评论
为什么被折叠?



