本文原始碼:GitHub·點這里 || GitEE·點這里
一、集群環境搭建
1、環境概覽
ES版本6.3.2,集群名稱esmaster,虛擬機centos7,
| 服務群 | 角色劃分 | 說明 |
|---|---|---|
| en-master | master | 主節點:esnode1 |
| en-node01 | slave | 從節點:esnode2 |
| en-node02 | slave | 從節點:esnode3 |
ElasticSearch基礎功能和用法:
- MySQL資料全量和增量方式向ES搜索引擎同步
- Linux系統Centos7環境搭建ElasticSearch中間件
- SpringBoot2整合ElasticSearch搜索引擎框架
在真正海量資料的業務場景中,ElasticSearch搜索引擎都是需要集群化管理的,實時搜素幾十億的資料十分常見,
2、集群配置
組態檔
vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml

主節點配置
# 集群主節點配置
cluster.name: esmaster
node.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
# 主節點IP
discovery.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;
@Service
public 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-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent

推薦閱讀:資料源管理系列
| 序號 | 標題 |
|---|---|
| 01 | 資料源管理:主從庫動態路由,AOP模式讀寫分離 |
| 02 | 資料源管理:基于JDBC模式,適配和管理動態資料源 |
| 03 | 資料源管理:動態權限校驗,表結構和資料遷移流程 |
| 04 | 資料源管理:關系型分庫分表,列式庫分布式計算 |
| 05 | 資料源管理:PostGreSQL環境整合,JSON型別應用 |
| 06 | 資料源管理:基于DataX組件,同步資料和原始碼分析 |
| 07 | 資料源管理:OLAP查詢引擎,ClickHouse集群化管理 |
| 08 | 資料源管理:Kafka集群環境搭建,訊息存盤機制詳解 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/142350.html
標籤:Java
上一篇:Java多執行緒詳解總結
