[操作系统]如何设计百万级商品数据实时同步的秒级搜索系统?( 二 )
如下图所示:
本文插图
destinations 实例配置
配置 canal deployer instance:进入 canaldeployer/conf/example 目录 , 发现有一个 instance.properties 文件 , 这是 Canal 给的示例 , 我们可以参考其配置 。
我们拷贝整个 example 目录 , 并重命名为上个步骤配置的 destination 之一 , 如 xxxsearch 。
进入 xxxsearch 目录 , 编辑 instance.properties 文件 , 主要配置源数据库信息、所需数据表及字段 , 以及指定 Kafka 的 Topic 名 。
这样源数据库的 Binlog 就会转换为 Json 数据 , 并实时的通过 canal deployer 传输到 Kafka 该 Topic 中 。
如下所示:
本文插图
canaldeploy instance 源数据库配置
本文插图
canaldeploy instance kafka topic配置
进入 canaldeployer/bin 目录 , 执行 ./startup.sh , 启动 canal deployer 及所属实例 。 至此 canal deployer 搭建完成 。
②安装 canal.adapter
我们需要利用 canal.adapter 将 Kafka Topic 中的 binlog json 数据 , 经过清洗转换等操作 , 存储到 MySQL8 中 。 由于 Canal 原生是不支持 MySQL8 的 , 故我们需要做一些调整 。
增加 MySQL8 连接驱动:解压 canal.adapter-1.1.4.tar.gz , 进入 canaladapter/lib 目录 , 移除 mysql-connector-java-5.1.40.jar , 导入 mysql-connector-java-8.0.18.jar 。
配置 canal adapter , 使数据输出到 MySQL8:进入 canaladapter/conf 目录 , 编辑 application.yml 文件 , 主要配置消费 Kafka、源数据库信息和搜索系统数据库信息 。
如下所示:
本文插图
ETL 到 MySQL8 配置
接着 , 进入 canaladapter/conf/rdb 目录 , 以官方提供的 mytest_user.yml 为例 , 配置 Kafka Topic 名、源数据库名、源数据表名 , 以及目标数据库名和目标数据表名 , 建议一张表对应一个 yml 文件 。
本文插图
ETL 表结构映射配置
启动 canaladapter:进入 canaladapter/bin 目录 , 执行 ./startup.sh , 启动 canal adapter , 观察 logs/adapter/adapter.log 日志文件 , 手动在搜索系统数据库新增一条记录 , 看是否会打印如下日志 , 即有 2 条记录 , 一条 INFO , 一条 DEBUG , 则表示配置成功 。
本文插图
canaladapter 日志
至此 , 数据 ETL 阶段搭建完成 , 数据可从两个不同的 MySQL8 数据库 , 实时同步到搜索服务的 MySQL 数据库 。
实现数据多表关联、父子文档映射
①配置第二个 Canal 的 canaladapter
进入 canaladapter/conf 目录 , 编辑 application.yml 文件 , 主要配置消费 Kafka、搜索系统数据库 , 和 ES 连接信息 。
如下所示:
【[操作系统]如何设计百万级商品数据实时同步的秒级搜索系统?】
本文插图
canaladapter MQ 及 MySQL 配置
推荐阅读
- 【军武次位面】这款国产火箭炮性能优秀,模块化设计功能丰富,足以让导弹失业
- 人民网@【战“疫”说理】疫情防控中如何有效实现经济复苏?
- 索尼■微软新Xbox太强所致?消息称索尼将重新设计PS5并推迟发售
- 『车家号』高低功率如何选?后期改装就能“低变高”了吗?,同一款发动机
- 手机、眼镜如何消毒?清洁要从细节做起
- 「快科技」小米全面屏电视Pro 75英寸亮相:4K全面屏设计 5999元
- 『音频』iOS如何导入百度云的音频(易剪和易剪多轨版)
- 十大突破性技术-NMN,叫你如何选择最好的NMN
- 妙家影视■如何计算低压开关柜铜排用量?这是我见过最漂亮的文章!
- 「史今中外s」潜伏大陆40年没被发现,结局如何?,女特务为隐藏身份嫁给农民
