gpt4 book ai didi

concurrency - 管理数据存储并发作为微服务规模

转载 作者:行者123 更新时间:2023-12-02 03:16:09 25 4
gpt4 key购买 nike

我仍在努力寻找围绕微服务的方法。我有一个基本问题。

在企业场景中,微服务可能必须写入持久数据存储 - 无论是 RDBMS 还是某种 NoSQL。在大多数情况下,持久性数据存储是企业级的,但是是单个实体(当然是复制和备份的)。

现在,让我们考虑部署到拥有自己的持久数据存储(例如企业级 RDBMS)的私有(private)/公共(public)云环境的单个微服务的情况。当我扩展我的微服务时,会有多个微服务实例试图从同一个数据存储中读取/写入。传统的数据存储可能可以调整为处理大约 50-200 个并发连接。当我的微服务必须扩展到远远超出这个范围时,我该如何处理?

在这种情况下,最佳做法是什么?有什么模式可以使用吗?

最佳答案

理想情况下,每个微服务实例都是独立的,这样每个实例都可以独立于其他实例进行扩展,同时还可以封装其状态,以便其他人只能通过定义明确的 API 访问它。因此,您不仅需要弄清楚如何扩展微服务用来存储状态的数据库,如果您真的想确定这种架构模式,您还需要解决封装问题。

你看过Service Fabric了吗?解决这个? Service Fabric 有一个概念 stateful services数据实际存储在每个微服务实例中的位置。该平台为 HA 自动处理复制和磁盘持久性,并且还具有内置数据分区以跨机器分布。这个想法基本上是放弃中央数据库,而不是将你的计算和数据放在一个微服务实例中。现在您的服务是自包含的,突然间解决方案很好地适应了这种架构模式,因为现在每个微服务实例都可以独立扩展和升级,并且您可以将数据完全封装在服务中。权衡当然是您没有获得成熟的 RDBMS 的功能集,但是如果您正在考虑 NoSQL 存储,那应该不是什么大问题。

我对此的想法一直是,像数据库这样的中央存储在某种程度上是无共享微服务架构中的反模式。不过要全面披露:我在 Service Fabric 上工作,所以我的意见可能有点偏颇!

关于concurrency - 管理数据存储并发作为微服务规模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com