Elasticsearch与MongoDB 数据同步及分布式集群搭建 (二)

本文介绍了如何配置Elasticsearch与MongoDB的数据同步,并搭建一个高可用、可扩展且分布式集群。重点阐述了集群中节点的角色、数据分片的概念以及如何实现水平扩展。通过配置实例和命令操作,展示了集群状态的调整和监控,包括使用elasticsearch-head工具进行可视化管理。此外,还演示了添加新节点以实现水平扩展,以及集群状态的检查和调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇《Elasticsearch与MongoDB 数据同步及分布式集群搭建 (一)》我们已经配置了一个Elasticsearch与MongoDB 数据同步高可用,可扩展以及分布式是ES的一个优势和特色,扩展垂直扩展或者向上扩展,Vertical Scale/Scaling Up,或是水平扩展或者向外扩展,Horizontal Scale/Scaling Out。

一个节点会运行一个ES的实例,一个集群则会包含拥有相同cluster.name的一个或者多个节点,这些节点共同工作来完成数据共享和负载分担。随着节点被添加到集群,或者从集群中被删除,集群会通过自身调节来将数据均匀分布。集群中的一个节点会被选为主节点(Master Node),它负责管理整个集群的变化,如创建或者删除一个索引(Index),向集群中添加或者删除节点。任何节点都可以成为主节点。在我们的例子中只有一个节点,所以它就承担了主节点的功能。ES通过分片将数据分布在集群中。可以将分片想象成数据的容器。文档会被存储在分片中,而分片则会被分配到集群中的节点中。随着集群的扩大和虽小,ES会自动地将分片在节点之间进行迁移,以保证集群能够保持一种平衡。一个分片可以是主分片(Primary Shard)或者副本分片(Replica Shard)。索引中的每份文档都属于一个主分片,所以主分片的数量就决定了你的索引能够存储的最大数据量。一个副本分片则只是一个主分片的拷贝。副本用来提供数据冗余,用来保护数据在发生硬件故障是不会丢失,同时也能够处理像搜索和获取文档这样的读请求。主分片的数量在索引建立之初就会被确定下来,而副本分片的数量则可以在任何时候被更改。

 

具体原理可以参考官方文档:《life inside a cluster

演示水平扩展,这里新添加一个ES实例的虚拟机,这样我们之前的ES实例为:10.253.1.70,现在添加一个新的节点:10.253.1.71.,需要保证这两个节点之间是可以互相通信的.

配置config/elasticsearch.yml

10.253.1.70相关配置为:

1 cluster.name: elasticsearch_ryan
2 node.name:"cluster-node-1"

10.253.1.71相关配置为:

1 cluster.name: elasticsearch_ryan
2 node.name:"cluster-node-1"

其实就是要保证有共同的cluster.name

启动10.253.1.71的ES服务,然后可以查看下节点集群的状态:

02 {
03     "cluster_name":"elasticsearch_ryan",
04     "status":"green",
05     "timed_out":false,
06     "number_of_nodes": 2,
07     "number_of_data_nodes": 2,
08     "active_primary_shards": 9,
09     "active_shards": 18,
10     "relocating_shards": 0,
11     "initializing_shards": 0,
12     "unassigned_shards": 0
13 }

可以看到现在有2个节点,status 表集群的状态,具体状态含义:

  • green:所有的主分片(Primary Shard)和副本分片(Replica Shard)都处于活动状态
  • yellow:所有的主分片都处于活动状态,但是并不是所有的副本分片都处于活跃状态
  • red:不是所有的主分片都处于活动状态

这里顺便推荐一个ES分布式集群管理工具 elasticsearch-head,插件方式安装就可以了

sudo elasticsearch/bin/plugin -install mobz/elasticsearch-head

安装后打开管理界面 http://10.253.1.70:9200/_plugin/head/

Elasticsearch与MongoDB 数据同步及分布式集群搭建

Elasticsearch与MongoDB 数据同步及分布式集群搭建

 

可以看到分布式集群中节点的详细信息,还可以执行索引的信息和查询的功能,很方便,集群的状态也很直观。可以往mongo里面继续添加一些数据来测试下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值