【发布时间】:2017-12-12 03:22:44
【问题描述】:
从理论上讲,我了解微服务的工作原理以及为什么它们在各种情况下都有帮助,但我仍然不明白它在实践中是如何工作的。
假设有一个基于 CMS 作为整体应用程序的在线商店。
现在需要在微服务架构中运行在线商店。
这种微服务架构在技术上与当前的单体架构有何不同?
例如,我选择了 productsearch.php。如果我想扩展此功能,通常我必须设置一个新服务器并将整个 CMS ressources 文件夹复制到它以进行负载平衡。
如果使用微服务,我猜 productsearch.php 将是一个单一的微服务,我只需要复制这个 php 文件来扩展而不需要复制其他资源?
【问题讨论】:
-
基本上,您将拥有许多小型应用程序实例,而不是一个大型应用程序实例,每个实例都执行一项特定的工作。因此,假设在一个大型应用程序中,您发现操作 A 是一个瓶颈,并且占用了大部分 CPU 时间。仅针对一项操作扩展整个应用程序是一种浪费。如果操作 A 本身是一个小型应用程序实例,则您可以仅横向扩展该应用程序。将其放在具有单个端点的负载平衡器后面,将系统的其余部分指向该端点,您就可以更便宜、更轻松地解决问题。
-
拥有微服务确实会带来令人头疼的问题,例如如果出现问题,将故障点转移给基础设施/网络工程师,微服务实际上取决于软件以单体架构方式设计的规模/复杂程度.它适用于某些人,对其他人来说可能效果不佳。在您提到 php 脚本的示例中,这是一个非常复杂的示例,它远不止于此,网络、虚拟机、带宽、网络架构等
标签: web architecture microservices