在一个 Apache Ignite 节点中支持多个环境
Support multiple environments in one Apache Ignite node
目前我们使用 Apache Ignite.NET 瘦客户端来缓存不同的数据集。
对于每个数据请求,我们使用通过 IIgniteClient.CreateCache() 方法创建的单独缓存。
一个缓存包含一组具有相同属性的实体,应在过期后独立于其他缓存删除。
问题在于,在生产中我们希望应用程序(环境)的许多实例与 Apache Ignite 的一个实例一起工作。每个应用程序实例都应该能够使用与其他应用程序的缓存相同的键创建缓存。因此,缓存键仅在一个应用程序实例中是唯一的。
在Apache Ignite中有什么方法可以独立存储来自不同环境的缓存吗?
例如,在 Redis 中,有不同的数据库具有唯一编号。
我尝试使用 DBeaver 连接到缓存并看到一个“Ignite”数据库,每个缓存有几个 sql 模式,每个模式有一个 table。
我可以在一个 Apache Ignite 节点中创建多个数据库吗?
目前我看到的仅有的 2 个解决方案:
- 为每个缓存键添加环境前缀
- 在 1 台机器上为每个环境托管多个 Apache Ignite 服务实例。
不,Apache Ignite 没有 'databases' 的概念。假设它用于单租户。如果您不关心安全性,您可以使用缓存名称的前缀等。
目前我们使用 Apache Ignite.NET 瘦客户端来缓存不同的数据集。
对于每个数据请求,我们使用通过 IIgniteClient.CreateCache
问题在于,在生产中我们希望应用程序(环境)的许多实例与 Apache Ignite 的一个实例一起工作。每个应用程序实例都应该能够使用与其他应用程序的缓存相同的键创建缓存。因此,缓存键仅在一个应用程序实例中是唯一的。
在Apache Ignite中有什么方法可以独立存储来自不同环境的缓存吗? 例如,在 Redis 中,有不同的数据库具有唯一编号。
我尝试使用 DBeaver 连接到缓存并看到一个“Ignite”数据库,每个缓存有几个 sql 模式,每个模式有一个 table。 我可以在一个 Apache Ignite 节点中创建多个数据库吗?
目前我看到的仅有的 2 个解决方案:
- 为每个缓存键添加环境前缀
- 在 1 台机器上为每个环境托管多个 Apache Ignite 服务实例。
不,Apache Ignite 没有 'databases' 的概念。假设它用于单租户。如果您不关心安全性,您可以使用缓存名称的前缀等。