微服务

是什么

微服务是一种利用云原生技术进行应用开发的现代方法。虽然现代应用程序,如 Netflix,看起来是一个单一的应用程序,但它们实际上是一个较小的服务的集合——所有的服务都密切配合。 例如,一个允许你访问、搜索和预览视频的单一页面很可能是由较小的服务提供的,它们各自处理其中的一个方面(如搜索、认证和在浏览器中运行预览)。 简而言之,微服务指的是一种应用架构模式,通常与 单体应用 形成对比。

解决的问题

微服务是对单体应用所带来的挑战的一种回应。一般来说,一个应用程序的不同部分需要分别进行 伸缩。 例如,一个在线商店将有更多的产品视图而不是结账。这意味着你需要更多的产品视图功能的运行,而不是结账。 在一个单一的应用程序中,这些逻辑位不能被单独部署。如果你不能单独扩展产品功能,你将不得不复制整个应用程序和所有其他你不需要的组件–这是一种低效的资源利用。 单机式应用程序也使开发人员容易屈服于设计陷阱。因为所有的代码都在一个地方,所以更容易使这些代码 高耦合,更难执行关注点分离的原则。 单机通常要求开发人员了解整个代码库,然后才能有成效。

如何帮助

将功能分离成不同的微服务,使它们更容易独立部署、更新和扩展。通过允许不同的团队专注于更大的应用中他们自己的一小部分,也让他们更容易在不对组织的其他部分产生负面影响的情况下对他们的应用进行工作。 虽然微服务解决了许多问题,但它们也产生了运营开销——你需要部署和跟踪的东西增加了一个数量级或更多。许多 云原生技术 旨在使微服务更容易部署和管理。


最后编辑 September 15, 2022: docs: add missing url prefix (1dacc43)