本文介绍了“微服务的原理是什么”的知识。很多人在实际案例的操作中会遇到这样的困难。让边肖带领你学习如何处理这些情况。希望大家认真阅读,学点东西!
第一,专注于一个问题。走向微服务的第一步是为服务设置独特的问题。例如,假设一个汽车贸易组织想要构建一个应用程序来连接潜在的买家和卖家。在此基础上,会有专门的微服务组件来处理汽车交易中的买卖或转售等操作,任何服务都没有其他目的。
支付是设计的另一个关键组成部分。虽然这两个微服务可以相互组合使用,但这些服务不会合并。每个元素负责处理不同的任务,并且总是可以独立工作。
具有离散属性的第二,微服务在执行工作时所需的所有逻辑和数据都存在于自身中,并且与其他微服务组件完全隔离。
尽管微服务通常需要自己的配置来使每个内部组件正常运行,但这种配置不会影响其他微服务的配置。只有牢牢抓住这个设计原则,开发者才能根据实际负载需求随时完成各种服务的规模扩张。
第三,有自己的数据。微服务不仅应该携带自己的数据,还应该独立于其他微服务组件。在某些情况下,微服务甚至可能有自己的数据库。在其他情况下,微服务可能与其他服务共享同一组数据库,但在该数据库中仍然有自己唯一的数据库表。
一般来说,开发人员使用共享数据库来降低成本,但这显然违反了微服务架构的设计原则。
开发人员通常需要在设计中同时考虑数据独立性和冗余性。每个微服务自身数据的设计模式可能会导致应用层面的数据重复,但开发人员开始接受这样一个基本事实:微服务设计模式必然会导致数据冗余。
要理解不同微服务之间的数据重复问题,最直观的例子就是电商平台不同人手里存储的客户数据。具体来说,同一个用户很可能分别注册亚马逊和沃尔玛,所以这两个网站都保存着该用户的一组数据。然而,由于这两个网站保持离散,并且具有出色的隔离性,除非它们具有明确的数据访问授权,否则它们都意识到用户的数据也存在于另一个网站上。
具有可转移性的第四,所谓微服务的可传递性,就是我们可以将它们“打包”成部署单元,比如容器映像或者无服务器功能,通过CI/CD流程随时部署到给定的目标。
例如,开发人员可以轻松地将可传递的微服务部署到云服务提供商,如谷歌云。如果需要部署到其他云平台,开发人员可以随时将相同的微服务转移到AWS。
第五,带着临时的。微服务的临时性质意味着我们可以随时销毁它们,然后立即将服务恢复到最新的已知状态。
容器的临时性不仅决定了当前容器离线后应用状态的管理模式,也影响了活动线程的管理思路甚至活动线程的具体设计,保证了代码中没有基于线程的依赖关系。
这里介绍一下“微服务的原理是什么”的内容。感谢阅读。如果你想了解更多行业,关注网站,边肖将为大家输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/38496.html