数据源管理 | 搜索引擎框架,ElasticSearch集群模式
生活随笔
收集整理的這篇文章主要介紹了
数据源管理 | 搜索引擎框架,ElasticSearch集群模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文源碼: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 -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;@Service public 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面板中可以查看列表數據,也可以繼續搜索。
列表查詢
列表搜索
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集群環境搭建,消息存儲機制詳解 |
總結
以上是生活随笔為你收集整理的数据源管理 | 搜索引擎框架,ElasticSearch集群模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Server.MapPath(path)
- 下一篇: ORA-16038的解决(日志无法归档)