不得包括任何停机时间,并且操作必须完全自动化。无法再手动安装微服务,因为这会花费太长时间。
可能仅来自它所履行的一项业务功能。微服务不需要任何额外的组件(例如数据库)来实现其功能。
必须有弹性。这意味着如果与此服务通信的另一个服务停止工作,第一个服务必须继续工作。
必须具有高度可扩展性,因为如果将服务的附加实例添加到当前现有节点,则整个系统的性能会变得更高。
最后但并非最不重要的一点是,必须提供细粒度的服务,其中每项服务恰好满足一项业务功能(例如购物车的功能)。
通过一个具体的例子——即购物车应用程序——我想向您展示整个事情是如何工作的。如果我们将采购应用程序分解为业务功能,我们可能会得到以下图片。
结论
多年来形成的异质景观并不总是能轻易地整合在一起。根据监管机构的说法,整个业务联系和交易历史以及相关电话(即交易指令)必须保存在证据链中。然而,这给银行
购物应用程序中的微服务示例
正如您所看到的,购物应用程序包含许多业务功能。它甚至 具有由其他几个功能共享的功能,例如“访问管理”或“监控和日志记录”。
确定需要独立于业务问题的业务功能非常重要。例如,这意味着不 商业地产所有者数据库 同的可扩展性或可用性要求。示例:例如,“查找产品”功能必须 24/365 可用。然而,目录管理功能只需要在正常办公时间可用,因为目录内容通过目录提供程序功能提供给采购系统。
微服务的优势是显而易见的:因为它们很小,所以可以快速更改代码和生产。然而,在整个组织中传达这些变化需要花费太多时间。因此,开发变更的团队也必须安装和操作它们。正如你可以想象的那样,这意味着对企业文化的某种重新思考。
结论
低复杂度的应用程序可以作为整体进行开发和安装。然而,如果在可扩展性和稳定性方面有很高的要求,微服务代表了结构良好、高可用和稳定的应用程序,但它们需要高度的自动化和一定程度的企业文化变革。
虽然我只触及了表面,但我仍然希望我的文章能够以简单易懂的方式向您解释什么是微服务以及何时需要微服务。
顺便说一句,在我的下一篇博文中,我将讨论在线部署的主题。所以它仍然很有趣。
您想了解更多与软件、开发或项目相关的令人兴奋的主题吗?然后看看我们的其他博客文章。