本文源码:GitHub·点这里 || GitEE·点这里
一、集群环境搭建
1、环境概览
ES版本6.3.2,集群名称esmaster,虚拟机centos7。
ElasticSearch根底性能和用法:
- MySQL数据全量和增量形式向ES搜索引擎同步
- Linux零碎Centos7环境搭建ElasticSearch中间件
- SpringBoot2整合ElasticSearch搜索引擎框架
在真正海量数据的业务场景中,ElasticSearch搜索引擎都是须要集群化治理的,实时搜素几十亿的数据非常常见。
2、集群配置
配置文件
vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml
主节点配置
# 集群主节点配置cluster.name: esmasternode.master: true# 节点名称 node.name: esnode1# 开发拜访network.host: 0.0.0.0
从节点配置
留神这里两个从节点配置,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 -p
3、集群启动
增加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:9300 cluster-nodes: en-node02:9300
test环境
链接集群环境,进行数据读取测试。
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里相应于该列就是主键,查问时能够应用主键查问 @Id private 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 { @Resource private UserSearchRepository userSearchRepository ; @Override public 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" ; } @Override public Iterable<UserSearch> esFindAll (){ return userSearchRepository.findAll() ; }}
三、集群控制台
这里是基于Kibana组件做的集群控制台。
1、数据列表
在discover面板中能够查看列表数据,也能够持续搜寻。
列表查问
列表搜寻
2、开发工具
在dev_tools面板中能够执行ElasticSearch相干命令。
查看集群衰弱状态
GET /_cat/health?v
查问全副数据
GET _search{ "query": { "match_all": {} }}
四、源代码地址
GitHub·地址https://github.com/cicadasmile/data-manage-parentGitEE·地址https://gitee.com/cicadasmile/data-manage-parent
举荐浏览:数据源治理系列
序号 | 题目 |
---|---|
01 | 数据源治理:主从库动静路由,AOP模式读写拆散 |
02 | 数据源治理:基于JDBC模式,适配和治理动静数据源 |
03 | 数据源治理:动静权限校验,表构造和数据迁徙流程 |
04 | 数据源治理:关系型分库分表,列式库分布式计算 |
05 | 数据源治理:PostGreSQL环境整合,JSON类型利用 |
06 | 数据源治理:基于DataX组件,同步数据和源码剖析 |
07 | 数据源治理:OLAP查问引擎,ClickHouse集群化治理 |
08 | 数据源治理:Kafka集群环境搭建,音讯存储机制详解 |