kafka同步到Elasticsearch

搭建大型分布式服务(三十三)十分钟搭SpringBoot积木 - 完成Kafka消息转存到DB 系列文章目录 文章目录系列文章目录前言一、本文要点二、开发环境三、容器模式四、小结 前言 玩转SpringBoot,像搭积木一样简单。消费kafka消息,然后把数据存储到DB,这是一个很典型的业务了,相信每个小伙伴们都有类似的需求。遇到这类需求,大部分的做法都是从零开始搭建一个消费工程。这样的重复劳作无疑是非常的繁琐的,但如果我们只是仅仅把kafka消息转换成另外一个格式存储到DB,有没有通用的架构呢? 一、本文要点 前面的文章,介绍了基于Jolt如何实现业务型的ETL工具,本文将介绍这款 阅读详情
+]

1、kafka同步到Elasticsearch方式?

目前已知常用的方式有四种:
1)logstash_input_kafka插件;
缺点:不稳定(ES中文社区讨论)
2)spark stream同步;
缺点:太庞大
3)kafka connector同步;
4)自写程序读取、解析、写入
这里写图片描述
本文主要基于kafka connector实现kafka到Elasticsearch全量、增量同步。

2、从confluenct说起

LinkedIn有个三人小组出来创业了—正是当时开发出Apache Kafka实时信息列队技术的团队成员,基于这项技术Jay Kreps带头创立了新公司Confluent。Confluent的产品围绕着Kafka做的。
Confluent Platform简化了连接数据源到Kafka,用Kafka构建应用程序,以及安全,监控和管理您的Kafka的基础设施。
confluent组成如下所示:
这里写图片描述

1)Apache Kafka
消息分发组件,数据采集后先入Kafka。
2)Schema Registry
Schema管理服务,消息出入kafka、入hdfs时,给数据做序列化/反序列化处理。
3)Kafka Connect
提供kafka到其他存储的管道服务,此次焦点是从kafka到hdfs,并建立相关HIVE表。
4)Kafka Rest Proxy
提供kafka的Rest API服务。
5)Kafka Clients
提供Client编程所需SDK。
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

默认端口对应表:

组件 | 端口

Apache Kafka brokers (plain text):9092

Confluent Control Center:9021

Kafka Connect REST API:8083

REST Proxy:8082

Schema Registry REST API:8081

ZooKeeper:2181

3、kafka connector介绍。

Kafka 0.9+增加了一个新的特性 Kafka Connect,可以更方便的创建和管理数据流管道。它为Kafka和其它系统创建规模可扩展的、可信赖的流数据提供了一个简单的模型。

通过 connectors可以将大数据从其它系统导入到Kafka中,也可以从Kafka中导出到其它系统。

Kafka Connect可以将完整的数据库注入到Kafka的Topic中,或者将服务器的系统监控指标注入到Kafka,然后像正常的Kafka流处理机制一样进行数据流处理。

而导出工作则是将数据从Kafka Topic中导出到其它数据存储系统、查询系统或者离线分析系统等,比如数据库、 Elastic Search、 Apache Ignite等。

KafkaConnect有两个核心概念:Source和Sink。 Source负责导入数据到Kafka,Sink负责从Kafka导出数据,它们都被称为Connector。

kafkaConnect通过Jest实现Kafka对接Elasticsearch。

4、kafka connector安装

实操非研究性的目的,不建议源码安装。
直接从官网down confluent安装即可。地址:https://www.confluent.io/download/

如下,解压后既可以使用。

[root@kafka_no1 confluent-3.3.0]# pwd
/home/confluent/confluent-3.3.0

[root@kafka_no1 confluent-3.3.0]# ls -al
total 32
drwxrwxr-x. 7 root root 4096 Dec 16 10:08 .
drwxr-xr-x. 3 root root 4096 Dec 20 15:34 ..
drwxr-xr-x. 3 root root 4096 Jul 28 08:30 bin
drwxr-xr-x. 18 root root 4096 Jul 28 08:30 etc
drwxr-xr-x. 2 root root 4096 Dec 21 15:34 logs
-rw-rw-r--. 1 root root 871 Jul 28 08:45 README
drwxr-xr-x. 10 root root 4096 Jul 28 08:30 share
drwxrwxr-x. 2 root root 4096 Jul 28 08:45 src
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

