50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

提升可伸缩性的八项最佳实践

  • 2009-05-19
  • 本文字数:925 字

    阅读完需:约 3 分钟

Wille Faler 提出了八项提升系统可伸缩性和性能的最佳实践,其中包括减少数据库操作、使用缓存、减少网络通信等实践。

1. 减少数据库操作 - 尽可能远离数据库。如无必要,就不要打开数据库连接或者启动事务。

2. 缓存带来的显著变化 - 缓存能极大地减低数据库的负担,特别是当系统通过只读方式访问数据库的时候。内存缓存优于磁盘缓存,而磁盘缓存又优于远程缓存和关系型数据库。

3. 尽可能缓存粗粒度对象 - 缓存粗粒度对象“可以省去遍历 n 个缓存单元的 CPU 开销和时间。而且,获得完整的对象关系图也省去了对象关系图的装配时间。”

4. 不要永久性保存瞬态信息 - 避免在数据库里面存储瞬态数据,比如登录的会话信息。

“状态怪物”是一只非常危险的怪兽。根据一般的规律,在持久性存储设施(数据库、磁盘等)里面只需要保存真实的、必要的、关键的,以及需要备录的业务数据,其他的都不在此列。

5. 位置、位置 - 把东西放在靠近需要使用它们的地方。相对于负载均衡器、Web 服务器、应用服务器和数据库多个环节,直接经过负载均衡器和 Web 服务器从 CDN 获取数据要快一些,开销也更小。

6. 约束对有限资源的并发访问 - 如果多个请求需要访问同样的资源,执行同样的计算,最好是只处理首个请求,让其他的请求等待计算完成后直接使用最终结果。让所有的线程去访问同一个资源只会减缓处理的速度。

7. 分阶段地、异步地处理

根据处理过程的异步性,把该过程分散成单独的步骤,通过队列来隔离;每个步骤使用有限数量的工人线程进行处理:这样经常会给可伸缩性和性能同时带来奇迹般的变化。

8. 使网络延迟最小 - 尽可能使应用系统不去做远程访问,因为网络通信要明显慢于内存访问。在 Faler 这篇文章的评论里面, Steve M. Ciske 对减少数据库操作的做法表示了忧虑:

对于减少数据库操作的做法,我持谨慎态度。我见多了人们走向另一个极端,把所有的东西都放在应用层。

Paweł Stradomski 认为远程内存缓存要快于本地磁盘缓存,Faler 也表示了同意:

远程主机(通过网络连接)缓存可能会快于本地磁盘缓存。如果不考虑网络查找的时间,从磁盘顺序读取数据比从远程主机的内存里面读取数据要慢三倍。

延伸阅读:Simon Brown 的文章“可伸缩性原则”。

查看英文原文 8 Best Practices to Improve Scalability

2009-05-19 20:323262
用户头像

发布了 76 篇内容, 共 28.1 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Marvell AQC 网卡驱动定制版

sysin

macos esxi OEM BIOS aqc

讯飞晓医APP再升级!上线数字健康空间,更懂健康更懂你

EVANjesse

智慧医疗 科大讯飞 AIGC 讯飞星火 医疗健康

What's new in PikiwiDB(Pika) v4.0.0

apache/dubbo-go

服务韧性工程(SRE)论坛演讲实录 | 浙江移动:运营商ICT项目SRE运维的探索与实践

雅菲奥朗

运维 SRE

倒计时 2 周!CommunityOverCode Asia 2024 IoT & Community 专题部分

Greptime 格睿科技

Apache 数据库 IoT 社区 apache 社区

2023首届服务韧性工程(SRE)论坛分会场:聚焦SRE的实践和应用

雅菲奥朗

人工智能 运维 可观测性 SRE

什么是 Flink SQL 解决不了的问题?

京东科技开发者

Go 语言性能优化技巧

左诗右码

Go

非营利组织的数据治理之路

郑州埃文科技

数据治理

AI视频创作一条龙!达摩院“寻光”平台炸场WAIC,突破可控编辑难题

Openlab_cosmoplat

人工智能 AI 视频

华为云发起,openGemini正式成为CNCF官方项目!

华为云开源

云原生 时序数据库 cncf openGemini 华为云开源

托寄物智能识别——大模型在京东快递物流场景中的应用与落地

京东科技开发者

AI绘图实践-用人工智能生图助力618大促

京东科技开发者

你必须知道的职场晋升规则

老张

职场成长 职场晋升

供配电学习笔记 day1

万里无云万里天

电力 工厂运维

Go语言设计模式:使用Option模式简化类的初始化

左诗右码

Go

淘宝/天猫商品详情API接口与电商数据仓库的实时同步实践

技术冰糖葫芦

API Explorer API 文档 API 协议 pinduoduo API

2023年首届服务韧性工程(SRE)论坛成功举办

雅菲奥朗

人工智能 云计算 大数据 运维 SRE

2023首届服务韧性工程(SRE)论坛分会场:数据中心运维的新发展

雅菲奥朗

人工智能 大数据 运维 SRE

服务韧性工程(SRE)论坛演讲实录 | 雅菲奥朗:SRE是数字化转型时代基础设施能力

雅菲奥朗

运维 可观测性 SRE #DevOps

word一键生成ppt!这2款AI转换工具值得推荐!

彭宏豪95

人工智能 职场 PPT AIGC AI生成PPT

助你升职加薪的浣熊表哥

石云升

数据分析 数据可视化 办公小浣熊

服务韧性工程(SRE)论坛演讲实录 | 基于可观测性构建SRE运维体系经验分享

雅菲奥朗

运维 可观测性 SRE

提升可伸缩性的八项最佳实践_最佳实践_Abel Avram_InfoQ精选文章