distributed - 如何将 Ignite 配置为完整的分布式数据库?
问题描述
我正在尝试围绕大量部分数据库实例管理分散式数据库。每个实例都有整个数据的一个子集,它们都是节点和客户端,因此询问一些数据,查询必须传播到每个(组)实例,并且哪个实例将返回数据。
由于避免在一个实例出现故障时丢失数据,我发现他们必须与其他实例复制其内容。如何使用 Ignite 配置此场景?
假设我有一个表,其中包含分布式应用程序中用户的名称和上次访问日期时间,例如...
class UserLogOns
{
string UserName;
DateTime LastAccess;
}
现在,当程序启动时,我准备 Ingite 作为去中心化数据库工作......
static void Main(string[] args)
{
TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
// Override local port.
commSpi.LocalPort = 44444;
commSpi.LocalPortRange = 0;
IgniteConfiguration cfg = new IgniteConfiguration();
// Override default communication SPI.
cfg.CommunicationSpi = commSpi;
using (var ignite = Ignition.Start(cfg))
{
var cfgCache = new CacheConfiguration("mio");
cfgCache.AtomicityMode = CacheAtomicityMode.Transactional;
var cache = ignite.GetOrCreateCache<string, UserLogOns>(cfgCache);
cache.Put(Environment.MachineName, new UserLogOns { UserName = Environment.MachineName, LastAccess = DateTime.UtcNow });
}
}
现在......我想获得其他“computerB”的 LastAccess 曾经......
这个对吗?如何实施?
解决方案
这取决于您要实现的确切用例。一般来说,Ignite 提供了您在此处提到的所有内容。
这是开始在 Ignite 中使用 SQL 的好方法:https ://apacheignite-sql.readme.io/docs
使用“template=partitioned”而不是“replicated”创建表,如下面的示例所示:https ://apacheignite-sql.readme.io/docs/getting-started#section-creating-tables ,配置备份数量并选择一个字段作为关联键(用于将特定条目映射到集群节点的字段)并运行一些查询。
如果要使用本机持久性,还请查看基线拓扑的概念:https ://apacheignite.readme.io/docs/baseline-topology 。
内存模式将在每个服务器拓扑更改(可以存储数据的节点)上自动触发节点之间的重新平衡。
推荐阅读
- azure - 使用 powershell 获取分配给订阅的所有 azure 策略的列表
- docker - clamav docker build 针对非 root 用户问题
- python-3.x - 生产中的 Django 应用程序 Dockerisation
- jquery - 在 Krajee Bootstrap 文件输入插件中浏览/拖放文件时,同一文件在拖放区中添加了两次
- bash - 用于创建多个文件的 shell 脚本,在下次执行时从最后一个文件递增
- python - 如何从嵌套字典中获取数据?
- python - 在 Python 中获取操作系统范围的十进制和数千个分隔符
- python - Python Turtle Graphics 窗口不显示任何内容
- unit-testing - 使用 Jest 测试 Vue3 组件时如何模拟计算属性
- arrays - How To Replace All Matching Array Elements?