5、kafka connector模式

Kafka connect 有两种工作模式
1)standalone:在standalone模式中,所有的worker都在一个独立的进程中完成。

2)distributed:distributed模式具有高扩展性,以及提供自动容错机制。你可以使用一个group.ip来启动很多worker进程,在有效的worker进程中它们会自动的去协调执行connector和task,如果你新加了一个worker或者挂了一个worker,其他的worker会检测到然后在重新分配connector和task。

6、kafka connector同步步骤

前提:

$ confluent start
 
  • 1

如下的服务都需要启动:

Starting zookeeper
zookeeper is [UP] ——对应端口:2181
Starting kafka
kafka is [UP]——对应端口:9092
Starting schema-registry
schema-registry is [UP]——对应端口:8081
Starting kafka-rest
kafka-rest is [UP]
Starting connect
connect is [UP]
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

可以,netstat -natpl 查看端口是否监听ok。

步骤1:创建topic

./kafka-topics.sh --create --zookeeper 110.118.7.11 :2181 --replication-factor 3 --partitions 1 --topic  test-elasticsearch-sink
 
  • 1

步骤2:生产者发布消息

假定avrotest topic已经创建。

./kafka-avro-console-producer  --broker-list 110.118.7.11:9092 --topic test-elasticsearch-sink \
         --property value.schema='{"type":"record","name":"myrecord","fields":[{"name":"f1","type":"string"}]}'

{"f1": "value1"}
{"f1": "value2"}
{"f1": "value3"}
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

步骤3:消费者订阅消息测试(验证生产者消息可以接收到)

./kafka-avro-console-consumer --bootstrap-server 110.118.7.11:9092 :9092 --topic  test-elasticsearch-sink --from-beginning
 
  • 1

步骤4:connector传输数据操作到ES

./connect-standalone ../etc/schema-registry/connect-avro-standalone.properties \
../etc/kafka-connect-elasticsearch/quickstart-elasticsearch.properties
 
  • 1
  • 2

注意此处: connect-standalone模式,对应 connect-avro-standalone.properties要修改;
如果使用connect-distribute模式,对应的connect-avro-distribute.properties要修改。
这里 quickstart-elasticsearch.properties :启动到目的Elasticsearch配置。

quickstart-elasticsearch.properties**设置**:

name=elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=1
#kafka主题名称,也是对应Elasticsearch索引名称
topics= test-elasticsearch-sink

key.ignore=true
#ES url信息
connection.url=http://110.18.6.20:9200
#ES type.name固定
type.name=kafka-connect
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

7、同步效果。

这里写图片描述

curl -XGET 'http:// 110.18.6.20 :9200/test-elasticsearch-sink/_search?pretty'

8、连接信息查询REST API

  • -
GET /connectors – 返回所有正在运行的connector名。
- POST /connectors – 新建一个connector; 请求体必须是json格式并且需要包含name字段和config字段,name是connector的名字,config是json格式,必须包含你的connector的配置信息。
- GET /connectors/{name} – 获取指定connetor的信息。
- GET /connectors/{name}/config – 获取指定connector的配置信息。
- PUT /connectors/{name}/config – 更新指定connector的配置信息。
- GET /connectors/{name}/status – 获取指定connector的状态,包括它是否在运行、停止、或者失败,如果发生错误,还会列出错误的具体信息。
- GET /connectors/{name}/tasks – 获取指定connector正在运行的task。
- GET /connectors/{name}/tasks/{taskid}/status – 获取指定connector的task的状态信息。
- PUT /connectors/{name}/pause – 暂停connector和它的task,停止数据处理知道它被恢复。
- PUT /connectors/{name}/resume – 恢复一个被暂停的connector。
- POST /connectors/{name}/restart – 重启一个connector,尤其是在一个connector运行失败的情况下比较常用
- POST /connectors/{name}/tasks/{taskId}/restart – 重启一个task,一般是因为它运行失败才这样做。
- DELETE /connectors/{name} – 删除一个connector,停止它的所有task并删除配置。
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

参考:

