本文源码: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

推荐阅读:数据源管理系列

序号 标题
01 数据源管理:主从库动态路由,AOP模式读写分离
02 数据源管理:基于JDBC模式,适配和管理动态数据源
03 数据源管理:动态权限校验,表结构和数据迁移流程
04 数据源管理:关系型分库分表,列式库分布式计算
05 数据源管理:PostGreSQL环境整合,JSON类型应用
06 数据源管理:基于DataX组件,同步数据和源码分析
07 数据源管理:OLAP查询引擎,ClickHouse集群化管理
08 数据源管理:Kafka集群环境搭建,消息存储机制详解

数据源管理 | 搜索引擎框架,ElasticSearch集群模式的更多相关文章

  1. Hadoop框架:集群模式下分布式环境搭建

    本文源码:GitHub·点这里 || GitEE·点这里 一.基础环境配置 1.三台服务 准备三台Centos7服务,基础环境从伪分布式环境克隆过来. 133 hop01,134 hop02,136 ...

  2. 使用Elasticsearch Operator快速部署Elasticsearch集群

    转载自:https://www.qikqiak.com/post/elastic-cloud-on-k8s/ 随着 kubernetes 的快速发展,很多应用都在往 kubernetes 上面迁移,现 ...

  3. 升级 Elasticsearch 集群数量实战记录

    搜索引擎 升级 Elasticsearch 集群数量实战记录 现在线上有一个elasticsearch集群搜索服务有三台elasticsearch实例(es1.es2.es3),打算将其升级为5台(增 ...

  4. 日志分析平台ELK之搜索引擎Elasticsearch集群

    一.简介 什么是ELK?ELK是Elasticsearch.Logstash.Kibana这三个软件的首字母缩写:其中elasticsearch是用来做数据的存储和搜索的搜索引擎:logstash是数 ...

  5. 我的ElasticSearch集群部署总结--大数据搜索引擎你不得不知

    摘要:世上有三类书籍:1.介绍知识,2.阐述理论,3.工具书:世间也存在两类知识:1.技术,2.思想.以下是我在部署ElasticSearch集群时的经验总结,它们大体属于第一类知识“techknow ...

  6. Elasticsearch集群 管理

    第7章 深入Elasticsearch集群 启动一个Elasticsearch节点时,该节点会开始寻找具有相同集群名字并且可见的主节点.如 果找到主节点,该节点加入一个已经组成了的集群:如果没有找到, ...

  7. 微服务管理平台nacos虚拟ip负载均衡集群模式搭建

    一.Nacos简介 Nacos是用于微服务管理的平台,其核心功能是服务注册与发现.服务配置管理. Nacos作为服务注册发现组件,可以替换Spring Cloud应用中传统的服务注册于发现组件,如:E ...

  8. IntelliJ IDEA的下载、安装和WordCount的初步使用(本地模式和集群模式)

    包括: IntelliJ IDEA的下载  IntelliJ IDEA的安装 IntelliJ IDEA中的scala插件安装 用SBT方式来创建工程 或 选择Scala方式来创建工程 本地模式或集群 ...

  9. Spark集群模式概述

    作者:foreyou出处:http://www.foreyou.net/2015/06/22/spark-cluster-mode-overview/声明:本文采用以下协议进行授权: 署名-非商用|C ...

随机推荐

  1. 【JMeter_09】JMeter逻辑控制器__临界部分控制器<Critical Section Controller>

    临界部分控制器<Critical Section Controller> 业务逻辑: 根据锁名来控制并发,同一个锁名之下,在同一时间点只能存在一个运行中,适用于控制并发的场景 锁名类型: ...

  2. php配置文件

    mysql的配置文件是 my.iniphp配置文件是 php.iniThinKPHP配置文件 config.phpApche配置文件 httpd-confThinkPHP的运行,开启调试模式配置为 a ...

  3. 138 张图带你 MySQL 入门

    SQL 基础使用 MySQL 是一种关系型数据库,说到关系,那么就离不开表与表之间的关系,而最能体现这种关系的其实就是我们接下来需要介绍的主角 SQL,SQL 的全称是 Structure Query ...

  4. Python3-设计模式-装饰器模式

    装饰器模式 动态的给原有对象添加一些额外的职责,面向切面编程(AOP),多用于和主业务无关,但又必须的业务,如:登录认证.加锁.权限检查等 Python代码实现示例 需求点: 1.在old_func( ...

  5. 2020/6/10 JavaScript高级程序设计 BOM

    BOM(浏览器对象模型):提供用于访问浏览器的对象. 8.1 window对象 window是BOM的核心对象,表示浏览器的一个实例. JavaScript访问浏览器窗口的接口 ECMAScript规 ...

  6. 手把手教你把web应用丢到服务器上(单页应用+ 服务端渲染)

    前两篇文章中,我分别介绍了框架的搭建利用vue-cli + vant搭建一个移动端开发模板,并且把项目中axios请求和vuex的用法做了简要的介绍如何在项目里管理好axios请求与vuex.在这两篇 ...

  7. webpack4.X + react-router 路由跳转

    webpack4.X  react-router 环境准备工作:windows7.webStorm 2017.1.4.Nodejs 8.7.0.npm 5.4.2 PS:安装的时我们都带上版本,这样即 ...

  8. AspNetCore&Coding持续集成

    对于现有很多持续集成工具来讲,功能越来越高级,使用了 Coding 有大半年时间,越发觉好用,特别是没钱续费服务器时,找到了新的羊毛. 一.众多持续集成工具 现在可用的持续集成工具繁多,各大云服务商都 ...

  9. 常见的H5移动端Web页面Bug问题解决方案总汇

    解决jquery ajax调用远程接口的跨域问题 首先,接口必须允许远程调用.这是后端或者运维的事情.你必须保证你得到的一个接口是允许远程调用的.否则,就没啥了. $.ajax({ type:'get ...

  10. 关于display的box和flex布局

    关于二者的区别于联系,在知乎上看到有人这么回答的 flex 2012年的语法,也将是以后标准的语法,大部分浏览器已经实现了无前缀版本. box是2009年的语法,已经过时,是需要加上对应前缀的. 另外 ...