前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据源管理 | 搜索引擎框架,ElasticSearch集群模式

数据源管理 | 搜索引擎框架,ElasticSearch集群模式

作者头像
知了一笑
发布2020-07-17 17:28:57
6490
发布2020-07-17 17:28:57
举报
文章被收录于专栏:知了一笑知了一笑

一、集群环境搭建

1、环境概览

ES版本6.3.2,集群名称esmaster,虚拟机centos7。

ElasticSearch基础功能和用法:

在真正海量数据的业务场景中,ElasticSearch搜索引擎都是需要集群化管理的,实时搜索几十亿的数据十分常见。

2、集群配置

配置文件

代码语言:javascript
复制
vim /opt/elasticsearch-6.3.2/config/elasticsearch.yml

主节点配置

代码语言:javascript
复制
# 集群主节点配置
cluster.name: esmaster
node.master: true

# 节点名称 
node.name: esnode1

# 开发访问
network.host: 0.0.0.0

从节点配置

注意这里两个从节点配置,node.name分别配置为esnode2和esnode3即可。

代码语言:javascript
复制
# 集群名称
cluster.name: esmaster

# 节点名称
node.name: esnode2

# 开发访问
network.host: 0.0.0.0

# 主节点IP
discovery.zen.ping.unicast.hosts: ["192.168.72.133"]

内存权限

代码语言:javascript
复制
vim /etc/sysctl.conf

# 添加内容
vm.max_map_count=262144

# 执行
sysctl -p

3、集群启动

添加esroot用户,并授权。

代码语言:javascript
复制
/opt/elasticsearch-6.3.2/bin/elasticsearch

单服务查看

代码语言:javascript
复制
ps -aux |grep elasticsearch

集群状态查看

代码语言:javascript
复制
http://localhost:9200/_cluster/health?pretty

{
  "cluster_name" : "esmaster",  # 集群名称
  "status" : "green",   # 绿:健康,黄:亚健康,红:病态
  "timed_out" : false,  # 是否超时
  "number_of_nodes" : 3, # 节点个数
}

二、集群模式测试

1、环境配置

dev环境

配置单个节点,选择任意单节点,进行数据写入测试。

代码语言:javascript
复制
spring:
  data:
    elasticsearch:
      # 集群名称
      cluster-name: esmaster
      # 单节点
      # cluster-nodes: en-master:9300
      # cluster-nodes: en-node01:9300
      cluster-nodes: en-node02:9300

test环境

链接集群环境,进行数据读取测试。

代码语言:javascript
复制
spring:
  data:
    elasticsearch:
      # 集群名称
      cluster-name: esmaster
      # 集群节点
      cluster-nodes: en-master:9300,en-node01:9300,en-node02:9300

当然所有的操作都可以基于单节点或者集群环境测试。

2、实例对象

基于注解管理数据对象实例。

代码语言:javascript
复制
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、操作案例

提供一个数据查询操作和数据写入操作。

代码语言:javascript
复制
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相关命令。

查看集群健康状态

代码语言:javascript
复制
GET /_cat/health?v

查询全部数据

代码语言:javascript
复制
GET _search
{
  "query": {
    "match_all": {}
  }
}

四、源代码地址

代码语言:javascript
复制
GitHub·地址
https://github.com/cicadasmile/data-manage-parent
GitEE·地址
https://gitee.com/cicadasmile/data-manage-parent
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 知了一笑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、集群环境搭建
    • 1、环境概览
      • 2、集群配置
        • 3、集群启动
        • 二、集群模式测试
          • 1、环境配置
            • 2、实例对象
              • 3、操作案例
              • 三、集群控制台
                • 1、数据列表
                  • 2、开发工具
                  • 四、源代码地址
                  相关产品与服务
                  Elasticsearch Service
                  腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档