对于任何一款互联网应用而言,流量都是非常宝贵和至关重要的, 大家都在渴望流量,甚至花高昂的价格购买流量。这就引来了一个关键问题,从技术的角度,如何让流量能顺利在应用中完成生命周期,创造对应的价值,避免陷入流量旋涡?今天我就根据这些年的实战经验,和大家做一个分享,供大家参考。

系统评测

谈到系统优化,很多同学一上来就谈到了前后端分离、系统拆分、引入各类中间件,分库分表等等。这些方案没错,问题就在于这些都是“正确的废话”。如果我们有足够的人力资源,足够的开发时间,我们都可以搭出一个还不赖的架构来。

所以,对于一个创业或者小团队而言,第一步,决不是先改造,而是清楚自己目前的系统能承受的压力是多少,瓶颈在哪里。然后根据自身情况,进行必要的“小手术”。

对于全链路的压力/性能测试,我这里就不花篇幅讲了,说真的,用好Jmeter就足够了,有资源的朋友,可以基于Jmeter做一些二次开发。在这个网络发达,信息爆炸的时代,基本上对于每个技术点或者问题,都可以迅速地获取到大量资料。关键是对于技术的实现原理和问题的解决方案。

系统报警


摸清楚当前系统的能力后,很多同学认为,第二步就是赶紧修复或者改进服务中的弱点。实际上不然,而是将修复和报警放在一起做,避免修复到一半的时候,流量来了,却不知道问题在哪里。

服务器运行正常的情况下,其各项监控指标基本稳定在一个特定水平,如果这些指标超过某个阈值,就意味着系统可能将要出现故障,监控管理系统可以配置报警阈值和值守人员的联系方式,报警方式除了邮件,必须配置手机短信(切忌“单点”,一个报警点至少有2个以上的报警接收人)。

报警消息务必做到清楚,标明可能的原因和当前的出发数字,似是而非的报警信息,只会“麻木”大家。

流量转移


现在我们有报警了,那么下一步需要什么?就是线上的防御能力,保证线上系统出问题后,为紧急修复赢得时间。

提升防御能力的方法有哪一些?主要可以分为流量转移服务降级

我们先说流量转移

系统中,务必要有转移流量的能力,特别是应用访问失败的时候,监控系统能根据情况,做到主动触发。

典型的一个例子,就是redis集群的哨兵模式,可以将这个思路应用到其他系统中。

哨兵模式的流程如下:

  • 监控:哨兵不断的检查master和slave是否正常的运行。

  • 通知:当监控的某台Redis实例发生问题时,通过API通知运维工程师和我们的应用程序。

  • 自动故障转移:如果一个master不正常运行了,哨兵可以启动一个故障转移进程,将一个slave升级成为master,其他的slave被重新配置使用新的master,并且应用程序使用Redis服务端通知的新地址。

  • 配置提供者:哨兵作为Redis客户端发现的权威来源,客户端连接到哨兵请求当前可靠的master的地址。如果发生故障,哨兵将报告新地址。


服务降级

上面说了流量转移,但是流量转移不能解决所有的流量问题,所以我们同时需要引入服务降级。

服务降级是指网站为了应付突然爆发的访问高峰,主动关闭部分功能,释放部分系统资源,保证网站核心功能正常访问的一个手段。很多电商平台的年度促销活动就属于突然爆发的非常规访问高峰,在高峰访问解决,我们可以关闭一部分非核心功能,如评价、确认收货等功能,保证交易链路的正常运行。

网站在动态计算基础之上实现自动服务降级,是系统柔性架构的理想状态:监控系统实时监控所有服务器的运行状况,根据监控参数判断应用访问负载情况,如果发现部分应用负载过高,而部分应用负载过低,就会适当卸载低负载应用部分服务器,重新安装启动部分高负载应用,使应用负载总体均衡,如果所有应用负载都很高,而且负载压力还在继续增加,就会自动关闭部分非重要功能,保证核心功能正常运行。

线上演练


以上的工作完成后,需要执行最重要的一环,就是线上的演练,对以上所做的工作进行全流程的验证。有两个目的:

  1. 对团队配合的演练,一次线上的大流量处理,一般会涉及到技术团队的多个小组,运维和后端开发,以及非技术团队(线上运营、客服)。在演练之前,需要约定明确的分工,确定线上的执行手册。

  2. 系统的演练,毫无疑问,各类报警是否能正常触发,系统防御是否奏效,有没有遗漏的场景,工具是否有bug...都是需要在线上实战过后,心里才能做到有数。

                                        

最后,做好流量规划,把对流量的管理放入产品迭代之中,系统和业务才会有“神同步”。

                                          -END-


相关阅读


如何做高可用的架构设计

实时日志分析系统的基本架构

服务端流量控制的可行性方案

描二维码或手动搜索微信公众号【架构栈】: ForestNotes

欢迎转载,带上以下二维码即可

点击阅读原文”,所有【架构栈】近期的架构文章汇总

↓↓↓

