从理论上讲,我理解微服务是如何工作的,以及为什么它们可以在各种情况下起作用,但我仍然不知道它在实践中如何运作。
假设有一个基于CMS的在线商店作为整体应用程序。
现在需要在MIcroservices架构中运行在线商店。
这种微服务架构在技术上与现有的整体架构有何不同?
例如,我挑选了productsearch.php。如果我想扩展此功能,通常我必须设置一个新服务器并将整个CMS ressources文件夹复制到它以进行负载平衡。
使用微服务,我认为productsearch.php将是一个单一的微服务,我只需要将这个php文件复制到规模而无需复制其他资源吗?
答案 0 :(得分:0)
我试图用这个虚构的CMS图来解释它。通过微服务架构,我们可以独立扩展每个微服务。每个微服务可以由不同的团队开发,甚至可以使用不同的技术开发。但是我们很大的灵活性带来了很大的维护成本,我相信这是值得的,因为大多数都可以实现自动化 简而言之,在molithic应用程序中的每个模块都是微服务的潜在候选者。但是,微服务可以比传统模块更精细。
这可以很好地解释如何分解单片应用程序。 http://microservices.io/patterns/decomposition/decompose-by-business-capability.html
答案 1 :(得分:0)
从技术上和概念上讲,微服务独立于其他服务(在整体中,您将拥有具有相互依赖性的模块)。
从技术上讲,构建在现代微服务平台(如Node.JS,Spring Boot或.NetCore)上的微服务将更容易利用容器化系统(如Docker),可能由服务注册表和配置管理支持技术(如Kubernetes,ZooKeeper,Eureka等)。
集装箱化的优势在于它可以更容易横向扩展(添加更多容器)。更进一步,整个微服务/容器化概念和相关技术也有助于实现CI / CD等。