Kafka使用Elasticsearch Service Sink Connector直接传输topic数据到Elasticsearch

链接:Elasticsearch Service Sink Connector for Confluent Platform | Confluent Documentation

链接:Apache Kafka

一、搭建测试环境

下载Elasticsearch Service Sink Connector

https://file.zjwlyy.cn/confluentinc-kafka-connect-elasticsearch-15.0.0.zip

为了方便,使用docker搭建kafka和elasticsearch。

docker run -d --name elasticsearch -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -p 9200:9200 -p 9300:9300 docker.elastic.co/elasticsearch/elasticsearch:7.17.1

docker run --user root -d --name kafka -p 9092:9092 -p 8083:8083 apache/kafka:3.9.1

confluentinc-kafka-connect-elasticsearch-15.0.0.zip文件复制到kafka容器里

docker cp confluentinc-kafka-connect-elasticsearch-15.0.0.zip kafka:/opt/connectors

进入kafka的容器

docker exec -it kafka /bin/bash

修改配置文件

复制代码
vi /opt/kafka/config/connect-standalone.properties

plugin.path=/opt/connectors   #修改为zip解压路径

解压zip

unzip confluentinc-kafka-connect-elasticsearch-15.0.0.zip

修改配置文件

bash 复制代码
vi /opt/connectors/confluentinc-kafka-connect-elasticsearch-15.0.0/etc/quickstart-elasticsearch.properties
# 基础配置
name=t-elasticsearch-sink
connector.class=io.confluent.connect.elasticsearch.ElasticsearchSinkConnector
tasks.max=3  # 根据分区数调整
topics=t-elasticsearch-sink
key.ignore=true
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
value.converter.schemas.enable=false

# ES连接配置
connection.url=http://192.168.1.1:9200  # 多节点负载均衡
type.name=_doc
index.name=t-elasticsearch-sink
#index.auto.create=true  # 自动创建索引(或手动预创建)
schema.ignore=true

# 容错与错误处理
errors.tolerance=all
#errors.deadletterqueue.topic.name=dlq_t4_elasticsearch  # 必须配置DLQ
#errors.deadletterqueue.context.headers.enable=true  # 保留错误上下文
behavior.on.null.values=IGNORE  # 跳过空值消息

# 性能优化
batch.size=2000  # 批量写入提升吞吐
max.in.flight.requests=5  # 并发请求数
max.retries=10  # 失败重试次数
retry.backoff.ms=5000  # 重试间隔
read.timeout.ms=10000  # 读超时
connection.timeout.ms=10000  # 连接超时
flush.timeout.ms=30000  # 刷新超时[2](@ref)

启动Connector

#cd /opt/kafka/bin

#./connect-standalone.sh -daemon ../config/connect-standalone.properties /opt/connectors/confluentinc-kafka-connect-elasticsearch-15.0.0/etc/quickstart-elasticsearch.properties

二、查看Connector状态

curl -XGET http://localhost:8083/connectors/t-elasticsearch-sink/status #查看状态

curl -XGET http://localhost:8083/connectors/t-elasticsearch-sink/config #查看配置

curl -X DELETE http://localhost:8083/connectors/t-elasticsearch-sink/offsets #清理偏移量

curl -X DELETE http://localhost:8083/connectors/t-elasticsearch-sink #删除此connectors

三、测试写入

./kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list #查看topics

./kafka-topics.sh --delete --topic t-elasticsearch-sink #删除topic

./kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic t-elasticsearch-sink #逐行写入消息

四、查看ES索引

curl http://127.0.0.1:9200/_cat/indices?v

相关推荐
一路向北finish42 分钟前
《CentOS 7 搭建 Hadoop 3.3.6 分布式集群:NFS 共享方案完整实操》
linux·运维·hadoop·分布式·centos
2601_960906721 小时前
全球AI产业正加速迈入全域渗透
elasticsearch·百度·database·时序数据库·memcache
天涯明月19931 小时前
Ray 架构解析——以动态任务图统一 AI 计算的分布式框架
大数据·人工智能·分布式·架构·ray
小张同学a.3 小时前
MooseFS 分布式存储实战指南:部署、运维与 Pacemaker+SBD 高可用落地
linux·运维·分布式·pacemaker·moosefs·sbd
Elasticsearch3 小时前
打通 AI Agent 落地生产的“最后一步”:Elastic Stack 中的 Human-in-the-Loop (HITL) 审批工作流实战
elasticsearch
BYSJMG4 小时前
大数据毕业设计选题方向|【基于大数据的燃油消耗数据可视化与分析】Hadoop+PySpark+FP-Growth
大数据·hadoop·分布式·信息可视化·数据分析·课程设计
Elasticsearch4 小时前
构建值得信赖的金融服务领域 agentic AI:从数据到自主行动
elasticsearch
普通网友15 小时前
Springboot中使用Elasticsearch(部署+使用+讲解 最完整)
spring boot·elasticsearch·jenkins
虫小宝15 小时前
优惠券省钱APP查询性能优化:Elasticsearch与Canal实现的多维度商品搜索毫秒级响应方案
elasticsearch·性能优化·jenkins
NJCloud18 小时前
MooseFS 分布式存储部署与高可用架构实践
linux·运维·分布式·架构