推广

Elasticsearch + Canal 搜索实践

iseeyu2年前 (2024-02-22)推广114

3.项目成果

目前,已经上线了,也迭代了2个版本,效果还可以。不加缓存TPS能达到800多吧,加上缓存可以1w+。

4.项目开发过程简述

        这个项目是从2020年初开始的,那时候正好是疫情爆发,只能在家弄,一直到10月才完工。最开始的时候对es一无所知,一点点学习es的DSL语句,然后转成java api,开始挺痛苦的,等熟悉了就很轻松了。

这个项目主要分两个部分:搜索和同步。

搜索:这个不难,只要DSL写好,翻译成对应的api就好,正常搜索的时候,外部通过http请求到主程序,程序再去es中查询。

同步:稍微有点麻烦,分为实时同步和全量同步。全量同步是根据业务SQL查询所有站点数据,然后同步到es中,通过bulk批量处理,速度也能接受。实时同步用的是canal,它是伪装成mysql的一个slave,获取到数据库的binlog,数据库有数据变更后,会同步一份binlog过来,java程序中的canal client会获取到这些记录,然后根据业务去数据库查数据,再同步到es中。

4.注意事项

    (a) Canal实时同步:阿里开源出来的,折腾了很久,中间也请领导协调阿里的资源,(感谢我的领导黄总和阿里的七峰同学),之前出现同步非常慢的情况,后来跟阿里同学沟通后知道了自己的题,canal的处理流程是串行的,同步速度取决于程序中的业务处理速度,所以我用了多线程,提高并发处理能力,但要做好异常处理,一旦多线程这里出问题,canal同步就停止了,这狠狠坑了我一次。当时生产刚上线是好的,但没多久,就同步失败,上下线不成功。后来发现是取多线程的时候没做控制,找到问题后,do it !,加上控制后就可以了。

(b)Canal 报错:Could not find first log file name in binary log index file。这个报错是日志文件被转移或者删掉了,导致canal找不到,网上查了好久,最后选了一个性价比高的解决方案,定时任务去扫描canal的日志,如果出现这个错,就重启canal服务,并清理meta.dat。

(c)Elasticsearch的搜索建议词结果不准确的坑。这个折磨了我很久,建议词如果要准确要加上下文检索contexts,如果是python写很简单,但es的java版api支持的不是很好,最后去Stack Overflow上找,看到了个官方的回复,用模板查询方法,SearchTemplateRequestBuilder,自己定制化写DSL就能很好的解决。

暂时先写这些,有问题可以私信我。

扫描二维码推送至手机访问。

版权声明:本文由西安泽虎代运营发布,如需转载请注明出处。

转载请注明出处https://0291.com.cn/post/56305.html

相关文章

优化过程中什么原因导致网站流量下降。

优化过程中什么原因导致网站流量下降。

作为专业的SEO优化工作人员,相信大家都知道,网站的流量不是一成不变的数字,它随时都会变化,当然如果是流量增长,自然很好,但一旦流量下降,网站站长就会很沮丧。当我们遇到流量下降的这种情况时,我们当然不能着急,要做的就是分析原因并进行修改,今天小编这为大家分析一下站点的流量掉落的原因。 1...

ChatGPT能做免费的小红书编导吗?

ChatGPT能做免费的小红书编导吗?

  最近ChatGPT有点火,有些小红书博主找我说,是不是用ChatGPT写脚本就能释放自己的压力,只需要拍摄就可以了,每个人转发一次历史文章确实太辛苦,所以重发一次,希望用我的实测给各位伙伴们带来一些启发。 注:本文与ChatGPT Ai联合创作 ChatGPT这两天有些...

淘宝百宝箱推广效果咋样,淘宝店铺引流的30种方法(淘宝促销宝好用吗)

淘宝百宝箱推广效果咋样,淘宝店铺引流的30种方法(淘宝促销宝好用吗)

其实就和大家使用直通车为店铺做推广是一个道理,掌握了直通车推广技巧的用户,就能达到花钱引流的目的,没有掌握技巧的用户可能花出去的钱就打水漂了。...

互联网时代流量就是金钱 引流方式千千万引流逻辑是关键。

互联网时代流量就是金钱 引流方式千千万引流逻辑是关键。

流量就是金钱,这句话每个接触互联网的人哪怕是不知道,但是也应该是有所感觉,每一个在网上疯狂获取流量的人,脑袋里面都有一个公式:流量=用户=金钱。 今天我们就来说一说引流的一些方式,还有引流的底层逻辑,了解逻辑才是最重要的,这代表你在任何平台都能找到你想要的流量。 一、引流方...

关键词布局和分布 如何优化关键词排名。

关键词布局和分布 如何优化关键词排名。

关键字布局和分布有两个概念。一是将网站的关键词布局优化到首页、栏目、文章和主题,二是参考文章中关键词的分布。今天,小编带来的是“关键词布局和分布-如何优化”。 一、网站关键词布局 关键字的布局应采用金字塔的形式。比较困难的部分放在主页或列上。一个稍微简单一点的词可以放在列上。然后一个...

如何建立自己的运营体系?以用户运营为例

如何建立自己的运营体系?以用户运营为例

最近有朋友在说,工作了一段时间之后,发现很多人都提到运营体系这个词。但是,很多人对于这个词很熟悉,但是说到如何建立自己的运营体系,其实就像是黑盒一样,知道的人可能说不清楚,不知道的也不知道如何去做。今天斗胆写这个话题,一方面是想借此梳理自己的运营体系,另外一方面,也想把自己...

现在,非常期待与您的又一次邂逅

我们努力让每一部企业宣传片和抖音短视频成为商业大片