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

系统评测

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

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

对于全链路的压力/性能测试,我这里就不花篇幅讲了,说真的,用好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. Spring框架之(无参、有参)构造方法与setter方法的初始化
  2. python坐标轴刻度设置_学习python中matplotlib绘图设置坐标轴刻度、文本
  3. html注释的内容如何修改,如何用自定义元素替换HTML注释
  4. maven笔记(2)
  5. ssh框架 验证码实现
  6. python中gensim内没有summarization的问题
  7. python语言要多久_怎么自学python,大概要多久?
  8. 4.3 createjs
  9. 解决可视化界面的时候灰屏【已解决】
  10. 禅道项目管理软件配置及使用
  11. c语言实现生成彩票随机号
  12. Raywenderlich: 用 VFX 制作蝴蝶飞起的效果
  13. 百度AI开放平台- API实战调用
  14. 矢量网络分析仪测量总结
  15. C++ 笔记 加号运算符重载
  16. 三小时学会css(菜鸟教程精华版)【中】
  17. 在electron应用中检测网络
  18. 不想将就,所以竭尽所能。
  19. 计算机专业名词(缩写、全称、中文全称)
  20. (详细)华为NOVA3i INE-TL00的usb调试模式在哪里开启的流程

热门文章

  1. 后端的一个刚毕业的小伙子老早完成了架构和服务端逻辑,接口洋洋洒洒列了出来。。。...
  2. 区块链应用_供应链金融
  3. ❤️交房步骤和注意事项❤️
  4. taobao.trade.fullinfo.get( 获取单笔交易的详细信息 )、淘宝店铺卖出订单详情接口,淘宝店铺订单明文接口,淘宝店铺订单解密接口
  5. 基于 Ekman 方程求解大气边界层中的水平均匀流和高度相关的涡流粘度附matlab代码
  6. Android Qcom USB Driver学习(六)
  7. 办理公司经营贷款需要什么条件呢?-民兴商学院
  8. iOS项目中用到的一些第三方库
  9. mac运行zookeeper的zkServer.sh,显示FAILED TO WRITE PID
  10. 51单片机两只老虎 c语言,基于51单片机做音乐盒(两只老虎)