ELK组件
- Kibana {数据可视化} 页面
- ElasticSearch{数据存储和检索引擎} 数据库
- LogStash{数据处理引擎} 处理应用
- Beats{采集一切数据} Agent
ElasticSearch
分布式、多用户、全文搜索引擎、Java开发
基本概念
- index
- type
- document
ES Cluster
- 概念:
- shard:分片
- replica:副本
存储过程:shard=Hash(routing)%shard_number,找到对应的shard,根据shard找到对应的node,转发对应的node,存储,再给其他副本进行同步,没有使用一致性hash,所以不支持shard扩展,
单个文档数据:shard=Hash(routing)%shard_number,可能存在多个replica,所以查询有一个负载均衡
全文搜索(query+fetch):读数据的主入口是master,还是所有节点,涉及到排序,所以会有一个节点进行全局排序,排序之后,再根据ID获取数据
Client
- Java Low Level REST Client
- Java High Level REST Client
索引[index]:【表的概念】shar & replica提供了分布式存储 文档[document]:多个字段,结构+字段【一行记录的概念】映射[mapping]:文档写入index之前会进行分析,_index:_type: 表-id:—source:-version: 创建索引:restful接口 索引库,非结构化的数据 数据的插入 数据的更新,覆盖更新,局部更新, 删除:删除不存在的数据,不会立即删除,标识为已删除,后端在什么时候删除了 查询:ID,查询所有,关键字搜索,DSL(domain specific Language)搜索,全文搜索 高亮,聚合,head 查询批量查询分页:分片映射: String,text,keyword查询: term terms range:gt,lt exists: match: bool: must,must_not,shouldfilter:精确语句中文分词:IK,jieba,THULAC全文搜索:相关性,分词