推广

Elasticsearch + Canal 搜索实践

iseeyu3年前 (2024-02-22)推广122

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://www.0291.com.cn/post/56305.html

相关文章

营销13法,看完你就是营销大神

营销13法,看完你就是营销大神

在中,有一个非常流行的市场营销13种手段,这13种手段是很多营销人的圣经,基本囊括了所有的营销。我们今天就来一起看一下出奇制胜的营销13法。 1市场营销的手段 1、搜索引擎营销 即搜索引擎优化,是通过对网站结构(内部链接结构、网站物理结构、网站逻辑结构)、高质量的网...

【SEO优化优势】相比其他网络推广方式。

【SEO优化优势】相比其他网络推广方式。

搜索引擎优化工作只不过是搜索引擎优化工作,这很容易说起来困难,但没有优化就不能有排名网站,这是事实。因此,优化搜索引擎优化网站是企业在网站上线后所要做的一项重要的工作。否则,网站就会变成僵尸,对企业来说毫无意义。[交江网站公司]SEO优化是网络营销的一部分,也是网络推广的一种方式。与其他推广方法相比...

小编分享关键词优化前应该解决哪些基本问题。

小编分享关键词优化前应该解决哪些基本问题。

seo利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是为网站提供生态式的自我营销解决方案,让其在行业内占据领先地位,获得品牌收益。那么在进行seo优化前需要注意些什么呢?本文就给大家讲讲。 1、选好域名与服务器 域名是上网单位和个人在网络中的重要标识,起着识别的...

为何说长尾关键字是提高流量转换的方法。

为何说长尾关键字是提高流量转换的方法。

许多工作员盆友在精准定位关键词时舍弃了长尾关键字,立即将好多个关键关键词加上到首页上,造成1年半的提升没法开展,即便转化率很低,今日点瑞seo提升咨询顾问与大伙儿共享怎样做长尾关键字来提高关键关键词排名主页的方式 。第一,网址的关键关键字是啥?长尾词是啥?关键关键字、关键字、网址首页将加上好几个关键...

人生积极乐观正能量的句子,送给不清醒的人

人生积极乐观正能量的句子,送给不清醒的人

一、如果我用你待我的方式来待你,恐怕你早已离去。所以说,不管亲情,友情,还是爱情,凡事换个角度,假如你是我,你未必有我大度!二、我们带着快乐的面具,瞒过了所有人,却单单骗不了自己;我们穿着坚强的铠甲,扛过了一切事,却唯独委屈了自己。三、其实有很多人你留不住,最后会发现身边的...

软文营销如何通过有效的故事传达品牌影响力

在这个无限消费的数字时代,企业只能在线上去争相吸引用户的注意力,随着间的竞争越来越激烈,为了脱颖而出,我们必须拿出超越传统广告的策略,并致力于吸引目标受众。成功的营销秘诀在于创造成功的品牌故事。每家公司都要有一个故事来吸引读者并创造令人难忘的体验,一定要精心制作你的品牌故事...

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

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