草庐IT

详解 canal 同步 MySQL 增量数据到 ES

canal是阿里知名的开源项目,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。这篇文章,我们手把手向同学们展示使用canal将MySQL增量数据同步到ES 。1集群模式图中server对应一个canal运行实例,对应一个JVM。server中包含1..n个instance,我们可以将instance理解为配置任务。instance包含如下模块:eventParser数据源接入,模拟slave协议和master进行交互,协议解析eventSinkParser和Store链接器,进行数据过滤,加工,分发的工作eventStore数据存储metaManager增量订阅&消费信息

MySQL索引&ES索引

MySQLMySQL索引的种类按照索引列值的唯一性:索引可分为唯一索引和非唯一索引;唯一索引:此索引的每一个索引值只对应唯一的数据记录,对于单列唯一性索引,这保证单列不包含重复的值。对于多列唯一性索引,保证多个值的组合不重复。主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。索引列的个数:单列索引和复合索引;按照索引列的物理组织方式:聚集索引和非聚集索引(主键的B+Tree就是聚集索引)聚集索引(也叫聚簇索引)中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常

java与es8实战之六:用JSON创建请求对象(比builder pattern更加直观简洁)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos本篇概览本文是《java与es8实战》系列的第六篇,经过前面的实战,咱们初步掌握了一些Java对ES的基本操作,通过发送请求对象(例如CreateIndexResponse)到ES服务端,达到操作ES的目的,但是细心的您可能发现了:请求对象可能很复杂,例如多层对象嵌套,那么用代码来创建这些请求对象也必然不会容易今天的文章,咱们先来体验用代码创建请求对象的不便之处,再尝试ES官方给我们提供的解决之道:用JSON创建请求对象接下来,咱们从一个假设的任务开始任

ES:一次分片设计问题导致的故障

###现象:1.单节点CPU持续高 2.写入骤降3.线程池队列积压,但没有reject 4.使用方没有记录日志###排查1.ES监控只能看到相应的结果指标,无法反应出原因。2.ES日志:大量日志打印相关异常(routate等调用栈)core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:263)atorg.apache.logging.log4j.core.appender.FileManager.writeToDestination3.查询CPU的使用,GET_nodes/hot_thread

解决单节点es索引yellow

现象单节点的es,自动创建索引后,默认副本个数为1,索引状态为yellow临时解决修改副本个数为0永久解决方法1、修改elasticsearch.yml文件,添加配置并重启esnumber_of_replicas:副本分片数,默认为1number_of_replicas:0方法2、通过索引模板设置副本分片个数为0设置索引模式设置索引{"index":{ "lifecycle":{"name":"k8s-test"},"number_of_replicas":"0","refresh_interval":"5s"}}新建索引验证

ES踩坑记录之UNASSIGNED分片无法恢复

问题背景换节点我们线上有一套ES集群,三台机器,共运行了6个节点。一直在线上跑了几个月也一直没出什么问题。然而好巧不巧,就在昨天,集群中的3号节点磁盘出现故障,导致机器直接瘫痪。本来大家觉得问题不大,ES不是有容灾吗,换个新节点上去不就能自动分配分片了。unassigned当我们信心满满换了个新节点上去之后,集群状态一直为red,我们发现一直存在180多个unassignedshards。curl-XGEThttp://localhost:9200/_cluster/health{"cluster_name":"escluster","status":"red","timed_out":fal

微服务中间件--分布式搜索ES

分布式搜索ES11.分布式搜索ESa.介绍ESb.IK分词器c.索引库操作(类似于MYSQL的Table)d.查看、删除、修改索引库e.文档操作(类似MYSQL的数据)1)添加文档2)查看文档3)删除文档4)修改文档f.RestClient操作索引库1)创建索引库2)删除索引库/判断索引库g.RestClient操作文档1)新增文档2)查询文档3)修改文档4)删除文档5)批量导入数据到ESh.DSL查询文档1)查询所有2)全文检索查询3)精确查询4)地理查询5)复合查询1)FunctionScoreQuery2)BooleanQueryi.DSL搜索结果处理1)排序2)分页3)高亮j.Rest

【异常】ES报错ResponseException: method [HEAD], host [], URI [/], status line [HTTP/1.1 401 Unauthorized]

一、报错内容Causedby:org.elasticsearch.client.ResponseException:method[HEAD],host[http://IP地址:端口号],URI[/],statusline[HTTP/1.1401Unauthorized] atorg.elasticsearch.client.RestClient.convertResponse(RestClient.java:283) atorg.elasticsearch.client.RestClient.performRequest(RestClient.java:261) atorg.elasticse

ES映射操作 已创建的ES索引 增加映射字段(类似DB库增加给表增加字段)一样

ES已存在的索引下添加映射解释如下:给ticketing_order_info的索引,增加映射字段verificationCodeState,字段类型为integer实现:PUT/ticketing_order_info/_mapping/{    "properties":{        "verificationCodeState":{            "type":"integer"        }    }}PUT/ticketing_order_info/_mapping/{    "properties":{        "isTouristGroupName":{  

java - 使用 OpenGL ES 2.0 的 Android 动态壁纸?

有没有人设法让OpenGLES2.0在动态壁纸中工作?我有一个使用OpenGLES2.0的类,它作为GLSurfaceView的渲染器运行良好。但是,我希望它可以用作动态壁纸。我找到了RobertGreen的GLWallpaperService,但它基于旧版本的GLSurfaceView,不支持运行OpenGLES2.0所需的setEGLContextClientVersion。 最佳答案 我通过扩展GLSurfaceView然后将其包装在壁纸服务中,设法让基于opengl的LWP工作。我没有具体测试opengles2.0是否适用于