一、题目
操作在cluster1(local)中操作索引task,复制到cluster2(remote)中
二、思考
CCR 我们可以对标MySQL 理解为为主从,后者备份。主节点负责写入数据,从/备节点负责同步时主节点的数据。
注意:这个特性是白金版付费功能,需要激活 30 天的 License,学习试用。
准备条件
1)准备两个集群
2)两个集群前置配置:xpack 设置true
3)从集群配置角色 remote_cluster_client
4)两个集群开启试用license
三、解题
Step 1、从集群配置主集群 leader
bash
PUT /_cluster/settings
{
"persistent": {
"cluster": {
"remote": {
"leader": {
"seeds": [
"127.0.0.1:9300"
]
}
}
}
}
}
通过如下命令可以在从集群监测一下remote配置是否成功。
bash
GET /_remote/info
Step 2、集群配置权限
在cluster2(remote)上配置对索引的只读权限
bash
POST /_security/role/remote-replication
{
"cluster": [
"read_ccr"
],
"indices": [
{
"names": [
"task"
],
"privileges": [
"monitor",
"read"
]
}
]
}
在cluster1 (local)上设置写角色
bash
POST /_security/role/remote-replication
{
"cluster": [
"manage_ccr"
],
"indices": [
{
"names": [
"task"
],
"privileges": [
"monitor",
"read",
"write",
"manage_follow_index"
]
}
]
}
Setp 3、创建自动跟踪模式以自动跟踪在远程集群中创建的索引
step 4、验证
在local 增加数据
bash
POST task/_bulk
{"create":{"_id":1}}
{"a":"key","b":"mom","c":"mom"}
{"create":{"_id":2}}
{"a":"key","b":"cake mix","c":"mom"}
{"create":{"_id":3}}
{"a":"key","b":"mom","c":"cake mix"}
{"create":{"_id":4}}
{"a":"cake mix","b":"mom","c":"mom"}
在remote 查询数据
bash
GET task_leader/_search
查询结果
四、总结
- CCR 可以对标MySQL 理解为为主从。主节点负责写入数据,从/备节点负责同步时主节点的数据。
- CCR 特性是否付费功能,可以开启试用license 30天体验
- CCR 必须开启 Xpack
- 从集群配置角色 remote_cluster_client
参考资料
- Cross-cluster replication | Elasticsearch Guide [8.15] | Elastic
- Cross-cluster replication APIs | Elasticsearch Guide [8.1] | Elastic
送一波福利:
福利一
有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!
有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!
有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!
福利二
福利三