Mysql到Elasticsearch高效实时同步Debezium实现

关于Mysql到Elasticsearch高效实时同步Debezium实现的攻略,我可以提供如下具体步骤:

准备工作

  1. 安装Mysql、Elasticsearch、Kibana和Debezium Connector并设置好它们的环境变量,确保能正常运行它们。

  2. 开启binlog以便Debezium捕获Mysql的数据变更,具体可以在Mysql中修改配置文件my.cnf,设置log-bin=mysql-bin并重启服务。

配置Debezium Connectors

  1. 在Debezium中配置Mysql Connector并启动它:

json
{
"name": "db-connector",
"config": {
"connector.class": "io.debezium.connector.mysql.MySqlConnector",
"tasks.max": "1",
"database.hostname": "localhost",
"database.port": "3306",
"database.user": "root",
"database.password": "root",
"database.server.id": "1",
"database.server.name": "db",
"database.history.kafka.bootstrap.servers": "localhost:9092",
"database.history.kafka.topic": "db.history"
}
}

该配置告诉Debezium连接到本地的Mysql服务,并通过Kafka消息队列来保存Mysql的历史数据变更。

  1. 在Debezium中配置Elasticsearch Connector并启动它:

json
{
"name": "es-connector",
"config": {
"connector.class": "io.debezium.connector.elasticsearch.ElasticsearchConnector",
"tasks.max": "1",
"database.hosts": "http://localhost:9200",
"database.user": "elastic",
"database.password": "changeme",
"database.history.kafka.bootstrap.servers": "localhost:9092",
"database.history.kafka.topic": "es.history",
"key.ignore": "true"
}
}

该配置告诉Debezium连接到本地的Elasticsearch服务,并通过Kafka消息队列来保存新的数据变更。

验证

  1. 在Mysql中创建一张新表:

sql
CREATE TABLE `db`.`users` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NOT NULL,
`password` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
);

  1. 在Kibana中验证新表同步到了Elasticsearch:

shell
curl -X GET "http://localhost:9200/users/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}
'

预期结果为:

json
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}

  1. 在Mysql中插入一条新的用户数据:

sql
INSERT INTO `db`.`users` (`name`, `email`, `password`) VALUES ('test', 'test@example.com', 'test');

  1. 再次在Kibana中验证同步到了Elasticsearch:

shell
curl -X GET "http://localhost:9200/users/_search" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}
'

预期结果为:

json
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "users",
"_type": "doc",
"_id": "1",
"_score": 1,
"_source": {
"id": 1,
"name": "test",
"email": "test@example.com",
"password": "test"
}
}
]
}
}

以上即是Mysql到Elasticsearch高效实时同步Debezium实现的攻略,希望能帮到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql到Elasticsearch高效实时同步Debezium实现 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • JSP分页显示的实例代码

    JSP分页显示的实例代码需要以下步骤: 1. 准备数据 首先,我们需要准备一些数据,以便在JSP页面中分页显示。可以从数据库中查询相关数据,或者手动设置一些数据。 int pageSize = 5; //每页显示5条数据 int currentPage = 1; //当前页码 List<String> dataList = new ArrayLi…

    Java 2023年6月15日
    00
  • 33基于Java简单实现图书馆借书管理系统设计与实现

    本章节给大家介绍一个基于Java简单实现图书馆借书管理系统的设计与实现 项目概述 项目总体分为俩种角色,分别是管理员和阅读者,管理员可以登录系统中,进行图书管理,上架下架图书,对用户进行管理、对读者进行管理、查看借阅记录管理等,读者角色可以登录系统查询图书信息、借阅和归还图书、查看个人借阅记录、编辑个人信息等。 项目功能简单,数据库也只有4张表,分别为管理员…

    Java 2023年5月8日
    00
  • springboot项目启动慢的问题排查方式

    当Spring Boot项目启动慢或者无法正常启动时,可以采用以下排查方式: 一、查看启动日志输出,分析问题 启动Spring Boot项目时,可以查看控制台输出的启动日志,了解项目启动时的具体情况。如果日志中有异常或者错误信息,可以根据异常信息进行问题排查。 查看日志的方式有两种: 直接查看控制台输出的日志信息。 将日志输出到文件中,可以通过配置日志级别、…

    Java 2023年5月20日
    00
  • idea 与 maven 使用过程中遇到的问题及解决方案

    为了能够更好地回答这个问题,我先介绍一下Markdown格式,以便于后续回答过程中的展现。 一级标题 二级标题 三级标题 加粗 斜体 无序列表 无序列表 有序列表 有序列表 引用 代码块 //代码块(加入语言标识) public static void main(String[] args) { System.out.println("Hello,…

    Java 2023年6月2日
    00
  • Java从源码角度解析SpringMVC执行流程

    下面是Java从源码角度解析SpringMVC执行流程的完整攻略。 什么是Spring MVC Spring MVC是一种Web框架,属于Spring Framework的一部分。它提供了一组组件,帮助我们构建基于MVC模型的Web应用程序。 Spring MVC执行流程 Spring MVC的执行流程主要分为以下几个步骤: 1.获取请求 首先,Spring…

    Java 2023年5月16日
    00
  • 详解Java中KMP算法的图解与实现

    “详解Java中KMP算法的图解与实现”的完整攻略主要可以分为以下几个部分: 1. 什么是KMP算法 KMP算法,也称为Knuth-Morris-Pratt算法,是一种字符串匹配算法,用于在一个文本串S内查找一个模式串P的出现位置。它利用字符串自身的特点,避免了像暴力匹配算法中需要从头对比每个字符的情况。 2. KMP算法的实现思路 KMP算法的实现思路可以…

    Java 2023年5月19日
    00
  • java实现的导出Excel工具类实例

    下面详细讲解一下如何使用Java实现导出Excel工具类。 实现思路 导出Excel的实现思路如下: 创建一个Workbook对象 创建Sheet对象 创建Row对象 创建Cell对象 设置单元格的值 保存Excel 实现步骤 1. 引入poi依赖 在项目的pom.xml文件中添加以下依赖: <dependency> <groupId&gt…

    Java 2023年5月26日
    00
  • Java的Struts框架报错“ViewHandlerException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ViewHandlerException”错误。这个错误通常由以下原因之一起: 视图处理器配置错误:如果配置文件中没有正确配置视图处理器,则可能会出现此错误。在这种情况下,需要检查文件以解决此问题。 视图文件不存在:如果视图文件不存在,则可能会出现此错误。在这种情况下,需要检查文件路径以解决此问题。 以下是两个…

    Java 2023年5月5日
    00
合作推广
合作推广
分享本页
返回顶部