快、更快,微信聚合平台升级

admin 2022年5月4日23:01:50评论761 views字数 2357阅读7分51秒阅读模式

快、更快,微信聚合平台升级

hi,我是AJay13,这是本次洞见微信聚合的半年升级内容介绍。

如果有师傅还在坚持✊用洞见微信聚合平台,近期一定会有这样的体验😤。

快、更快,微信聚合平台升级

没错,就是数据加载太慢了,而且是越来越慢。

首页原来用的sql查询,在数据超过23万后,查询的速度渐渐变慢了。但仅仅查文章、搜文章这两个接口变慢了。sql对于这种长数据、大数据、低性能服务器,查询成本太高,云上的sql服务器也太贵、一年4H8G的数据库要一千多。

为什么忍了这么久呢?在之前我就已经优化了sql的配置、索引、读写分离、爬虫策略、服务器硬件的升级。我已经想象不出要怎么不花钱地优化响应速度了(qiong)。

响应速度变慢的主要客观原因有两个:

  • • 一方面是数据越来越多,十几G的数据塞在了一个2H4G的服务器中。
  • • 另一方面固定早上9点后用的人逐渐增多,人多就更加慢了。

那么如何克服太慢的问题? 没错,放弃mysql的查询。

熟悉MySQL的同学一定都知道,MySQL对于复杂条件查询的支持并不好。MySQL最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤。

上述这种处理复杂条件查询的方式因为只能通过一个索引进行过滤,所以需要进行大量的 I/O 操作来读取行数据,并消耗 CPU进行内存过滤,导致查询性能的下降。

MySQLB+ 树索引,而 ElasticSearch 则是倒排索引 (Inverted Index),它通过倒排索引来实现比 MySQL 更快的过滤和复杂条件的查询。

ElasticSearch 使用 Burst-Trie 结构来实现 Term Index,它是一种前缀树 Trie 的一种变种,它主要是将后缀进行了压缩,降低了Trie的高度,从而获取更好查询性能。term index 以树的形式缓存在内存中。从 term index 查到对应的 term dictionaryblock 位置之后,再去磁盘上找 term,大大减少了磁盘的 random access 次数。对于较长的 posting list 也会使用 Frame Of Reference 进行压缩编码,减少了磁盘占用,减少了索引尺寸。为了减少内存缓存所消耗的内存空间大小,ElasticSearch 没有使用单纯的数组和bitset来存储 posting list,而是使用要压缩效率更高的 Roaring Bitmap

ElasticSearch还会将一些查询条件对应的结果集 posting list 进行内存缓存,也就是所谓的 Filter Cache,为了后续再次复用。

为什么不用mysql做全文搜索?

mysql做全文检索的话,查询速度会非常的慢,比如 %xxx% 所以在大数据量的情况下,用ES可以以前所未有的速度进行检索。

为什么Elasticsearch不适合做数据存储?

ES同时还是一个文档数据库,但并不能完全代替数据库,因为ES的核心是检索,没有用户验证和权限控制,无法多对多,MYSQL支持事务和访问权限控制,ES不支持事务和访问权限控制,虽然ElasticSearch 比 MySQL 更适合复杂条件查询,但是有好就有弊,ES为了查询做很多的准备工作,插入速度就会慢于 MySQL,而且数据存入ES后并不是立马就能检索到(可以配置,但会非常影响性能),所以在存储时使用mysql,而在搜索,统计时使用ES时一个非常棒的选择。

快、更快,微信聚合平台升级

  • • Mysql:擅长事务类型操作,可以确保数据的安全和一致性
  • • Elasticsearch:擅长海量数据的搜索、分析、计算

面临 “搜素” 体积不断增大的问题,mysql并不能很好的解决,所以开始就“预见性”的使用ES进行部分数据的检索,不建议完全采用ES作为数据库,而是作为一个分布式搜索服务,和数据库配合使用,让其自动同步mysql数据库数据。

换新版首页

于是5.1考虑了下,就用es重写一遍原来的查询🔍。

快、更快,微信聚合平台升级

现在查询效率有了很大的提升📈。

看下新版与旧版的对比🆚,还有更新了更多的功能。

VS 旧版 新版
首次加载 最新文章 推荐文章
路由 / /new/
数据源 mysql elasticsearch
延迟 700ms~8000ms 400ms~2500ms
并发量 30人同时在线 待测
数据同步 实时同步 延迟5-20分钟
搜索条件 局部搜索 全文搜索
搜索结果 精准、总量少 精准、总量多
数据限制 10篇/次 20篇/次
搜索语法 支持&|
发文地区 支持
监控源 400个 790个
安全话题 支持
热点趋势分析 支持
公众号排行榜 支持
CVE漏洞图谱 支持
时间线 支持

2021年洞见微信聚合总结,去年年底我们立下的flag。

全文搜索

在全文搜索中🔍,你可以更精准的找到你想要的内容,侧边栏做了对标题公众号发布时间文章属性的聚合。

快、更快,微信聚合平台升级

另外也完成了✅ 对话题发布地区CVE属性的聚合。

快、更快,微信聚合平台升级

安全话题

聚合了发文中所有的话题,可查看一个公众号下所用到的所有话题,或者查看某个话题哪些公众号引用。

快、更快,微信聚合平台升级

同时侧边栏做了对话题的统计,可以看到当天一周前一个月前一年前用到的最多的话题有哪些。

热点趋势分析

参考百度指数,可看到某个内容在过去一段时间内的讨论热度以及讨论趋势。

如近期爆发的Struts2的相关漏洞,从4月13号讨论热度突然增多。

快、更快,微信聚合平台升级

排行榜

在排行榜中,可以看到近期活跃的公众号(洞见指数的高低),原创榜单转载榜单发广告文章榜单推荐文章榜单阅读榜单点赞榜单在看榜单

快、更快,微信聚合平台升级

CVE漏洞图谱

安全话题类似,将文章中的cve标签过滤出来,然后在这里可以看到被讨论的CVE的数量,同时侧边栏做了对CVE的统计,可以看到当天一周前一个月前一年前讨论的最多的CVE有哪些。

快、更快,微信聚合平台升级

更多功能

在之后,会通过其他视角👀 分析现有的数据,逐渐完善更多数据分析相关的功能。

快、更快,微信聚合平台升级

最后,祝大家五一快乐,byebye

点击阅读原文,开始体验洞见微信聚合平台

原文始发于微信公众号(洞见网安):快、更快,微信聚合平台升级

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月4日23:01:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   快、更快,微信聚合平台升级http://cn-sec.com/archives/973800.html

发表评论

匿名网友 填写信息