高并发与分布式系统:原则、事务与实战
需积分: 0 21 浏览量
更新于2024-08-05
收藏 507KB PDF 举报
本文主要探讨了高并发、高可用、分布式相关的知识点,包括无状态原则、系统拆分、服务化、消息队列的作用以及缓存的应用。
1. 高并发原则:
- 无状态原则:为了实现水平扩展,应用应当尽可能地保持无状态,这意味着每个请求都可以独立处理,不依赖于之前的请求状态。通过配置中心实现无状态,例如Disconf、Yaconf、Zookeeper、Consul等工具。
- 拆分策略:按照系统功能、业务、读写比例、AOP(面向切面编程)维度进行拆分,例如购物车、结算、订单系统、CDN等。
- 服务化:进程内服务逐渐演变为服务化的架构,涉及服务的分组、隔离、限流、黑白名单、超时、重试机制、路由和故障补偿。
2. 分布式与集群的区别:
- 分布式系统是多个独立的节点通过网络协同工作,共同完成任务,而集群是多个机器共享同一份数据,提供相同的服务,具有高可用性。
3. 分布式事务:
- 二阶段提交(2PC):分为准备阶段和提交阶段,确保所有参与者的操作要么全部成功,要么全部失败。
- 三阶段提交(3PC):在2PC的基础上增加预提交阶段,减少阻塞时间,提高系统性能,但增加了复杂性。
4. 消息队列:
- 目的:服务解耦、异步处理、流量削峰。例如,通过消息队列实现库存扣减,先在Redis中扣减并记录日志,然后由后台进程将日志应用到数据库,确保最终一致性。
5. 数据异构与闭环:
- 数据异构:通过消息队列接收数据变化,原子化存储,形成数据的多源异构。
- 数据闭环:统一管理多个数据来源,异构存储数据,确保数据一致性。
6. 缓存应用:
- 用户层:从DNS缓存到浏览器缓存,再到应用层的缓存,如Opcache、页面静态化、业务数据缓存等。
- 代理层:CDN缓存通过ATS、Varnish、Nginx、Squid等构建,提供快速响应。
- 接入层:Nginx的Proxy_cache、FastCGICache等。
- 应用层:如Nginx+Lua+Redis用于业务数据缓存,PHP的Opcache优化PHP执行效率。
这些技术与原则是构建高并发、高可用分布式系统的关键,它们能有效应对大规模用户访问,提升系统性能,保证服务稳定性。
3826 浏览量
129 浏览量
2021-10-19 上传
261 浏览量
123 浏览量
点击了解资源详情
点击了解资源详情
253 浏览量