[1]kafka-connect部署及简介:http://t.cn/RiUCaWx
[2]connector介绍:http://orchome.com/344
[3]英文-同步介绍http://t.cn/RYeZm7P
[4]部署&开发http://t.cn/RTeyOEl
[5]confluent生态链http://t.cn/RTebVyL
[6]快速启动参考:https://docs.confluent.io/3.3.0/quickstart.html
[7]ES-connector:http://t.cn/RTecXmc


canal配合kafka来实现同步数据到ES 文章目录Java客户端(canal)1.引入库2.canal客户端代码如下:总结 Java客户端(canal) 提示:以下是本篇文章正文内容,下面案例可供参考 1.引入库 引入Maven依赖(示例): <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.client</artifactId> <version>1.1.4</versio 阅读详情

相关推荐

Flink读取Kafka消息同步到ElasticSearch

#一. 本文所需安装包版本 Jdk:1.8.0_131 Zookeeper:zookeeper-3.4.14 Kafka:kafka_2.12-2.3.0 ElasticSearch:elasticsearch-6.8.1 Kibana:kibana-6.8.1-windows-x86_64 Flink:flink-1.7.2 #二 window安装flink 去flink官网下载flink https://flink.apache.org/downloads.html 进入flink安装bin目录 双击s

搭建单机版Flink环境实现数据从Kafka流入ES 2228

kafka数据同步Elasticsearch深入详解

1、kafka同步到Elasticsearch方式?目前已知常用的方式有四种: 1)logstash_input_kafka插件; 缺点:不稳定(ES中文社区讨论) 2)spark stream同步; 缺点:太庞大 3)kafka connector同步; 4)自写程序读取、解析、写入 本文主要基于kafka connector实现kafka到Elasticsearch全量、增量同

铭毅天下Elasticsearch 3万+

kafka-connector 同步 Elasticsearch速度慢根因分析?

1、kafka同步Elasticsearch的方式 之前博文中也有介绍: 方式一:logstash_input_kafka 方式二:kafka_connector 方式三:spark stream 方式四:java程序读写自己实现 2、kafka-connector同步kafka到ES 场景一:kafka实时数据流直接通过kafka-connector同步到ES。 场景二:kaf...

黑马程序员广州中心的专栏 466

ElasticStack日志分析平台-ES 集群、Kibana与Kafka

ElasticStack日志分析平台-ES 集群、Kibana与Kafka

weixin_61428407的博客 2941

基于Kafka Debezium Confluent实现MySql实时同步到ES

实现目标 基于MySql的Binlog实现Mysql表实时同步到ES。 实现方案 1、总体技术方案基于Kafka的Connect技术。具体技术内容,不做介绍,网上有相关文章,本文章主要解决如何配置,因为网上大部分配置都是只能简单运行,只能插入,不能实现数据按照主键进行更新和删除同步的。 2、基于debezium的MySqlConnecto...

zj007ok的专栏 2144

【Kafka】Elasticsearch 与 Kafka 整合剖析

1.概述 转载:https://www.cnblogs.com/smartloli/p/6978645.html 目前,随着大数据的浪潮,Kafka 被越来越多的企业所认可,如今的Kafka已发展到0.10.x,其优秀的特性也带给我们解决实际业务的方案。对于数据分流来说,既可以分流到离线存储平台(HDFS),离线计算平台(Hive仓库),也可以分流实时流水计算(Storm,Spark)等,同样也可以分流到海量数据查询(HBase),或是及时查询(ElasticSearch)。而今天笔者给大家分享的就是Ka.

九师兄 1889

实时同步mysql数据到Elasticsearch(3.消费Kafka消息同步数据到ES)

1、导入maven引用 <!--kafka--> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> ...

ChengYanan的博客 956

Kafka与Elasticsearch整合:实时日志分析系统

随着微服务架构和分布式系统的普及,日志数据呈现爆炸式增长,传统离线日志分析方案已无法满足实时监控、故障定位和业务洞察的需求。高吞吐量的日志采集与缓冲灵活的数据清洗和转换能力分布式存储与高效全文检索低延迟的实时数据分析核心概念:解析Kafka与Elasticsearch的核心架构及整合逻辑技术原理:阐述数据管道设计、消息消费策略和索引优化算法实战指南:通过完整代码示例演示系统搭建与功能实现应用与优化:讨论实际场景中的性能调优和问题解决方案工具资源:推荐高效开发与学习的技术栈。

