高并发的哲学原理_读书笔记
解决⾼并发的哲学原理:找出单点,进⾏拆分。
大单点——》一个小单点 + 多个资源并行
单点:⼀个系统中,⼏乎所有流量都必须经过的特定部分,如果它出现瓶颈或故障,将导致整个系统的性能下降或不可⽤
动静分离讲起,⼀步步深⼊ Apache、Nginx、epoll、虚拟机、k8s、异步⾮阻塞、协程、应⽤⽹关、L4/L7 负载均衡器、路由器(⽹关)、交换机、LVS、软件定义⽹络(SDN)、Keepalived、DPDK、ECMP、全冗余架构、⽤户态⽹卡、集中式存储、分布式存储、PCIe 5.0、全村的希望 CXL、InnoDB 三级索引、内存缓存、KV 数据库、列存储、内存数据库、Shared-Nothing、计算存储分离、Paxos、微服务架构、削峰、基于地理位置拆分、⾼可⽤。
学习目的
- 挑选最有价值的技术学习;
- 架构设计;
- 技术理念;
⾼并发问题的基本解决思路:系统的性能问题需要通过架构设计来解决。
⾯对⾼并发技术需求时,在架构上进⾏优化是最为简单、对系统稳定性影响最低且最容易获得收益的⽅法。
专注于单个资源的性能优化时,例如 MySQL 单机性能优化(软件优化)或 x86 CPU 多核性能提升(硬件优化),从微观⾓度来看,在优化软件/硬件的运⾏架构。
架构优化的本质就是拿其它资源或者指标来交换性能。
讨论Web 服务⾼并发
- 计算高并发——》网络高并发——》数据库(存储)高并发
- 单机 100 QPS——》100W QPS
第一部分 通用设计方法
不齐全,引入例子
互联网流量——》互联网业务价值
互联网业务发展——》互联网大流量《——高并发技术
⽤户⾓⾊——》设计者⾓⾊,思考如何设计这个系统
真实业务场景:⾯对压⼒、迎接挑战以及完成任务后的喜悦和轻松。
设定目标:每秒一百万次 HTTPS 请求(100W QPS/100W TPS)
第二部分 计算资源高并发
单机性能极限
Elasticsearch线程切换需要读写内存,官⽅建议单节点不要超过 32GB 内存。
语言特性如何决定性能
Go
1、支持在多核CPU并发;
2、栈空间较小,通常只有2KB;
3、上下文切换开销小,在同一个线程中的不同协程切换;
4、简单易用,在函数调用前加上关键字go,即可创建一个协程;
5、内置调度器:基于M:N调度技术,对协程进行调度和管理;

浙公网安备 33010602011771号