数据源管理 | 搜索引擎框架,ElasticSearch集群模式

一、集群环境搭建1、环境概览ES版本6.3.2,集群名称esmaster,虚拟机centos7 。

数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
ElasticSearch基础功能和用法:
  • MySQL数据全量和增量方式向ES搜索引擎同步
  • Linux系统Centos7环境搭建ElasticSearch中间件
  • SpringBoot2整合ElasticSearch搜索引擎框架
在真正海量数据的业务场景中,ElasticSearch搜索引擎都是需要集群化管理的,实时搜素几十亿的数据十分常见 。
2、集群配置配置文件
vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml
数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
主节点配置
# 集群主节点配置cluster.name: esmasternode.master: true# 节点名称 node.name: esnode1# 开发访问network.host: 0.0.0.0从节点配置
【数据源管理 | 搜索引擎框架,ElasticSearch集群模式】注意这里两个从节点配置,node.name分别配置为esnode2和esnode3即可 。
# 集群名称cluster.name: esmaster# 节点名称node.name: esnode2# 开发访问network.host: 0.0.0.0# 主节点IPdiscovery.zen.ping.unicast.hosts: ["192.168.72.133"]内存权限
vim /etc/sysctl.conf# 添加内容vm.max_map_count=262144# 执行sysctl -p3、集群启动添加esroot用户,并授权 。
/opt/elasticsearch-6.3.2/bin/elasticsearch单服务查看
ps -aux |grep elasticsearch集群状态查看
http://localhost:9200/_cluster/health?pretty{"cluster_name" : "esmaster",# 集群名称"status" : "green",# 绿:健康,黄:亚健康,红:病态"timed_out" : false,# 是否超时"number_of_nodes" : 3, # 节点个数}二、集群模式测试1、环境配置dev环境
配置单个节点,选择任意单节点,进行数据写入测试 。
spring:data:elasticsearch:# 集群名称cluster-name: esmaster# 单节点# cluster-nodes: en-master:9300# cluster-nodes: en-node01:9300cluster-nodes: en-node02:9300test环境
链接集群环境,进行数据读取测试 。
spring:data:elasticsearch:# 集群名称cluster-name: esmaster# 集群节点cluster-nodes: en-master:9300,en-node01:9300,en-node02:9300当然所有的操作都可以基于单节点或者集群环境测试 。
2、实例对象基于注解管理数据对象实例 。
import org.springframework.data.annotation.Id;import org.springframework.data.elasticsearch.annotations.Document;@Document(indexName = "usersearchindex",type = "usersearch")public class UserSearch {//Id注解Elasticsearch里相应于该列就是主键,查询时可以使用主键查询@Idprivate Long id;private String userId;private String userName;private String sex;}3、操作案例提供一个数据查询操作和数据写入操作 。
import com.esearch.cluster.entity.UserSearch;import org.springframework.stereotype.Service;import JAVAx.annotation.Resource;@Servicepublic class UserSearchServiceImpl implements UserSearchService {@Resourceprivate UserSearchRepository userSearchRepository ;@Overridepublic String esInsert(Integer num) {for (int i = 0 ; i < num ; i++){UserSearch userSearch = new UserSearch() ;userSearch.setId(System.currentTimeMillis());userSearch.setUserId("Name"+i);userSearch.setUserName("ZSan"+i);userSearch.setSex("Male"+i);userSearchRepository.save(userSearch) ;}return "success" ;}@Overridepublic Iterable<UserSearch> esFindAll (){return userSearchRepository.findAll() ;}}三、集群控制台这里是基于Kibana组件做的集群控制台 。
1、数据列表在discover面板中可以查看列表数据,也可以继续搜索 。
列表查询
数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
列表搜索
数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
2、开发工具在dev_tools面板中可以执行ElasticSearch相关命令 。
查看集群健康状态
GET /_cat/health?v
数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
查询全部数据
GET _search{"query": {"match_all": {}}}
数据源管理 | 搜索引擎框架,ElasticSearch集群模式

文章插图
 
  




    推荐阅读