韩国搜索引擎优化(在想自己和刚毕业的时候处理问题有什么不同)

优采云 发布时间: 2021-10-25 17:18

  韩国搜索引擎优化(在想自己和刚毕业的时候处理问题有什么不同)

  我想知道我如何处理问题与刚毕业时不同。刚毕业的时候,如果我想卸载某个禁用的东西,它说它正在使用,我就去找了一个功能强大的卸载软件。如果我想清除浏览器缓存,我会直接使用该工具。如果我想找到缓存路径有选择地清理,我会百度找出这个浏览器的默认缓存路径在哪里。现在,我将打开资源监视器检查磁盘活动,对于文件,查找使用文件的进程;对于应用程序,找到它正在读取和写入的文件路径。

  

  现在接口服务组的性能卡在memcahe缓存上。对于缓存的过渡依赖,为了维护缓存的数据,大大增加了业务流程的复杂度。其实接口本身的业务流程很简单,但是需要大量的并发。如果你想要高并发,你的业务会更简单。nginx服务单机号称能承载10亿并发,为什么呢?逻辑很简单,就是按照规则找到对应的处理服务,转发请求。

  前段时间我找了一份私人工作。换句话说,我在过去一年左右的时间里确实做了很多事情。业务是用支付打造途家+携程。我刚拿到工作,因为是php,我不懂php,好担心。因为是男票帮忙接班。我说卖给我的是男票。的确,他接了这份工作,但他连看都没看,他只负责接钱。我自己什么都没有,只怕自己做不好,丢了男票的名声。本来人家预算是2w,我说是5w。最后给了3w。一个月确实完成了。综上所述,从UI设计到编码和测试,我是唯一的。就像前端的JS风格,别人很难快速做到。我之所以能做到快速,是因为综合能力是一方面。最主要的原因是理顺了业务逻辑,包括支付、结算、后端支付给商户、统计分析。业务逻辑划分清楚,工作量也没有那么大。说到男票抢我私事,我埋怨,心里很清楚:他之所以把这份工作交给我,是因为我想做。他不是为了钱,他真的知道我想要什么。而我嘴上的抱怨只是因为一时的努力发泄。这抱怨也是笑着抱怨,没人当真。我在日本的时候,看过韩国水木系列的日文版。锦衣有两个爱她胜过爱自己的妈妈。她的生母和老师。母亲一生都在努力让甄毅爱,老师一生都在努力让甄毅痛苦。因为痛苦是天赋的源泉。恩浩因为软弱,注定不能和锦衣在一起。爱一个错的人,心如浮萍,徘徊探索得不到。毕竟是孤独的。锦衣和正翰的爱情影响了所有人,毕竟锦衣也离不开正翰的白头。而爱对了对的人,他们的经历是别人无法比拟的,他们最终内心是踏实的。甄毅为人才而生,政涵为世人而生。这是他们的安宁和家园。不如锦衣天资,不如锦衣缘。过着幸福的小生活,做我想做的事,我可以'

  我也想到了离线数据的小项目。还没想好,跑完全额才拿到ID就花了四个小时。我写的程序只用了20多分钟。为什么,最主要的原因也分得很清楚。人们问我这个项目中使用了哪些线程共享资源。我说:有一个 AtomicInteger 作为线程计数器。算不算?我需要计算是否所有线程都正常终止。我已经将所有其他共享资源放在一个类中,但我只是将 HashMap 用于 Map,而我不使用 ConcurrentHashMap。也就是说,我们也知道并发包中各种并发容器的原理。但是业务逻辑是分得很清楚的。我可以保证在编写 HashMap 时,只有一个线程正在访问它。我不必使用并发。所有线程最终都会生成完整数量的文件。我使用了数百个线程。每个线程生成一个文件,读写、打包、压缩,互不干扰。当然,这比锁定文件并等待写操作要快得多。换句话说,这种技术已经被大量使用,Lucene 的索引就是这样。

  上周的一次会议上,突然想到(其实我很久以前就想到了,但是每次说没人理,就过去了)媒体资产接口的高并发就是根据对于各种情况,其他程序都是维护这个数据服务的,维护数据是很复杂的。除了接收业务线的消息外,还有自己的数据库和缓存来比较和补充数据。未来由于联通和电信需要物理分离,隔离后需要统一监控写缓冲区,负责向业务线返回更新报文和数据补偿。但是,所有这些复杂的逻辑都可以由搜索引擎处理。

  之所以之前建议没人理会,分析一下原因:我们现在群里的搜索引擎做的不好,大家只会用最简单的功能。而且我还没有向你充分解释搜索引擎可以做什么,我自己也没有做过任何事情。杨大哥搭建了一套redis统一采集日志,给了我启发。现在,我有一台服务器,并且熟悉底层的 Java 和算法。做一个适合中国人的搜索引擎一直是我的心愿。现在有业务场景需要用到,何不自己做一个。之前离开人人网后,看了王志良写的宝鼎玉的源码,觉得自己可以做出这样的框架,而且还只是一个持久层框架。原理已经很明确了。果不其然,来到乐视,看到的芒果框架与宝鼎玉非常相似。如果我不开发这样一套特殊的应用场景,适合中文分词,而且非常适合作为列表缓存的搜索引擎框架,两年后就会有人在我之前发布,因为它确实非常适用。

  再说说界面服务为什么要用搜索引擎。搜索引擎可以支持高并发。之前用过基于Lucene的Solr搜索引擎,单机可以支持上万并发。它可以吃多少内存,并且将集中缓存中的空间用于时间。接口服务只更新缓存,不更新数据库。如果切换到搜索引擎,搜索引擎每分钟从数据库中读取数据,对数据库基本没有压力。业务线给我们发了一条消息,我花了几分钟更新缓存才返回消息。搜索引擎的实时性会更高。业务逻辑简单,现在接口服务使用庞大的SOA架构,逻辑复杂,并且响应时间长。有了搜索引擎,只需要一个接口服务调用搜索引擎就可以搞定一切。搜索引擎中的数据是高度结构化的,可以添加复杂的条件、功能、分组和排序。其实也是在JVM中完成的,直接与内存中的数据进行交互。太快了。目前接口服务的瓶颈是缓存(一定是缓存,整体在处理缓存),频繁缓存长时间返回数据。当有多个key值时,mget性能较差,容易阻塞,影响整个服务。目前可以采取的措施是将部分任务转移到DB,考虑用Redis缓存替换memcache。不管是memcache还是redis,不适合这种动辄超过100K的大数据情况。缓存key-value对的最佳应用场景应该是key和value的体积都非常小。因此,我们目前的尝试并没有真正解决本质问题。用dubbo进行RPC调用也有问题。Dubbo 有自己的 bug。一旦遇到,就会很大。添加这层dubbo增加了通信开销和系统复杂度,但实际的好处并没有发挥出来。搜索引擎本身就是为大数据而生,大数据量,大数据量,高并发,对于这种多维查询,是搜索引擎最适合的地方。搜索引擎也可以单独作为RPC的被调用者,直接被其他业务线使用。我们甚至可以去掉接口服务接收请求的接口层,接口服务只有一个搜索引擎。德威最头疼的部署问题解决了。

  最重要的原因是搜索引擎是基于全文索引的。目前的搜索模型,纯玻尔模型、向量空间模型和概率模型,不适用于媒体资产等主要基于ID列表的查询。相应地,搜索引擎的分析工具的重点不适合媒体资产等业务场景。

  看一下当前接口服务的架构:

  

  复杂不合理,需要大量优化。其中,还使用了猎鹰监控平台和美团点评的CAT监控。目前数据库更新需要通知ES搜索引擎,通知缓存,通知业务线。

  切换到搜索引擎后的架构:

  

  就这么简单,如果不是为了保持当前对外接口不变,接口api可以省略。

  搜索引擎自行集成日志和监视器。如果要调试,只需要输入参数,内部处理一目了然。在实现上,把lucene封装成一个平台就够了。与其他搜索引擎优化点相比:重点改进基于ID维度的查询条件的有序输出,将接口的常用操作功能化,使其适合作为接口服务。去除Solr中不恰当的中文分词词根,加强中文拼音和近义词的搜索(后续有时间优化)。集成jvm、内存、cpu日志、监控报警,易于部署。一开始你不需要做太多,然后需要根据业务场景慢慢优化。事实上,我想尝试使用我自己的算法。

  如需转载请注明我的原文链接:谢谢~~

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线