20、CAP理论:怎样舍弃一致性去换取性能?

你好,我是陶辉。 上一讲我们介绍了如何通过监控找到性能瓶颈,从这一讲开始,我们将具体讨论如何通过分布式系统来提升性能。 在第一部分课程中,我介绍了多种提升单机处理性能的途径,然而,进程的性能必然受制于一台服务器上各硬件的处理能力上限。如果需要进一步地...

系统性能调优必知必会

21、AKF立方体:怎样通过可扩展性来提高性能?

你好,我是陶辉。 上一讲我们谈到,调低一致性可以提升有状态服务的性能。这一讲我们扩大范围,结合无状态服务,看看怎样提高分布式系统的整体性能。 当你接收到运维系统的短信告警,得知系统性能即将达到瓶颈,或者会议上收到老板兴奋的通知,接下来市场开缰拓土,业...

系统性能调优必知必会

22、NWR算法:如何修改读写模型以提升性能?

你好,我是陶辉。 前两讲我们介绍数据库的扩展时,写请求仍然在操作中心化的Master单点,这在很多业务场景下都是不可接受的。这一讲我将介绍对于无单点的去中心化系统非常有用的NWR算法,它可以灵活地平衡一致性与性能。 最初我们仅在单机上部署数据库,一旦...

系统性能调优必知必会

23、负载均衡:选择Nginx还是OpenResty?

你好,我是陶辉。 在[[第21讲]] 介绍AKF立方体时,我们讲过只有在下游添加负载均衡后,才能沿着X、Y、Z三个轴提升性能。这一讲,我们将介绍最流行的负载均衡Nginx、OpenResty,看看它们是如何支持AKF扩展体系的。 负载均衡通过将流量分...

系统性能调优必知必会

23、一致性哈希:如何高效地均衡负载?

你好,我是陶辉。 还记得我们在[[第22讲]] 谈到的Cassandra数据库吗?它将服务器节点组成一个环来存储数据,所使用的就是一致性哈希算法。那这一讲,我们就来看看一致性哈希算法是怎样工作的。 使用哈希算法扩展系统时,最大的问题在于代表哈希桶的服...

系统性能调优必知必会

25、过期缓存:如何防止缓存被流量打穿?

你好,我是陶辉。 这一讲我们将对一直零散介绍的缓存做个全面的总结,同时讨论如何解决缓存被流量打穿的场景。 在分布式系统中,缓存无处不在。比如,浏览器会缓存用户Cookie,CDN会缓存图片,负载均衡会缓存TLS的握手信息,Redis会缓存用户的ses...

系统性能调优必知必会

26、应用层多播:如何快速地分发内容?

你好,我是陶辉。 [[第7讲]] 我们曾介绍了网络层的IP协议是如何支持多播的,这节课我们再来从应用层看看如何实现多播功能。 当你的分布式集群只有十多个节点时,每次发布版本时,尽可以从发布服务器,将新版本的安装包通过ftp、scp、wget等工具分发...

系统性能调优必知必会

27、消息队列:如何基于异步消息提升性能?

你好,我是陶辉。 在前26讲中我们介绍了许多异步实现机制,这节课我们来看看如何通过消息队列提升分布式系统的性能。 异步通讯是最常用的性能提升方式,比如gRPC提供的异步API,或者基于write-back模式向缓存写入数据时,系统性能都可以提高。然而...

系统性能调优必知必会

28、MapReduce:如何通过集群实现离线计算?

你好,我是陶辉。 接下来的2节课我将介绍如何通过分布式集群优化计算任务。这一讲我们首先来看对于有边界静态数据的离线计算,下一讲再来看对无边界数据流的实时计算。 对大量数据做计算时,我们通常会采用分而治之的策略提升计算速度。比如单机上基于递归、分治思想...

系统性能调优必知必会

29、流式计算:如何通过集群实现实时计算?

你好,我是陶辉。 上节课我们介绍了在有边界的存量数据上进行的MapReduce离线计算,这节课我们来看看对于无边界数据,怎样实时地完成流式计算。 对于不再变化的存量数据,可以通过分而治之的MapReduce技术将数据划分到多台主机上并行计算,由于待处...

系统性能调优必知必会