文章
Michael Lei · 五月 17 阅读大约需 3 分钟

InterSystems 最佳实践系列之使用Doker和配置文件模版来部署Sharded 集群

在这篇文章中,我们将使用docker和 参数配置文件模版 这一新特性来运行IRIS集群且轻松配置好。

在 UNIX® 和 Linux 上,您可以使用声明式参数配置合并文件来修改默认的 iris.cpf。合并文件是一个部分 CPF,在实例启动时为任何数量的参数设置所需的值。CPF 合并操作对每个实例只起一次作用。

我们的集群架构非常简单,它将由一个主节点(Node1)和两个数据节点(检查所有可用角色)组成。不幸的是,docker-compose不能部署到几个服务器上(尽管它可以部署到远程主机上),所以这对本地开发分片的数据模型、测试等很有用。如果是生产的InterSystems IRIS集群部署,你应该使用ICM云管理器IKO K8S调度器

Docker-compose.yml

我们从docker-compose 配置开始:

 
docker-compose.yml

正如你所看到的,我们正在运行一个默认的intersystems/iris:2020.3.0.221.0镜像,提供License Key(必须支持Sharding),使用持久化的%SYS特性持久化数据,并提供ISC_CPF_MERGE_FILE,指向我们的合并文件(主节点和数据节点的文件不同)。此外,数据节点的启动晚了一分钟来让主节点先启动,这是个非常保守的估计,在一个正常的硬件上,启动时间最多几秒钟。

集群配置在CPF合并文件中,让我们来看看

Cluster configuration happens at CPF merge files, let's check them out

CPF2merge-data-instance.conf

[Startup]
PasswordHash=FBFE8593AEFA510C27FD184738D6E865A441DE98,u4ocm4qh
ShardRole=node1


[config]
MaxServerConn=64
MaxServers=64
globals=0,0,400,0,0,0
errlog=1000
routines=32
gmheap=256000
locksiz=1179648

发生了什么情况?

[Startup]  部分,我们通过为我们的集群分配主节点角色来启用分片。在[config]中,我们将服务器扩大一些,允许更多的缓存和连接。就这么简单!

CPF2merge-data-instance.conf

[Startup]

ShardClusterURL=IRIS://iris1:1972/IRISCLUSTER
ShardRole=DATA

针对数据节点, 我们需要提供主节点和节点角色的URL.

试一下

试试这个repository 或者运行这段代码:

git clone https://github.com/intersystems-ru/iris-container-recipes.git
cd iris-container-recipes
cd cluster
// copy iris.key in cluster folder
docker-compose up -d

启动InterSystems IRIS集群后你可以从 浏览器 访问. 用户名/密码 is: _SYSTEM/SYS.

结论

合并CPF文件 是一个很好用而简单的工具来配置InterSystems IRIS的实例。

感谢@Luca.Ravazzolo提供的代码并回答了我所有的问题。

0
0 11
讨论 (0)1
登录或注册以继续