AI Agent Harness Engineering 716

SpringBoot整合Elasticsearch的CRUD--kafka同步更新数据库到es

ProductRepository接口,继承自CrudRepository,提供对ProductTOElastic类型数据的基本CRUD操作。该接口为操作产品数据提供了一套方法,使得可以在Elasticsearch中进行产品数据的增删改查。在application.yml中编写配置项目的启动信息。创建springboot项目上导入依赖。该实体类用于es中对应的文档属性。

qq_44082755的博客 1043

Figma到Axure一键转换:Axhub Extension保姆级教程(含常见问题解决)

本文提供Axhub Extension的保姆级教程,详细讲解如何将Figma设计稿一键转换为Axure高保真交互原型。教程涵盖环境准备、核心转换四步走流程,并重点解决JSON导入失败、样式错乱、复杂组件转换等常见问题,旨在打通Figma与Axure之间的数据孤岛,大幅提升设计师和产品经理的原型制作效率。

night的博客 1577

退火朗之万动力学采样

退火朗之万动力学采样(Simulated Annealing Langevin Dynamics Sampling)结合了退火技术和朗之万动力学,是一种用于分子模拟和统计物理中的计算方法。这种方法可以帮助系统从局部最小值中逃逸,以找到全局最小值或进行有效的配置空间探索。

weixin_39699362的博客 1951

30.kafka数据同步Elasticsearch深入详解(ES与Kafka同步)

1、kafka同步到Elasticsearch方式?目前已知常用的方式有四种: 1)logstash_input_kafka插件; 缺点:不稳定(ES中文社区讨论) 2)spark stream同步; 缺点:太庞大 3)kafka connector同步; 4)自写程序读取、解析、写入  本文主要基于kafka connector实现kafka到Elasticsearch全量、增量同步。2、从co...

zkf541076398的博客 1万+

别再让PyCharm吃光你的C盘!保姆级教程:安全迁移config、plugins和remote sources到D盘

本文提供了一份详细的PyCharm配置与缓存文件迁移指南,帮助开发者将config、plugins和remote sources等占用大量C盘空间的文件安全转移到D盘。通过修改data.properties文件和正确迁移顺序,确保PyCharm功能不受影响,同时释放宝贵的系统盘空间。

weixin_28836989的博客 424

使用Debezium、Kafka实现Elasticsearch数据同步

能够监控各种数据库(如 MySQL、PostgreSQL、Oracle 等)的事务日志(如 MySQL 的 Binlog、PostgreSQL 的 WAL)。Debezium 将数据库中的数据更改事件(例如插入、更新、删除操作)转换为事件流消息,这些消息可以被发送到消息队列(通常是 Kafka)中。我们将所有pg.public.user的topic写入es中,貌似只能指定topic,不能用正则表达式,不过在使用过程中大概率只会将商品、日志等数据同步到es。

weixin_62799021的博客 2064

学术规范与论文写作(雨课堂)研究生 全部答案

1:如何造就优秀的学术论文 论文语法判断题 :全部是错的 2:如何撰写学术论文 3: SCI论文写作经验分享 4:论文写作与投稿技巧 5:学术伦理道德 答案仅供参考,研究生生活不易,大家如果有时间的话,还是可以学习学习的,毕竟老师讲的不错。加油,希望读研的每一个人都能顺利毕业! ...

Always-Learning 13万+

TDR阻抗会爬坡? 别担心,不是你的错,你只是不够了解TDR!

TDR除了可以单靠一个Port就得到通道的阻抗外,其实也可以拿来计算传输线的Delay,或是两两对象之间的距离,甚至是拿来求得等效介电常数!

jkh920184196的博客 2159

分布式搜索引擎Elasticsearch—kafka数据同步插件

river代表es的一个数据源,也是其它存储方式(如:数据库)同步数据到es的一个方法。它是以插件方式存在的一个es服务,通过读取river中的数据并把它索引到es中,官方的river有couchDB的,RabbitMQ的,Twitter的,Wikipedia的。 关于kafka的介绍请参见之前的文章。 1. 开源插件:elasticsearch-river-kafka 插件的安装和使

baiyunxiaoxiao_chen的博客 5939

用 SAML 2.0 Bearer Assertion 配置 ABAP OAuth 2.0 令牌交换

