分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介

简介: 分布式系列教程(26) -分布式日志搜集工具Elasticsearch简介

1. Elasticsearch简介

Elasticsearch (ES)是一个基于Lucene构建的开源、分布式、RESTful 接口全文搜索引擎。

Elasticsearch 还是一个分布式文档数据库,其中每个字段均是被索引的数据且可被搜索,它能够扩展至数以百计的服务器存储以及处理PB级的数据。它可以在很短的时间内在储、搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。

Elasticsearch就是为高可用和可扩展而生的。可以通过购置性能更强的服务器来完成。

官网:https://www.elastic.co/downloads/elasticsearch

中文社区:https://es.xiaoleilu.com/

XXL组织也有相关的产品:ElastiJob—XXL-JOB

2. Elasticsearch优势

「横向可扩展性」:只需要增加台服务器,做一点儿配置,启动一下Elasticsearch就可以并入集群。

「分片机制提供更好的分布性」:同一个索引分成多个分片(sharding), 这点类似于HDFS的块机制;分而治之的方式可提升处理效率。

「高可用」:提供复制( replica) 机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。

3. Elasticsearch应用场景

大型分布式日志分析系统ELKElasticsearch(存储日志)+ Logstash(收集日志) + Kibana(展示数据)

应用于:大型电商商品搜索系统、网站站内搜索、网盘搜索引擎等。

例如:

  • Elasticsearch使用公司
  • 维基百科
  • The Guardian(国外新闻网站)
  • Stack Overflow(国外的程序异常讨论论坛)
  • GitHub(开源代码管理)
  • 电商网站
  • 日志数据分析
  • BI系统
  • 站内搜索
  • 。。。。。

4. Elasticsearch存储结构

Elasticsearch是文件存储,Elasticsearch是面向文档型数据库,一条数据在这里就是一个文档,用JSON作为文档序列化的格式,比如下面这条用户数据:

{
    "name" :     "ylw",
    "sex" :      0,
    "age" :      25
}

关系数据库 ⇒ 数据库 (会员数据库)⇒ 表 (用户表) ⇒ 行 ⇒ 列(Columns)

Elasticsearch ⇒ 索引(Index) ⇒ 类型(type) ⇒ 文档(Docments) ⇒ 字段(Fields)

5. Kibana可视化界面

Kibana是一个开源的分析和可视化平台,设计用于和Elasticsearch一起工作。

  • 可以用Kibana来搜索,查看,并和存储在Elasticsearch索引中的数据进行交互。
  • 可以轻松地执行高级数据分析,并且以各种图标、表格和地图的形式可视化数据。

Kibana使得理解大量数据变得很容易。它简单的、基于浏览器的界面使你能够快速创建和共享动态仪表板,实时显示Elasticsearch查询的变化。

6. Elasticsearch版本控制

1.为什么要进行版本控制CAS无锁?

答:为了保证数据再多线程操作下的准确性

2.悲观锁和乐观锁

悲观锁:假设会发生并发冲突,屏蔽一切可能违反数据准确性的操作

乐观锁:假设不会发生并发冲突,只在提交操作是检查是否违反数据完整性。

3.内部版本控制和外部版本控制

  • 内部版本控制:_version自增长,修改数据后,_version会自动的加1
  • 外部版本控制:为了保持_version与外部版本控制的数值一致,使用version_type=external检查数据当前的version值是否小于请求中的version值。
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
目录
相关文章
|
4月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
988 64
搭建ELK日志收集,保姆级教程
|
4月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
724 5
|
3月前
|
存储 Linux iOS开发
Elasticsearch Enterprise 9.1.5 发布 - 分布式搜索和分析引擎
Elasticsearch Enterprise 9.1.5 (macOS, Linux, Windows) - 分布式搜索和分析引擎
352 0
|
4月前
|
JSON 监控 Java
Elasticsearch 分布式搜索与分析引擎技术详解与实践指南
本文档全面介绍 Elasticsearch 分布式搜索与分析引擎的核心概念、架构设计和实践应用。作为基于 Lucene 的分布式搜索引擎,Elasticsearch 提供了近实时的搜索能力、强大的数据分析功能和可扩展的分布式架构。本文将深入探讨其索引机制、查询 DSL、集群管理、性能优化以及与各种应用场景的集成,帮助开发者构建高性能的搜索和分析系统。
357 0
|
8月前
|
存储 安全 Linux
Elasticsearch Enterprise 9.0 发布 - 分布式搜索和分析引擎
Elasticsearch Enterprise 9.0 (macOS, Linux, Windows) - 分布式搜索和分析引擎
358 0
|
8月前
|
存储 Linux iOS开发
Elasticsearch Enterprise 8.18 发布 - 分布式搜索和分析引擎
Elasticsearch Enterprise 8.18 (macOS, Linux, Windows) - 分布式搜索和分析引擎
328 0
|
存储 索引
Elasticsearch分布式架构
【11月更文挑战第2天】
262 1
|
SQL NoSQL MongoDB
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
一款基于分布式文件存储的数据库MongoDB的介绍及基本使用教程
418 0
|
9月前
|
安全 Java Linux
Linux安装Elasticsearch详细教程
Linux安装Elasticsearch详细教程
1757 64
|
8月前
|
JSON 安全 数据可视化
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
Kibana 是 Elastic Stack(原 ELK Stack)中的核心数据可视化工具,主要与 Elasticsearch 配合使用,提供强大的数据探索、分析和展示功能。elasticsearch安装在windows上一般是zip文件,解压到对应目录。文件,elasticsearch8.x以上版本是自动开启安全认证的。kibana安装在windows上一般是zip文件,解压到对应目录。elasticsearch的默认端口是9200,访问。默认用户是elastic,密码需要重置。
4351 0

热门文章

最新文章