gpt4 book ai didi

nginx - 应用层面的分片

转载 作者:行者123 更新时间:2023-12-03 00:56:05 25 4
gpt4 key购买 nike

我正在设计一个 Multi-Tenancy 系统,并正在考虑在应用程序层而不是数据库级别按租户进行分片。

假设,其工作方式应该是,对于传入请求,路由器进程具有一个全局租户集合,其中包含主要属性以确定该请求的租户以及虚拟分片 ID。该虚拟分片 ID 进一步映射到实际分片。

实际的分片包含应用程序的代码以及该租户的全部数据。这些分片将是 LNMP(Linux、Nginx、MySQL/MongoDB、PHP)服务器。

路由器进程应该充当代理。它应该能够运行一些代码来根据存储在某些本地数据库或文件中的集合来确定传入请求的目标分片。为了能够更好地扩展这一点,我正在考虑让分片本身也充当路由器,以便它们可以运行反向代理,将请求转发到适当的分片。也许在分片上运行的 nginx 实例也可以充当反向代理。但它将如何执行将请求与适当的分片相匹配所需的应用程序逻辑。

对于此路由器实现的任何想法和建议,我将不胜感激。

谢谢

最佳答案

另一种选择是使用 dbShards 等产品。 dbShards是唯一在应用程序级别进行分片的分片产品。这样,您可以使用任何 RDMS(Postgres、MySQL 等),并且仍然能够对数据库进行分片,而无需在中间放置某种代理。许多其他分片产品依赖代理将交易指向正确的分片,但 dbShards 知道该去哪里,而无需“询问”其他任何人。

很棒的产品。 dbshards

关于nginx - 应用层面的分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504290/

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