1.Elasticsearch的数据组织架构 1.1.Elasticsearch结构概念 集群(cluster):拥有相同cluster-name的elasticsearch结点的集合(每个结点其实就是一个elasticsearch进程实例). 节点(node):集群中的一个 Elasticearch 实例. 索引(index):相当于关系型数据库中database的概念,比如2018.01.01日志的IDS日志单独形成一个索引,IDS-2018.01.01,这是一个逻辑的概念. 分片(shar…
一.相关概念介绍 1)集群(cluster) 一个集群(cluster)由一个或多个节点组成. 这些节点具有相同的cluster.name,它们协同工作,分享数据和负载.当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据. 2)节点(node) 一个节点(node)就是一个Elasticsearch实例. 集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引.增加或移除节点等.主节点不参与文档级别的变更或搜索,这意味着在流量增长的时候,该主节…
前言 最近公司分了个ELK相关的任务给我,在一边学习一边工作之余,总结下这些天来的学习历程和踩坑记录. 首先介绍下使用ELK的项目背景:在项目的数据库里有个表用来存储消息队列的消费日志,这些日志用于开发者日后的维护.每当客户端生产一条消息并发送到消息队列后,就会插入一条对应的记录到数据库里.当这条消息被消费之后,又会更新数据库里对应的记录的几个column的值,比如status.updated_on这些常用的column. 由于客户每天生产消费的消息很多,导致数据库里的这个表里的数据很多,长年累…
前言 在上一篇中介绍了ElasticSearch集群和kinaba的安装教程,本篇文章就来讲解下 ElasticSearch的DSL语句使用. ElasticSearch DSL 介绍 Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询.将查询DSL视为查询的AST(抽象语法树),它由两种子句组成: 叶子查询子句: 叶查询子句中寻找一个特定的值在某一特定领域,如 match,term或 range查询.这些查询可以自己使用. 复合查询子句 复合查询子句包装其…
一.概述 Kakfa起初是由LinkedIn公司开发的一个分布式的消息系统,后成为Apache的一部分,它使用Scala编写,以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spark等都支持与Kafka集成.   Kafka凭借着自身的优势,越来越受到互联网企业的青睐,唯品会也采用Kafka作为其内部核心消息引擎之一.Kafka作为一个商业级消息中间件,消息可靠性的重要性可想而知.如何确保消息的精确传输?如何确保消息的准确存储?…
一.分布式架构详解 1.分布式发展历程 1.1 单点集中式 特点:App.DB.FileServer都部署在一台机器上.并且访问请求量较少 1.2  应用服务和数据服务拆分  特点:App.DB.FileServer分别部署在独立服务器上.并且访问请求量较少 1.3  使用缓存改善性能  特点:数据库中频繁访问的数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的压力 1.4 应用服务器集群  特点:多台应用服务器通过负载均衡同时对外提供服务,解决单台服务器处理能力上限的问题 1.5 数据…
Elasticsearch 是最近两年异军突起的一个兼有搜索引擎和NoSQL数据库功能的开源系统,基于Java/Lucene构建.Elasticsearch 看名字就能大概了解下它是一个弹性的搜索引擎.首先弹性隐含的意思是分布式,单机系统是没法弹起来的,然后加上灵活的伸缩机制,就是这里的 Elastic 包含的意思.它的搜索存储功能主要是 Lucene 提供的,Lucene 相当于其存储引擎,它在之上封装了索引,查询,以及分布式相关的接口. Elasticsearch 中的几个概念集群(Clus…
问题与分析 在使用Elasticsearch进行index数据时,发现报错如下: java.lang.IllegalArgumentException: cannot write xcontent for unknown value of type class java.math.BigDecimal at org.elasticsearch.common.xcontent.XContentBuilder.unknownValue(XContentBuilder.java:755) at org…
外圈的层次可以依赖内层,反之不可以:内圈核心的实体代表业务,不可以依赖其所处的技术环境. 这是著名软件大师Bob大叔提出的一种架构,也是当前各种语言开发架构.干净架构提出了一种单向依赖关系,从而在逻辑上形成一种向上的抽象系统. 这种干净的架构图如下: 依赖规则Dependency Rule 上图中同心圆代表各种不同领域的软件.一般来说,越深入代表你的软件层次越高.外圆是战术实现机制,内圆的是战略核心策略. 使此体系架构能够工作的关键是依赖规则.这条规则规定源代码只能向内依赖,在最里面的部分对外面…
方法 Elasticsearch默认会配置1G的JVM堆的初始值和最大值,该jvm参数被配置在/config/jvm.options里: -Xms1g -Xmx1g 如果只是个人开发小项目,可以把参数改小些,比如: -Xms512m -Xmx512m 这个jvm.options用来配置各种jvm参数,比如GC.GC logging.heap dumps等.…