canal+kafka+es+logstash+腾讯云mysql

背景:想使用es的检索功能 第一版解决方案:使用es的检索功能满足内容的查询,1.0实现根据es的分词器通过内容查找id-》获取id后查询mysql。

服务器配置: 4核8G(都起起来内存不够用,还好logstash只同步一次增量) 动作: 全量数据: es(腾讯云) +logstash(自己搭建)同步完成 增量数据功能: 支持集群:canal(自己搭建+单机) +kafka(自己搭建+单机) +zk(自己搭建+单机)开发完成 检索功能开发完成,测试后没问题

现在需要上正式: 考虑到canal ,logstash,zk 没找到腾讯有相应的服务。 另外kafka+zk 替换腾讯ckafka不知道canal是否兼容 ,需要开通服务后研究一下,研究后无问题,部署正式

正式环境,同步试题数据服务: 环境搭建: 1.一台新的服务器,4核8G前足够,该服务器专门同步数据用 2.ckafka新建个topic ,新建acl策略管理(目前这个版本还没加上ACL) 3.开通腾讯mysql数据库账号,对于****库,设置当前账号赋予权限 1.REPLICATION CLIENT 2.REPLICATION SLAVE 3.mysql 5.7版本将新增参数镜像保留 binlog_row_image =MINIMAL; 改为FULL 3.创建es索引

上线步骤: 全量 1.修改logstash的配置全量同步es,并记录同步时间点。 增量 1.更改canal的配置将mysql,ckafka等相关信息修改为正式环境 2.修改消费端的zhihuo_canal配置进行消费,并部署正式,启动 3.修改题库代码将原来检索功能从mysql检索改为es检索

经验分享 程序员 微信小程序 职场和发展