高并发系统设计40问
唐扬
美图公司技术专家
立即订阅
9308 人已学习
课程目录
已更新 42 讲 / 共 45 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么你要学习高并发系统设计?
免费
基础篇 (6讲)
01 | 高并发系统:它的通用设计方法是什么?
02 | 架构分层:我们为什么一定要这么做?
免费
03 | 系统设计目标(一):如何提升系统性能?
04 | 系统设计目标(二):系统怎样做到高可用?
05 | 系统设计目标(三):如何让系统易于扩展?
06 | 面试现场第一期:当问到组件实现原理时,面试官是在刁难你吗?
演进篇 · 数据库篇 (5讲)
07 | 池化技术:如何减少频繁创建数据库连接的性能损耗?
08 | 数据库优化方案(一):查询请求增加时,如何做主从分离?
09 | 数据库优化方案(二):写入数据量增加时,如何实现分库分表?
10 | 发号器:如何保证分库分表后ID的全局唯一性?
11 | NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?
演进篇 · 缓存篇 (6讲)
12 | 缓存:数据库成为瓶颈后,动态数据的查询要如何加速?
13 | 缓存的使用姿势(一):如何选择缓存的读写策略?
14 | 缓存的使用姿势(二):缓存如何做到高可用?
15 | 缓存的使用姿势(三):缓存穿透了怎么办?
16 | CDN:静态资源如何加速?
加餐 | 数据的迁移应该如何做?
演进篇 · 消息队列篇 (6讲)
17 | 消息队列:秒杀时如何处理每秒上万次的下单请求?
18 | 消息投递:如何保证消息仅仅被消费一次?
19 | 消息队列:如何降低消息队列系统中消息的延迟?
20 | 面试现场第二期:当问到项目经历时,面试官究竟想要了解什么?
用户故事 | 从“心”出发,我还有无数个可能
期中测试 | 10道高并发系统设计题目自测
演进篇 · 分布式服务篇 (9讲)
21 | 系统架构:每秒1万次请求的系统要做服务化拆分吗?
22 | 微服务架构:微服务化后系统架构要如何改造?
23 | RPC框架:10万QPS下如何实现毫秒级的服务调用?
24 | 注册中心:分布式系统如何寻址?
25 | 分布式Trace:横跨几十个分布式组件的慢请求要如何排查?
26 | 负载均衡:怎样提升系统的横向扩展能力?
27 | API网关:系统的门面要如何做呢?
28 | 多机房部署:跨地域的分布式系统如何做?
29 | Service Mesh:如何屏蔽服务化系统的服务治理细节?
演进篇 · 维护篇 (7讲)
30 | 给系统加上眼睛:服务端监控要怎么做?
31 | 应用性能管理:用户的使用体验应该如何监控?
32 | 压力测试:怎样设计全链路压力测试平台?
33 | 配置管理:成千上万的配置项要如何管理?
34 | 降级熔断:如何屏蔽非核心系统故障的影响?
35 | 流量控制:高并发系统中我们如何操纵流量?
36 | 面试现场第三期:你要如何准备一场技术面试呢?
实战篇 (2讲)
37 | 计数系统设计(一):面对海量数据的计数器要如何做?
38 | 计数系统设计(二):50万QPS下如何设计未读数系统?
高并发系统设计40问
登录|注册

31 | 应用性能管理:用户的使用体验应该如何监控?

唐扬 2019-12-04
你好,我是唐扬。
上一节课中,我带你了解了服务端监控搭建的过程。有了监控报表之后,你的团队在维护垂直电商系统时,就可以更早地发现问题,也有直观的工具辅助你们分析排查问题了。
不过你很快发现,有一些问题,服务端的监控报表无法排查,甚至无法感知。比如,有用户反馈创建订单失败,但是从服务端的报表来看,并没有什么明显的性能波动,从存储在 Elasticsearch 里的原始日志中,甚至没有找到这次创建订单的请求。这有可能是客户端有 Bug,或者网络抖动导致创建订单的请求并没有发送到服务端。
再比如,有些用户会反馈,使用长城宽带打开商品详情页面特别慢,甚至出现 DNS 解析失败的情况。那么,当我们遇到这类问题时,要如何排查和优化呢?
这里面涉及一个概念叫应用性能管理(Application Performance Management,简称 APM),它的含义是:对应用各个层面做全方位的监测,期望及时发现可能存在的问题,并加以解决,从而提升系统的性能和可用性。
你是不是觉得和之前讲到的服务端监控很相似?其实,服务端监控的核心关注点是后端服务的性能和可用性,而应用性能管理的核心关注点是终端用户的使用体验。也就是说,你需要衡量从客户端请求发出开始,到响应数据返回到客户端为止,这个端到端的整体链路上的性能情况。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《高并发系统设计40问》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • qinsi
    敏感信息加密的目的是什么呢?如果是要防止泄露给网络上的中间人的话走加密协议如https是不是就可以了?
    2019-12-05
    3
  • 健少
    感谢老师分享!对系统监控又有一个深刻理解👍🏻
    2019-12-04
    1
  • longslee
    打卡。老师,我们也常做客户端问题分析,主要是浏览器,有跟头痛的问题是:如果客户端是因为网络不畅,本身这是应该被监控的,但是由于网络不畅连监控日志都发不出来,数据都丢了我们没法分析了。

    作者回复: 这个确实是的,不过可以把日志暂存一下,等网络通畅了再发送

    2019-12-10
  • Keith
    APM SDK和APM服务之间不需要通过消息队列连接吗? 这样直接将APM服务暴露到客户端的请求中, 会不会存在性能风险?

    作者回复: 还好,只要在SDK里面做了采样和聚合,定期发送就好了

    2019-12-07
  • 正在减肥的胖籽。
    有没有开源的amp监控的工具?主要想学习下AMP的设计思想。
    2019-12-04
  • 旅途
    老师,上报的异常数据,下单失败等等,这些在日志中不是有吗,上报这些的目的是什么呢

    作者回复: 有些失败不是服务端导致的,是客户端逻辑导致的,所以要上报

    2019-12-04
    1
  • liuyu5337
    我们首先会分配给这个应用,一对 RSA 公钥和私钥,然后 SDK 在启动的时候,先请求一个策略服务,获取 RSA 公钥。请问老师,分配的RSA公钥和密钥是应用启动时向服务器请求的还是写在应用(硬编码或者配置文件)里?如果是启动时请求服务端得到RSA公钥和密钥,如果应用没有网络,该怎么处理?

    作者回复: 硬编码的话,如果需要变更就比较麻烦

    2019-12-04
    1
  • 老磨
    实际上我们都是傻瓜操作,把所有的用户操作全部记录下来,然后让ML系统去学习,然后自动设置警报,诶,再也不用自己去写log了,无脑操作
    2019-12-04
  • Binggle
    请问下agent的标识是如何生成的?就是用户的账号id吗?

    作者回复: 是的,看你统计的未读,可能是账号ID,也可能是设备ID

    2019-12-04
  • 听了后不知道可以用哪些开源组件实现上讲和本讲的链路搭建
    2019-12-04
    1
收起评论
10
返回
顶部