Slave server 同步数据search 问题及解决方案

我们在做双机热备份的情况下,两台服务器分别工作在Master-Slave 模式, 使用Mysql Database Replication实现数据同步。

例如,我们Java系统中有个student表,需要按name做查询关键字,搜索出系统中所有带"lucy" 关键字的students. 这时我们会使用hibernate search来实现,hibernate search结合了lucense实现了full text search, 所以hibernate的Create/Update/Delete操作都会将新数据的index 更新到lucense的索引库,但在Slave Server上通过Mysql同步数据后,并没有进行hibernate的Create/Update/Delete操作,导致没有index生成到lucense的索引库, 从而无法在Slave Server上搜索出新建的并同步到slave server上的students。

为了Slave Server上也能搜索出新建的并同步的数据,需要将lucense的index文件目录也要进行同步。文件同步我们使用了lsyncd来实现,在master server上安装lsyncd, 并修改/etc/lsyncd.conf 文件:

----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--
settings {
        logfile = "/var/log/lsyncd.log",
        statusFile = "/tmp/lsyncd.stat",
        statusInterval = 1,
                insist=true,
}


sync{
        default.rsync,
        source="/opt/lucene_indexes",
        target="<IP>:/opt/lucene_indexes",
        rsync={rsh="/usr/bin/ssh -l gate-user -p 50123 -i /home/gate-user/.ssh/id_rsa -o StrictHostKeyChecking=no",}
}

sync 中指定同步lucene_indexes目录,这样只要该目录达到了同步,slave断就能search到同步的数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值