Ignite 可以支持这种级别的并发吗?

问题描述 投票:0回答:1

我们是一个在线游戏项目,正在考虑使用Ignite(版本:2.14 java17)作为存储缓存,使用MongoDB(启用了write-behind)作为后端数据库。

假设我们的并发存储量为9000/s,单个存储量为30M。

我有以下问题:

  1. Ignite 可以支持这种级别的并发吗?如果是这样,我可能需要多少个节点,以及应该如何为每个节点配置 JVM?

  2. 与 MongoDB (CatchStore) 交互时是否应该使用异步操作?

  3. 默认情况下,Ignite 使用多少个线程来存储我的数据?我应该考虑修改这个数字吗?

java ignite apacheignite
1个回答
0
投票

这里有很多问题:你说你需要写9000/秒。那么 9000 条 10 字节记录与 9000 条 1 MB 记录有很大不同!总写入吞吐量将决定处理聚合数据所需的主机数量。请记住,每次添加额外的 Ignite 主机时,都会添加更多的 CPU、更多的网络接口和更多的内存!这就是点燃鳞片的方式!

您应该使用异步写入支持数据库吗?这取决于主机或网络发生故障时您需要/要求的可靠性。如果您使用直写,则任何主机故障/网络故障都将导致直写操作完全失败。异步操作可能不会被持久化。

有多少线程?您通常不应将分布式系统视为线程系统。是的,它们是线程化的,但可扩展性是通过添加主机来实现的。为什么?因为数据会分散到分布式系统中的许多主机上。如果您有 10 台主机,则 1/10 的数据位于每台主机上。因此,每个主机仅处理总写入量的 1/10。如果您需要更高的吞吐量,请添加更多 Ignite 主机!

希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.