![]() |
1
0
最有可能的是,一个阅读器只需将所有工作委托给一个水平缩放的队列就足够了。 如果结果证明这是不够的,并且您的读者仍然需要水平缩放,那么您可以通过使用匹配过滤器来实现这一点,这样可以让多个读者将工作分开。 例如,如果您有一个具有十六进制字符的ID,则可以通过在每个服务器上使用匹配运算符将工作拆分为两个服务器,其中每个服务器匹配全范围内一半字符:
第二台机器上的:
如果您需要16台以上的服务器,那么您可以使范围更加具体:
这将允许每台计算机监视消息的一个子集并对其进行处理,而其他计算机则在不重复地处理其他消息。 协调哪个服务器正在以一种健壮的方式监视哪个范围变得有些复杂,因为您需要确保崩溃或挂起的机器恢复,如果您需要动态地水平缩放,那么您需要能够向服务器提供新的范围并调整其大小。此解决方案还将导致消息处理无序,因此,如果顺序很重要,则需要为重新排序消息或处理无序问题提出解决方案。 但这些都是和这个问题不同的主题,所以我暂时不谈细节。 |
![]() |
Hayato · 如何检查我是如何安装MongoDB的 2 年前 |
![]() |
Valeri · 如何仅获取布尔值数组中没有“false”的文档? 2 年前 |
![]() |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
![]() |
danilonet · MongoDb。NET-ObjectId序列化 2 年前 |
![]() |
Windy · MongoDB-查询计算和分组多个项目 2 年前 |
![]() |
Mike Kharkov · 无法从数据库中检索多个值 3 年前 |