Elastic

ElasticSearch基础环境准备

心已入冬 提交于 2020-01-02 10:32:03
Spring与ES整合使用 1、 准备工作 1.1 elasticsearch6.2.4 下载 1.2 数据库同步插件logstash 1.3 elasticsearch-head图形化管理界面下载 2、通过RESTful接口测试es的增删改查 2.1 增加 2.2 删除 2.3 获取 1、 准备工作 了解ES和solr的区别,两者都是基于lucene的全文检索引擎,两者之间的区别有什么。 1、solr在实时的操作数据时,会IO阻塞,导致性能下降。 2、es不需要zookeeper进行集群管理也可使用; 3、es仅支持JSON; 4、如果不是pb级的数据量,两者是没有多大差距的,github使用的是Es。 1.1 elasticsearch6.2.4 下载 1、https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-4 2、打开下载目录下的bin,选择这个文件打开;: 3、在postman工具中测试结果如下,说明安装成功 4、由于es对中文支持不好,比如空格什么的,所以需要Ik分词器,可以去github搜索elasticsearch-ik,找到自己的版本下载,解压至es目录下的plugins中,改名字为ik,重启服务即可。可以再日志中看到loadding plugins有analysis ik即可。 5

是否允许实体正文进行HTTP DELETE请求?

夙愿已清 提交于 2019-12-29 16:01:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 发出HTTP DELETE请求时,请求URI应该完全标识要删除的资源。 但是,是否可以在请求的实体中添加额外的元数据? #1楼 HTTP 1.1规范( RFC 7231 )的最新更新明确允许DELETE请求中的实体主体: DELETE请求消息中的有效负载没有定义的语义。 在DELETE请求上发送有效内容主体可能会导致某些现有实现拒绝该请求。 #2楼 似乎ElasticSearch使用以下代码: https ://www.elastic.co/guide/zh-CN/elasticsearch/reference/5.x/search-request-scroll.html#_clear_scroll_api 这意味着Netty支持这一点。 就像评论中提到的那样,情况可能不再如此 #3楼 在删除请求中使用主体的原因之一是为了实现乐观的并发控制。 您阅读记录的版本1。 GET /some-resource/1 200 OK { id:1, status:"unimportant", version:1 } 您的同事读取该记录的版本1。 GET /some-resource/1 200 OK { id:1, status:"unimportant", version:1 } 您的同事更改记录并更新数据库

基于elastic APM的链路跟踪

徘徊边缘 提交于 2019-12-28 14:01:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 今年上海团队开展了一个叫funlab的项目,小伙伴根据个人兴趣自愿报名参加,以项目主题的形式进行组队,利用业余时间来学习和研究一些热门的主题(Profiling, APM, Data Science(Statistics & Machine learning)),最后能够将这些研究的成果应用到我们实际的工作项目中。 我加入到APM(Application Performance Management)学习小组,组长和大部分成员是我们性能组的小伙伴,初期大家对现有APM技术,工具的学习和调研,最后选定开源的elastic APM作为我们第一阶段深入学习和应用的标的。团队的小伙伴,有研究前端js agent的,有研究后端 python agent的,有研究数据传输协议的,有专注在Splunk端对接的,我主要负责性能组调度平台和测试服务化平台的开发工作,因此在学习小组,主要负责elastic APM在实际项目中的集成和应用。 在公司Hackathon的评比中,我们的项目在cloud first类别中获得第一名,在受到大家认可的同时,大家继续学习其他一些主流APM相关技术。在这个学习团队,大家以调研,分享的方式相互学习,共同进步。 这篇文章,主要从APM相关基础知识的角度进行整理

Elastic Search使用java代码连接出错的问题及其解决方式:java.net.UnknowHostException:http://127.0.0.1

