写点什么

分离通用和用户专有数据流,实现可扩展的网站

  • 2008-03-06
  • 本文字数:1013 字

    阅读完需:约 3 分钟

Gojko Adzic 是一位作者兼 IT 咨询师,他发表了一篇很有趣的文章,该文章阐述了利用分离动静态内容这种架构的好处达到扩展 Web 应用的目的:

在一个要求可扩展性的网站项目中,有很多需要早做决定的架构问题,其中之一就是将数据流分离成两部分:一是用户特定数据,二是通用数据。

这种分离数据方法的主要原理是因为它们的使用约束意味着两种不同的缓存和状态管理方法:

例如,大部分通用数据流是完全无状态的,但用户的特定操作通常是有状态的。如果把这两种数据流清晰划分开,那么我们就可以通过无状态的服务和服务器来处理通用操作。无状态服务比有状态服务更容易理解,因为他们可以很容易地被代替而不会影响任何的系统操作。你如果想达到更大的吞吐量,只要使用 round-robin 策略和简单的负载均衡器将请求分发给更多廉价的服务器就可以了。而有状态服务的扩展却不是如此容易的事——它们可能会依赖于资源锁定,而负载均衡器就不得不将来自于同一个 Session 的所有请求发送到同一个服务器上。如果一个有状态的服务器宕机了,那么对系统运行有明显的影响,所以这些有服务必须比那些无状态服务具备更快的恢复能力。

Gojko 提出了如何分离数据流的指导原则。对于一个双层架构的应用,要创建不同的数据源。对于静态数据流,要打开缓存,关闭事务。对于三层架构的应用来说就更复杂一些:

在三层架构中,我喜欢在中间层就直接分离为用户特有数据服务器组和通用服务器组。Web 服务器在前端从第一组中间件服务器中得到通用数据,而利第二组中间件服务器管理事务。通用数据流服务器可以做成集群,很容易扩展,而且任何负载均衡系统都可以在集群外部运行。它们可以被重启、直接从集群中拿掉或者再放回去,这些都不会影响系统的运行。透明的缓存也很容易应用于这些服务器。而另一方面,用户特有数据的服务器在这些方面要复杂一些,而且不能使用透明的缓存。这种分离方法就是为了将来的扩展和缓存做打算,因为通用数据服务器可以按区域划分,放在几层缓存服务器之下,通过产品界限或类型垂直分开。而用户特定数据服务器的功能要专一且独立,所以当我们以后需要分割时,只要关注这一小部分就可以了。

Gojko 建议,尽可能让通用服务器利用缓存能力,如使用 AJAX 技术将用户特定内容加载到通用页面,使用 cookies 保存每个页面顶部都要显示的用户详细信息。通用数据流可以使用高性能的 http 服务器,如 LightHttpd

查看英文原文: Generic versus User Specific Data Streams for Scalable Web Sites

2008-03-06 17:361213
用户头像

发布了 100 篇内容, 共 26.0 次阅读, 收获喜欢 5 次。

关注

评论

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

微信分享的图纸在电脑上打不开怎么解决?

在路上

cad

IT项目管理主要做什么?-ManageEngine卓豪

ServiceDesk_Plus

ManageEngine卓豪

n8n+MySQL实现数据库查询!

王磊

数字孪生 + 区块链:MyEMS 引领能源管理技术融合新趋势

开源能源管理系统

开源 能源管理系统

移动端性能监控探索:鸿蒙 NEXT 探针架构与技术实现

阿里巴巴云原生

阿里云 云原生 Arms

【跨国数仓迁移实践10】 MMS助力GoTerra实现BigQuery到MaxCompute 50PB数据迁移

阿里云大数据AI技术

大数据 阿里云 数据迁移 MaxCompute

时序数据库 TimechoDB V2.0.6 发布 | 新增查询写回、黑白名单等功能

Apache IoTDB

面向企业构建科学完善的财务报告解决方案

智达方通

全面预算管理 财务管理

数栈产品如何实现国际化

袋鼠云数栈

国际化 袋鼠云 数栈

当AI和低代码成了你的团队

秃头小帅oi

Palo Alto网络防火墙日志监控

运维有小邓

媲美专业稳定器!天玑9500首发4K120帧双轨防抖,Vlog神器来了

新消费日报

非凸底仓增强算法上线西部证券,AI交易工具普惠个人投资者

非凸科技

从被动防御到主动免疫进化!迈格网络“天机” AI 安全防护平台,助推全端防护性能提升

迈格网络

技术小白福音!给老旧命令行程序加个GUI界面,从此点点鼠标就能用!

阿星AI工作室

学习 AI 大模型 AI产品经理

阿里云携手 海信聚好看 构建开源云原生大数据平台最佳实践

阿里云大数据AI技术

大数据 阿里云 数据湖 开源大数据平台

BaikalDB MCP Server :链接数据库和AI的直通桥

百度Geek说

分布式数据库 LLM MCP

Modbus 与 MQTT 协议兼容:MyEMS 的泛在能源数据采集技术实现

开源能源管理系统

开源 能源管理系统

低代码“新建日程”实操攻略,效率直接翻倍拉满

引迈信息

2025图文摘要机构哪家值得信赖?意得辑备受好评

科技汇

捷行第三期读书会开启!欢迎免费参加!

ShineScrum

东荟城名店仓CLUB CG「Chill『饰』玩周年庆」 过千款材料 打造DIY天堂

编程猫

ONES 荣获中国信通院铸基星图 ALM 平台“领航之星”

万事ONES

ONES 中国信通院 ALM 平台 应用生命周期管理 领航之星

华为,让金融智能体月映千江

脑极体

AI

基于 AI 网关提升大模型应用可用性的实践

阿里巴巴云原生

阿里云 云原生 LLM AI网关

如何在CAD图纸中添加外部参照?

在路上

cad cad看图 CAD看图王

深入解析Wallarm安全边缘:API边缘的即时防护技术

qife122

云安全 API安全 云安全网络安全

使用EventLog Analyzer进行Apache日志监控和日志分析

运维有小邓

从“救火队长”到“战略指挥”:现代项目管理者的效能进化论

Tecjt_锦图科技

项目管理 效率工具 敏捷开发 团队协作

Adaptix C2:跨平台渗透测试与对抗仿真框架

qife122

网络安全 跨平台 渗透测试

5支AI短片亮相釜山电影节引热议,创作者肯定Seedance、Seedream模型能力

新消费日报

分离通用和用户专有数据流,实现可扩展的网站_架构_Gavin Terrill_InfoQ精选文章