系统优化设计笔记--曹大公众号文章笔记

PS:以下整理内容发布至本人博客已通过曹大授权。如需转载,请注明出处。

优化查询:
    核查语句慢的SQL和数据结构,分析慢的原因

思考重点:
    1、数据结构:考虑数据容量与数据分布规律
       数据容量:几百万条,几千万条,几亿条,这些不同数据容量的架构设计,肯定是不一样的
       分布规律:
           好友列表:平均每个人会有多少好友,有超过100个好友的比例是多少,系统上限是多少
           订阅列表:双向订阅、单向订阅的关系。主数据的订阅模型怎么设计?
           用户黑名单:平均每个人会拉黑多少人,有超过100个拉黑的比例是多少,系统上限是多少
           除了上述例子外,还有就是与之相关业务的数据分布规律是什么样的。
           比如:订阅列表里,主要内容是哪些人提供的,平均每次订阅所看到的内容来自于多少用户,top内容贡献者用户的分布规律是怎样的。这里就涉及了 内容数据,订阅数据,以及用户数据三部分的彼此关联
    2、请求频次和请求峰值频次分布的规律
        同样的一些读写请求,同样的一些SQL,同样的数据内容,在不同请求频度上,结构设计可能会有很大的不同。
        如果写频率与读频率的比值很高,那么有些对查询优化改进不大的索引可能需要降级处理,比如一些复合索引是可以降级到单键索引的。
        不考虑频次,盲目针对单条查询做优化,有可能会牺牲掉其他方面的响应。
        请求频次必须考虑峰值
    3、异常的考量和降级策略
       异常的考量:
           什么是异常考量呢,比如你系统有个搜索功能,很耗费资源,正常情况下,搜索频率很低,这个问题不那么严重。
           但如果遇到有人搞你,cc攻击,这个短时间大量不同关键词的搜索请求刷过来,一下子可以把数据库刷爆。
           比如论坛上的翻页,特别是大翻页(几十页,几百页),数据请求的全量数据查询。
       降级策略:
           牺牲部分请求,保障系统的最基本可用性
           很多特定诉求导致的负载问题,可以通过暂时的功能屏蔽或诉求屏蔽,来保障整体的系统可用(如何应用到主数据设计上?)
       实际应用:
           微博为例(主数据设计也是如此)
           推策略:
                就是每个内容制作者,发布内容后,都会把内容同步推送给所有的订阅者(把内容id推过去就行)。
                优势是:每个订阅者有个自己的内容列表,订阅者打开系统的速度超快,没有负载问题。
                缺点是:很多大V有几万,甚至几十万订阅者,每发一条信息,就要同步发给几万,几十万订阅者,这发布信息的成本就会巨高。
           拉策略:
                订阅者打开系统的时候,先拉取其订阅列表,然后针对每个订阅者去查询最新信息,汇总过来生成自己的订阅内容。
                优势:发布者发布内容只是一条记录,系统负载极低。
                缺点:很多订阅者订阅了大量微博主,那么每次拉取的开销就会巨大
           解决方式:推拉结合
           怎么结合:
                对于访问频率较高的订阅者(活跃用户),推送的效率收益比高;
                对于访问频率较低的订阅者(僵尸用户,流失用户等),拉取的效率收益比高;
                此外,要考虑用户平均订阅的分布;以及平均粉丝的分布。
                而系统基于这种分布规律,就需要寻求一个最佳平衡。
    4、过度设计
       过度担心某方面的问题,隐患和缺陷,大量精力投入到一些不必要的开发和系统保护上。有时候一些简单粗暴的保护策略是必须的,但要考虑你实现成本。
    5、主次不分
       急于优化每个看到的问题,比如针对每条慢查询寻根究底
       其实要快速定位系统当前阶段的最大问题,快速解决当前最受制约的问题,这是最关键的。
       很多问题其实没有想象的那么可怕,一些对系统可用性影响不大的问题,可以等当前紧急问题解决后慢慢处理
    6、缺乏预警
       直到问题爆发,才想起来去分析,去优化,去解决。
       缺乏日常必要的数据跟踪和预警机制,在系统负载出现波动,数据连接池增长异常,但系统整体可用性尚未出现问题的时候,能体现发现这样的异常波动,并准确定位,早做计划,是非常重要的
    7、完美主义
       先使用一些简单粗暴,导致可用性降级但确定有效的过渡策略,保证系统基本可用性,然后逐渐去彻底解决整个问题

PS:以上整理内容发布至本人博客已通过曹大授权。如需转载,请注明出处。

时间: 2024-11-13 09:28:22

系统优化设计笔记--曹大公众号文章笔记的相关文章

【技巧】如何使用客户端发布BLOG+如何快速发布微信公众号文章

