欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

配置 es 群集 连接 java es 群集有几种构建方式

最编程 2024-03-06 15:21:01
...


【1】简介


        ES集群是一个 P2P 类型 ( 使用 gossip 协议 ) 的分布式系统,除了集群状态管理以外,其他所有的请求都可以发送到 集群内任意一台节点上,这个节点可以自己找到需要转发给哪些节点,并且直接跟这些节点通信。所以,从网络架 构及服务配置上来说,构建集群所需要的配置极其简单。在 Elasticsearch 2.0 之前,无阻碍的网络下,所有配置了 相同 cluster.name 的节点都自动归属到一个集群中。 2.0 版本之后,基于安全的考虑避免开发环境过于随便造成的 麻烦,从 2.0 版本开始,默认的自动发现方式改为了单播 (unicast) 方式。配置里提供几台节点的地址, ES 将其视作 gossip router 角色,借以完成集群的发现。由于这只是 ES 内一个很小的功能,所以 gossip router 角色并不需要 单独配置,每个 ES 节点都可以担任。所以,采用单播方式的集群,各节点都配置相同的几个节点列表作为 router 即可.


【2】节点


        


        一个节点就是集群中的一个服务器,也可以理解为,一个节点就是一个ES,作为集群的一部分,他储存数据,参与集群的索引和搜索功能,和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字可以随意起,并且会在启动的时候赋予节点这个名字,


        

        一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫 做 “elasticsearch” 的集群中,这意味着,如果你在你的网络中启动了 若干个节点 ,并假定它们 能够相互发现彼此 , 它们将会 自动地形成并加入 到一个叫做 “elasticsearch” 的集群中。



【3】集群的搭建



        



        1.首先准备三台es服务器,我没有三台电脑,就一台电脑上启动三个es服务器,把我们原先的es文件夹复制三份,


        




配置es集群 连接 java es集群有几种搭建方式_elasticsearch


修改elasticsearch-cluster\node*\confifig\elasticsearch.yml配置文件

配置es集群 连接 java es集群有几种搭建方式_大数据_02

 

配置es集群 连接 java es集群有几种搭建方式_大数据_03

         这里我设置了三个节点组成的集群,如果想设置多个,就多创建几个服务器文件夹,然后修改里面的配置文件,并且每个node的端口号和名字都不能一样,设置各个node可以互相发现即可。

        cluster-2和cluster-3和cluster-1是一样的操作。

        3.当我们修改好了配置文件和创建新的服务器后,每个文件夹下的data目录里面一定要是空的,不能带任何内容。

        

配置es集群 连接 java es集群有几种搭建方式_服务器_04

         4.我们把三个es服务器都启动

        

配置es集群 连接 java es集群有几种搭建方式_配置es集群 连接 java_05

         5.连接上es-header,grunt server,登陆head界面

             输入我们服务器的端口号,这里我设置的是9201,9202,9203,结果都是一样的。

             他们三个端口号的内容都是相同的,储存着一样的内容

配置es集群 连接 java es集群有几种搭建方式_服务器_06

 

        6.设置集群的好处

配置es集群 连接 java es集群有几种搭建方式_elasticsearch_07

         我们都知道一个节点在访问量和搜索量非常大的情况下,可能就会非常慢,或者某个节点中的分片负载太严重挂掉,而设置了集群,我们索引库的分片就会分散在各个分节点上,而且每个节点储存的分片是不相同的(相同的原分片和副本分片不会出现在同一个节点身上),这样就可以保证,我们大量用户搜索或者访问的时候,把我们的压力分散到每一个节点上

        7.分片

每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。分片很重要,主要有两方面的原因:1)允许你水平分割/扩展你的内容容量。 2)允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量。

        简单点来说就是,每个分片就包含了你索引库中的某一部分的内容,可以理解为一本书的目录(因为分片储存的就是索引),而分片是支持扩容的,当我们有大量的文档,由于内存不足,磁盘限制,速度极度下降,我们就需要扩容,这时一个节点就不够用了,所以我们需要把目录(分片)放到不同的空间中,也就是集群节点,这样当我们搜索某一个内容的时候,ES会把要查询的内容发给相关的分片,并将结果组合到一起。