…衆ロ難τιáo~ 提交于 2019-12-24 12:52:55
Elastic Search使用java代码连接出错的问题及其解决方式 昨天将elastic Search 以及他的可视化界面管理工具 head 安装好了之后,今天便进入了 Elastic Search 整合 java 代码的操作,首先是连接指定地址、端口的es。 连接指定地址以及指定端口的es 代码如下: final String Host = "http://127.0.0.1"; final int port = 9300; /** * 新建一个settings * 这里返回的其实是BUILDER build里面包含了Settings、treeMap、setONce * 这里的put方法其实是build.getTreeMap().put(Key,value) */ Settings build = Settings.builder().put("cluster.name", "cluster-es").build(); // es下面的一个组件 TransportClient transportClient; try{ /** * 建立远程连接es * PreBuiltTransportClient 是 TransportClient 连接客户端的子类 * addTransportAddress() 是调用的

Elastic Search

戏子无情 提交于 2019-12-23 18:57:37
Elastic Search 是一种分布式,高性能,高可用,可伸缩的搜索和分析系统 中文手册: 点击打开链接 1.为什么不能纯用数据库搜索? 如:执行select * from students where name like '%张三%' 数据库会一条一条的扫描 每条记录指定字段的文本可能很长,对这些文本一一扫描判断是否包含所需的关键字,效率很低 另外,包含“张小三“的结果搜索不出来 另外如果数据量很大,超过了一台机器的容量,此时就必须使用多台机器进行数据存储,我们自己实现的话很麻烦,ES运营而生: 自动维护数据分布到多个节点的索引的简历,还有搜索请求分布到多个节点的执行 自动维护数据的冗余副本,保证一些机器宕机了,也不会丢失任何数据 封装很多高级功能,让我们能快速开发应用和开发更加复杂的应用:复杂的搜索功能,聚合分析的功能,基于地理位置的搜索(例如距离我当前位置1公里以内的烤肉店) 2.大规模数据 当系统数据量达到十亿、百亿级别时引发的问题思考: 用什么数据库好(mysql、Oracle、sybase...) 如何解决单点故障(Zookeeper、MQ、 lvs(Linux Virtual Server)、F5、A10) 如何保证数据安全性(热备(数据库运行,采用archive log mode方式备份)、冷备(将数据库关闭之后备份,)、异地多活(不同城市 独立数据中心

从Zookeeper 到 Elastic Job 的Simple Job使用(二)

心不动则不痛 提交于 2019-12-22 04:19:07
elastic job demo 一、zookeeper要有 上一篇文章写过了。。 二、maven引入 < dependency > < groupId > com . dangdang < / groupId > < artifactId > elastic - job - lite - core < / artifactId > < version > 2.1 .5 < / version > < / dependency > < ! -- 使用springframework自定义命名空间时引入 -- > < dependency > < groupId > com . dangdang < / groupId > < artifactId > elastic - job - lite - spring < / artifactId > < version > 2.1 .5 < / version > < / dependency > < dependency > < groupId > org . apache . zookeeper < / groupId > < artifactId > zookeeper < / artifactId > < version > 3.4 .9 < / version > < / dependency > 三、demo开发 package

滴滴从KV存储到NewSQL实战

不羁岁月 提交于 2019-12-21 04:29:51
0.导读 本文讲诉滴滴在分布式Nosql存储Fusion之上构建NewSQL的实践之路。详细描述Fusion-NewSQL的特性,应用场景,设计方案。 1.背景 Fusion-NewSQL是由滴滴自研的在分布式KV存储基础上构建的NewSQL存储系统。Fusion-NewSQ兼容了MySQL协议,支持二级索引功能,提供超大规模数据持久化存储和高性能读写。 ▍我们的问题 滴滴的业务快速持续发展,数据量和请求量急剧增长,对存储系统等压力与日俱增。虽然分库分表在一定程度上可以解决数据量和请求增加的需求,但是由于滴滴多条业务线(快车,专车,两轮车等)的业务快速变化,数据库加字段加索引的需求非常频繁,分库分表方案对于频繁的Schema变更操作并不友好,会导致DBA任务繁重,变更周期长,并且对巨大的表操作还会对线上有一定影响。同时,分库分表方案对二级索引支持不友好或者根本不支持。鉴于上述情况,NewSQL数据库方案就成为我们解决业务问题的一个方向。 ▍开源产品调研 最开始,我们调研了开源的分布式NewSQL方案:TIDB。虽然TIDB是非常优秀的NewSQL产品,但是对于我们的业务场景来说,TIDB并不是非常适合,原因如下: 我们需要一款高吞吐,低延迟的数据库解决方案,但是TIDB由于要满足事务,2pc方案天然无法满足低延迟(100ms以内的99rt,甚至50ms内的99rt) 我们的多数业务

Elastic Search学习笔记

心不动则不痛 提交于 2019-12-21 04:25:46
文章目录 关键词 常用命令 指定id新增 自动生成id新增 关键词 常用命令 指定id新增 手动指定document id(用于其他库倒进来时本身就含有id的情况) PUT / ecommerce / product / 1 { "name" : "gaolujie yagao" , "desc" : "gaoxiao meibai" , "price" : 30 , "producer" : "gaolujie producer" , "tags" : [ "meibai" , "fangzhu" ] } 注意:若已经有/ecommerce/product/1该数据,此时“新增”操作变成“全量替换”,旧数据被deleted。因此如果我们要需要创建,而不允许替换数据(逻辑:若已经有该条数据,则不进行任何操作(报错回滚)) 自动生成id新增 (2)自动生成document id(自动生成的id,长度为20个字符,URL安全,base64编码,GUID,分布式系统并行生成时不可能会发生冲突) POST / ecommerce / product { "name" : "gaolujie yagao" , "desc" : "gaoxiao meibai" , "price" : 30 , "producer" : "gaolujie producer" , "tags" : [

使用 Elastic Stack 来监控和调优 Golang 应用程序

吃可爱长大的小学妹 提交于 2019-12-21 04:03:10
Golang 因为其语法简单,上手快且方便部署正被越来越多的开发者所青睐,一个 Golang 程序开发好了之后,势必要关心其运行情况,今天在这里就给大家介绍一下如果使用 Elastic Stack 来分析 Golang 程序的内存使用情况,方便对 Golang 程序做长期监控进而调优和诊断,甚至发现一些潜在的内存泄露等问题。 Elastic Stack 其实是一个集合,包含 Elasticsearch、Logstash 和 Beats 这几个开源软件,而 Beats 又包含 Filebeat、Packetbeat、Winlogbeat、Metricbeat 和新出的 Heartbeat,呵呵,有点多吧,恩,每个 beat 做的事情不一样,没关系,今天主要用到 Elasticsearch、Metricbeat 和 Kibana 就行了。 Metricbeat 是一个专门用来获取服务器或应用服务内部运行指标数据的收集程序,也是 Golang 写的,部署包比较小才10M 左右,对目标服务器的部署环境也没有依赖,内存资源占用和 CPU 开销也较小,目前除了可以监控服务器本身的资源使用情况外,还支持常见的应用服务器和服务,目前支持列表如下: Apache Module Couchbase Module Docker Module HAProxy Module kafka Module

Elastic Stack之kibana入门

假装没事ソ 提交于 2019-12-21 04:02:51
简述 为了解决公司的项目在集群环境下查找日志不便的问题,在做过简单调研后,我选用Elastic公司的Elastic Stack产品作为我们的日志收集,存储,分析工具。 我们通过下面张图来看下各个组件的用处: 我们可以使用logstash来收集日志,Elasticsearch存储日志,Kibana搜索并展示可视化的页面给用户。这是一套成熟的开源产品,各个组件都是可以单独部署的,官方提供丰富的插件,天生支持集群,入门简单,可拓展性极强。 Kibana产品介绍: https://www.elastic.co/cn/products/kibana Kibana下载页: https://www.elastic.co/downloads/kibana Kibana用户指南: https://www.elastic.co/guide/en/kibana/current/index.html kibana安装和系统设置 接下来我们在linux下的安装,假设你已经安装了Elasticsearch,logstash,并且安装了jdk 1.8 使用 cat /etc/centos-release 查看系统版本:   CentOS Linux release 7.2.1511 (Core) 使用 cat /proc/version 查看系统内核   Linux version 3.10.0-327.el7