[技巧]如何使用客户端发布BLOG+如何快速发布微信公众号文章   1  BLOG文档结构图     2  前言部分   2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 如何使用客户端发布BLOG(重点) ② 如何快速发布微信公众号文章 ③ 如何批量上传图片到blog ④ 如何批量上传图片到微信公众号上     Tips: ① 本文在itpub(http://blog.itpub.net/26736162)

公众号文章目录

公众号从开始推文到现在也有一些时日了,感谢一直以来,各位小伙伴们对民工哥公众号的关注与支持,好多小伙伴们一直以都非常热心帮助转发.点赞.留言加以支持,再次感谢!!2018年也将过去一大半了,民工哥仍然会坚持自己的初衷,持续输出一系列相关的干货文章(不仅限于运维,更多侧重于各类知识点.技术面的扩充,如:数据库.高并发.大流量.架构类等). 目前呢,由于文章较多,对于小伙伴的阅读与查找比较不太方便,因些谨以此文将前面的文章按照一定的分类加改整理出来,方便大家后续查找与阅读.同时也欢迎小伙伴们转发分享

微信公众号文章采集器

今天讨教大叔给大家聊聊什么是微信公众号文章采集器?微信公众号文章采集器的用处在哪里? 首先简单的介绍下微信公众号文章采集器:它是由讨教平台开发,专门服务于中小型互联网企业的一款内容价值输出系统.帮助中小型企业在文章发布,内容输出,大量提高了员工工作效率的以及企业的运营成本. 在采集系统中,我们可以把所有的微信公众号,只需要你手动输入 你想采集公众号的名称输入采集系统上,即可快速的帮助你完成此公众号的内容全部采集.采集过来的文章,您可以选择修改标题和内容,以及过滤掉垃圾文章. 我们讨教平台测试过:

小麦苗微信公众号文章链接地址

小麦苗的微信公众号文章链接地址: 发布日期 文章标题 2016-08-14 [等待事件]User I/O类 等待事件(2.1)--db file sequential read(数据文件顺序读) 2016-08-13 [等待事件]等待事件概述(1)--等待事件的源起和分类 2016-08-12 [故障处理]ORA-12545: Connect failed because target host 2016-08-11 [故障解决]ORA-06502: PL/SQL: numeric or val

微信公众号文章抓去

微信公众号存在不少精彩的文章,如果善于挖掘,可以得到不少的收获.但由于微信对PC端的支持并不友好,虽然有搜狗搜索可以用,但其结果仍然不全,一些公众号发的不是文章类型的只是一段话,搜狗就不收录.想要得到一个账号所有的文章,还是要从爬虫着手.网上对于微信公众号文章爬取的方法几乎没有介绍,不过有几个网站,比如传送门就做出来了.这就告诉我们这个目标是可以达到的.废话不多说,直入主题. 要想得到一个公众号发送的所有文章,需要从微信手机端入手.点击公众号右上角小人图标,会有查看历史消息的链接.点了之后可查看

Python爬虫实现的微信公众号文章下载器

平时爱逛知乎,收藏了不少别人推荐的数据分析.机器学习相关的微信公众号(这里就不列举了,以免硬广嫌疑).但是在手机微信上一页页的翻阅历史文章浏览,很不方便,电脑端微信也不方便. 所以我就想有什么方法能否将这些公众号文章下载下来.这样的话,看起来也方便.但是网上的方法要么太复杂(对于我这个爬虫入门新手来说),要么付费. 但我的需求其实却很简单--"方便的查找 / 检索 / 浏览相关公众号的任意文章",所以,一番学习检索后,上手做了一个小工具(打包成可执行文件了),虽然方法和代码相当简单,但

pc端引入微信公众号文章

最近做了一个小需求,结果坑特别多..... 需求是这样的,要给公司内部做一个微信公众号广告投票系统,整个项目就不多赘述了,有个小功能,要求是这样的: 点击某条记录后的“投票”按钮,在当前页面弹出弹窗显示文章内容(读取文章url,需要正确展示文字.图片.排版等),保持3分钟,这期间在当前页面上不可进行任何操作,不可投票也不可关闭文章.3分钟后,文章下方的投票区域可用,点击“提交”按钮时,校验所有项目是否都已选择,如果没有,则弹窗提示.提交完成后,状态更改为“已投票”(只是针对该用户,不针对该公众号

仿微信公众号文章实现微信营销活动推广页面的方法

精仿公众号文章不是传统意义上的微信防封系统了,这是一款营销推广系统.因为对比普通网页和微信公众号文章,微信公众号文章的可信度.认知度的优势明显,于是仿公众号文章系统可以解决广大广告业主和公众号运营者在活动推广.营销推广上的问题.并且精仿公众号文章系统可实现所有内容皆可自定义和随时修改.阅读数.点赞数.留言内容等所有数据可随意设置,在灵活性上大大超越了公众号文章.   演示地址:http://www.188tool.cn/copy-articel 适用场景:分享活动,展销会活动,微信H5页面文章等

微信公众号文章增加手机端抄袭举报流程

前些天微信公布了公众号原创文章被恶意转载的一个公告,没想到今天微信公众号已经可以举报恶意转载的文章了.对于原创的作者们,深深地知道原创的不容易,微信此次的改革看来会拉拢不少原创作者的心. 此次微信公众平台发布的举报流程是通过手机端举报的,在手机端如果发现自己的原创文章被别人恶意转载,就可以直接点击举报按钮直接举报,对于其他的侵权的信息也可以通过电脑侵权投诉去举报,具体内容如下: 为了让公众号原创者更方便快速地对抄袭文章进行举报,微信公众平台上线了手机举报流程.具体功能如下: 1. 如发现有公众号