如何避免陷入流量旋涡相关推荐

  1. 群响刘思毅 | 创始人的流量焦虑

    最近和群响会员中正在冷启动的消费品.在线教育还有供应链的创始人聊的比较多,发现一个共性,就是每一个创始人,在刚开始起盘的时候,总归或多或少会有一些难以名状的「流量焦虑」. 哪里搞流量?哪里可以免费搞流 ...

  2. 创始人也会有的流量焦虑

    最近我在和群响会员中正在冷启动的消费品.在线教育还有供应链的创始人聊的比较多,发现一个共性,就是每一个创始人,在刚开始起盘的时候,总归或多或少会有一些难以名状的「流量焦虑」. 哪里搞流量?哪里可以免费 ...

  3. 不缺流量的罗永浩、李佳琦们,为啥深耕企业微信社群?

    抖音有多火我不用说了吧,5亿月活的商机让多少人趋之若鹜.普通人想通过玩抖音一夜成名暴富:品牌方想通过抖音卖出更多商品,实现GMV暴涨. 但是现实总是骨感的,随着越来越多的网红.品牌涌入抖音,僧多粥少成 ...

  4. 如何巧用微信生态搭建和运营私域流量

    什么是私域流量? 2020年,说到私域流量,可谓是热度颇高,但目前对私域流量的解读,尚不能统一.当下多数人的理解是,私域流量即微信群+公众号,但其实并不全面. 广义上说,私域流量是相对于公域流量来说的 ...

  5. APP运营如何实现流量变现,获取更高收益?

    在进行APP开发时,许多从业人员有着"等用户量大了,还愁收益问题吗"的心理.然而,当用户数量达到一定规模时,许多APP开发者开始担心流量实现的问题.甚至一些知名的APP也可能因缺乏 ...

  6. 互联网流量,让天下充满难做的生意

    来源|郑光涛Grant 作者|郑光涛Grant 阿里巴巴创立之初,马云提出了震撼人心的使命"让天下没有难做的生意".截至2020年初,超过25万个品牌和商家入驻天猫.上到国际品牌, ...

  7. 边做饭边看视频,不留死角的流量战争

    万亿市值的快手,轻轻落下了新子. 根据快手与华帝达成的战略合作,双方将在内容创意.营销互动.品牌升级等方面深度合作.同时作为双方结盟的"附加条款",华帝还将在搭载视频播放屏的厨电新 ...

  8. 母婴品牌如何做好私域流量运营?

    本文柏态云将以孩子王.贝亲等品牌,分析母婴行业转型私域有哪些优势,具体又应该怎么做,希望对你有帮助. 当所有行业都在如火如荼地掘金私域时,母婴行业自然也不例外. 以孩子王.贝亲等为首的头部母婴品牌商, ...

  9. B站推出“锤人类”作品试运行管理办法 将减少推荐争议视频

    6月17日,B站推出<关于"锤人"类稿件的管理办法(试运行)>,旨在对内容真实性存疑.恶意揣摩他人动机目的.对他人进行道德与法律指控的视频.专栏作品进行流量限制与约束. ...

最新文章

  1. android 代码设置 键盘适应_Android自适应软键盘的Dialog以及监听软键盘弹起
  2. 【C 语言】内存四区原理 ( 栈内存属性增长方向 | 栈内存开口方向 | 代码示例 )
  3. Linux shell 变量 数学 运算
  4. 下面不属于python保留字_下面不属于Python保留字的是:?????????????????????????????????...
  5. jquery中如何表达本页网址_jquery中怎么跳转页面?
  6. 《飞机大战》安卓游戏开发源码(三)
  7. Linux C 数据结构—-循环链表
  8. 进阶学习js中的执行上下文
  9. 图像 pipeline_ARADEEPOPSIS:一个基于叶状态语义分割的自动植物表型Pipeline
  10. IplImage, CvMat, Mat 的关系和相互转换(转)
  11. 达内TTS6.0课件basic_day05
  12. C语言发明人丹尼斯-里奇去世
  13. php mysql 类型_php mysql bigint 类型
  14. matlab牛顿差值法函数,matlab牛顿插值函数
  15. matlab 日期加小时数_将EXCEL 中的日期 时间 导入到MATLAB坐标轴中
  16. 荣耀8X0安卓系统切换鸿蒙系统,华为大改安卓Q,EMUI 10将启用全新UI,花粉沸腾:静候鸿蒙...
  17. vue 获取当前路由地址
  18. Windows下Nginx安装使用
  19. 金仓数据库KingbaseES表空间(tablespace)知多少
  20. 初学GWT-安装GWT

热门文章

  1. 简单快速删除流氓软件(包括注册表)
  2. php写动物的属性,状物的记叙文类型——描述动物
  3. 房价预测(基于决策树算法)
  4. 计算机信息技术培训互评 评语,互评评语大全
  5. 查找字符串中某个字符出现的次数
  6. 多邻国-英语学习笔记
  7. mysql查看数据库的日志文件_怎么查看mysql数据库的日志文件
  8. 怎样写一篇文章 施工中~
  9. dropout keep_prob参数
  10. Why Memory Barriers中文翻译(下)