数据源管理 | 搜索引擎框架,ElasticSearch集群模式
本文源码:GitHub·点这里 || GitEE·点这里
一、集群环境搭建
1、环境概览
ES版本6.3.2,集群名称esmaster,虚拟机centos7。
服务群 | 角色划分 | 说明 |
---|---|---|
en-master | master | 主节点:esnode1 |
en-node01 | slave | 从节点:esnode2 |
en-node02 | slave | 从节点:esnode3 |
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
推荐阅读:数据源管理系列
数据源管理 | 搜索引擎框架,ElasticSearch集群模式的更多相关文章
- Hadoop框架:集群模式下分布式环境搭建
本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...
- 使用Elasticsearch Operator快速部署Elasticsearch集群
转载自:https://www.qikqiak.com/post/elastic-cloud-on-k8s/ 随着 kubernetes 的快速发展,很多应用都在往 kubernetes 上面迁移,现 ...
- 升级 Elasticsearch 集群数量实战记录
搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...
- 日志分析平台ELK之搜索引擎Elasticsearch集群
一.简介 什么是ELK?ELK是Elasticsearch.Logstash.Kibana这三个软件的首字母缩写:其中elasticsearch是用来做数据的存储和搜索的搜索引擎:logstash是数 ...
- 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知
摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...
- Elasticsearch集群 管理
第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...
- 微服务管理平台nacos虚拟ip负载均衡集群模式搭建
一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...
- IntelliJ IDEA的下载、安装和WordCount的初步使用(本地模式和集群模式)
包括: IntelliJ IDEA的下载 IntelliJ IDEA的安装 IntelliJ IDEA中的scala插件安装 用SBT方式来创建工程 或 选择Scala方式来创建工程 本地模式或集群 ...
- Spark集群模式概述
作者:foreyou出处:http://www.foreyou.net/2015/06/22/spark-cluster-mode-overview/声明:本文采用以下协议进行授权: 署名-非商用|C ...
随机推荐
- 【JMeter_09】JMeter逻辑控制器__临界部分控制器<Critical Section Controller>
临界部分控制器<Critical Section Controller> 业务逻辑: 根据锁名来控制并发,同一个锁名之下,在同一时间点只能存在一个运行中,适用于控制并发的场景 锁名类型: ...
- php配置文件
mysql的配置文件是 my.iniphp配置文件是 php.iniThinKPHP配置文件 config.phpApche配置文件 httpd-confThinkPHP的运行,开启调试模式配置为 a ...
- 138 张图带你 MySQL 入门
SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query ...
- Python3-设计模式-装饰器模式
装饰器模式 动态的给原有对象添加一些额外的职责,面向切面编程(AOP),多用于和主业务无关,但又必须的业务,如:登录认证.加锁.权限检查等 Python代码实现示例 需求点: 1.在old_func( ...
- 2020/6/10 JavaScript高级程序设计 BOM
BOM(浏览器对象模型):提供用于访问浏览器的对象. 8.1 window对象 window是BOM的核心对象,表示浏览器的一个实例. JavaScript访问浏览器窗口的接口 ECMAScript规 ...
- 手把手教你把web应用丢到服务器上(单页应用+ 服务端渲染)
前两篇文章中,我分别介绍了框架的搭建利用vue-cli + vant搭建一个移动端开发模板,并且把项目中axios请求和vuex的用法做了简要的介绍如何在项目里管理好axios请求与vuex.在这两篇 ...
- webpack4.X + react-router 路由跳转
webpack4.X react-router 环境准备工作:windows7.webStorm 2017.1.4.Nodejs 8.7.0.npm 5.4.2 PS:安装的时我们都带上版本,这样即 ...
- AspNetCore&Coding持续集成
对于现有很多持续集成工具来讲,功能越来越高级,使用了 Coding 有大半年时间,越发觉好用,特别是没钱续费服务器时,找到了新的羊毛. 一.众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都 ...
- 常见的H5移动端Web页面Bug问题解决方案总汇
解决jquery ajax调用远程接口的跨域问题 首先,接口必须允许远程调用.这是后端或者运维的事情.你必须保证你得到的一个接口是允许远程调用的.否则,就没啥了. $.ajax({ type:'get ...
- 关于display的box和flex布局
关于二者的区别于联系,在知乎上看到有人这么回答的 flex 2012年的语法,也将是以后标准的语法,大部分浏览器已经实现了无前缀版本. box是2009年的语法,已经过时,是需要加上对应前缀的. 另外 ...