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