摘要: SAP系统集成中,身份跨系统传递是关键挑战。OAuth 2.0的SAML 2.0 Bearer Assertion grant机制通过SAML断言换取访问令牌,实现安全身份传递。配置核心在ABAP的SOAUTH2事务码,需绑定可信SAML身份提供商(IdP)并指定访问范围。实际应用中,需确保SSL加密传输,正确配置SAML IdP信任关系,并为OAuth客户端分配专用系统用户。常见问题包括证书不匹配、权限配置不当等,需分层控制权限边界以保障安全。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 837

kafka java es,kafka2x-Elasticsearch 数据同步工具demo

Bboss is a good elasticsearch Java rest client. It operates and accesses elasticsearch in a way similar to mybatis.BBoss Environmental requirementsJDK requirement: JDK 1.7+Elasticsearch version requir...

weixin_39576104的博客 189

指纹浏览器降维打击(下):Cloudflare Turnstile 与 hCaptcha 的底层交互逻辑

本文将深度拆解:Turnstile 与 hCaptcha 的 Iframe 沙箱通信机制,动态混淆 JS 与 PoW(工作量证明)的物理破解法则,以及如何通过 C++ 底层事件合成与环境基因强绑定,实现验证码的“无感过验”。

数据知道的博客 423

内容审核与文本安全技术综述:检测、过滤与对齐

检测质量高度依赖数据。毒性/仇恨/冒犯语言检测领域形成了一批经典数据集,但它们的标签体系差异很大:例如 OLID(OffensEval)强调“是否冒犯—冒犯类型—目标对象”三层结构;HateXplain 在“hate/offensive/normal”三分类之外,还提供目标群体与人类标注的 rationale span;RealToxicityPrompts 则不做离散标签,而是用毒性分数来研究“模型续写时的毒性退化”。ACL 汇编。

nmdbbzcl的博客 1372

centos logstash监听kafka数据同步ES

官网和网盘(6.8)都可以,注意版本,配合es版本进行选下,我的es是6.8的,所以logstash也是选择了6.8的版本,否则会出现同步数据失败的情况。document_id=>"%{id}"#es的_id可以根据业务写入kafka中json里的id参数识别。链接https//pan.baidu.com/s/1Vbdl-WvakJNY61J3XPkddA提取码6pmv。filter、out都可以写多个,可以根据kafka中读到数据的某个参数进行识别判断,方便业务处理。...

weixin_39417505的博客 552

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

探究 | kafka-connector 同步 Elasticsearch速度慢根因分析?

1、kafka同步Elasticsearch的方式 之前博文中也有介绍: 方式一:logstash_input_kafka 方式二:kafka_connector 方式三:spark stream 方式四:java程序读写自己实现 2、kafka-connector同步kafka到ES 场景一:kafka实时数据流直接通过kafka-connector同步到ES。 场景二:k...

铭毅天下Elasticsearch 3562

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Kafka Connect Elasticsearch Connector:高效数据同步的利器

Kafka Connect Elasticsearch Connector:高效数据同步的利器 项目介绍 Kafka Connect Elasticsearch Connector 是一个强大的开源工具,旨在简化 Kafka 和 Elasticsearch 之间的数据同步。作为 Kafka Connector 的一部分,该项目允许用户轻松地将数据从 Kafka 流式传输到 Elasticsearc...

gitblog_00339的博客 1299

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

干货:使用 Kafka connect 同步数据至 Elasticsearch

一、 内存泄露 内存泄漏指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习惯于把任何不需要的内存使用的增加描述为内存泄漏,即使严格意义上来说这...

LoyalDreamer 1135

MySQL -> Canal -> Kafka-> ES 完整数据同步流程详解

本文详细介绍了从MySQL到Elasticsearch的完整数据同步流程,通过Canal组件实现MySQL数据库变更的实时捕获和同步。文档涵盖了系统架构设计、各个组件功能说明、Zookeeper集群部署、Canal Admin和Deployer集群配置、Canal Adapter部署以及数据同步的全过程,提供了完整的配置示例和操作步骤。

小刘运维 1449
上一篇: MongoDB五种树形结构
下一篇: MongoDB应用案例:使用 MongoDB 存储商品分类信息
softdevelopment
博客等级 码龄9年 1粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值