推广 热搜: 广场  Java  Word  app  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

mysql查询与写入锁表 如何把mysql中的数据同步到elasticsearch中?

   2023-04-28 企业服务招财猫90
核心提示:如何把mysql中的数据同步到elasticsearch中?至于ES,我还没有没有在实际项目中应用过(我自己学过,没有t没经过实战);我们的项目使用MongoDB;由于项目的特殊性,我们研究了很多关于

如何把mysql中的数据同步到elasticsearch中?

至于ES,我还没有没有在实际项目中应用过(我自己学过,没有t没经过实战);我们的项目使用MongoDB;由于项目的特殊性,我们研究了很多关于A-gtB的数据同步方案,包括DB2/Mysql到MongoDB,MongoDB到MongoDB等等。

将MySQL数据同步到es的方案将MySQL数据实时同步到ES,可以实现ES中的低延迟检索。有的公司为自己的项目做了子库,可以设置一套es来放所有的数据(或者所有数据的某些字段,达到全检索的效果)。常用的数据同步方案如下:

MySQLBinlog:MySQLBinlog日志可以用于数据库的主从复制和数据恢复,也可以将MySQL数据同步到ES;这里需要注意的是,Binlog的日志模式只能使用行模式(另外两种模式是语句和混合);解析Binlog日志的内容,执行ES文档API,这样数据就可以同步到ES中;

MySQLdump:如果是新建项目,使用Binlog进行数据同步是没有问题的。但是如果MySQL已经运行了一段时间,项目架构中加入了ES,那么历史数据的迁移就需要额外的处理,因为Binlog可能已经被覆盖了。此时可以通过mysqldump导出已有数据,然后使用Binlog来同步历史数据。

开源工具:前两种方法都是数据库日志级别的,我们也可以使用一些开源工具,比如Go-Go-MySQL-elasticsearch;;它可以帮助我们完成第一次完全数据同步和后续的增量数据同步(底层也是解析Binlog日志);或者mypip

MySQL主从复制能完美解决数据库的单点问题吗?为什么?

没有完美的解决方案。只有正确的解决方案。

在使用主从的时候,我们其实已经放弃了强一致性。因为实验对象只问了一个问题,他没有问。;不要考虑访问量。即假设主从复制可以完全支持当前的系统访问。)

常规数据库主从设置:

主库可以读写。

从库中只读意味着系统可以从主库和从库中获取数据。数据写入主库后,会自动同步到从库。

这就构成了一个简单的分布式系统。根据cap定理,三个只能选一个。主从终于一致了。如果它们强一致,系统可用性不但不会提高,反而会降低。

让让我们看看上面的主从结构可能会出现什么问题:

系统写入主库,然后从主库查询。这是单点数据库,没有影响。

系统写入主库,然后从从库检查:-如果数据已经同步,它没有影响。

-如果数据尚未同步,则查询是旧数据。

-如果同步出现问题,主机和从机将断开连接。如果系统可以如果没有察觉到,查询可能总是旧数据。这里需要对同步进行监控,当同步出现问题时,及时处理。

主库挂机。从库需要及时察觉,替换主库。同时需要通知运维人员处理,否则会变成单点。

挂在图书馆。主库数据无法与从库同步。也要及时通知处理。

如果主从切换自动化,单点故障的概率只会降低50%(如果主库或备用库挂起,无人恢复)。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8