Rose架构解析:人人网关键技术与发展历程
需积分: 15 13 浏览量
更新于2024-08-18
收藏 1.34MB PPT 举报
本文档主要介绍了人人网(Renren)在不同阶段的技术架构演变过程,从2006年到2009-2010年间,逐步升级和优化其架构以应对不断增长的用户量和业务需求。最初,使用ResinPro作为Web服务器,搭配MySQL InnoDB主从结构,并结合Squid进行单点存储管理。随着业务的发展,架构逐渐成熟:
1. **2007年**:引入了LVS+Resin Web集群,提升了负载均衡性能;大量使用Memcached来缓存数据,提高了系统响应速度;引入ICE作为中间件层,支持垂直分区的MySQL集群,以及简单的分布式存储;同时,Lucene搜索也被整合进来。
2. **2008年**:进一步扩展了服务,开放API并采用SOA(面向服务架构),实现MySQL集群的水平分区;强化了监控和安全措施,使用DFS(分布式文件系统)如龙存(DragonFS)来支持大规模数据存储。
3. **2009-2010年**:进入稳健发展阶段,强调从紧耦合到松耦合的SOA转变,实施Graceful Degradation策略;在数据库选择上,从MySQL转向NoSQL,以支持更大的可扩展性和灾备能力;同时,关注整体拥有成本(Total Cost of Ownership,TCO)。
核心架构组件“Nuclear”是这一阶段的关键,它提供了分布式键值存储,通过数据自动复制和分区,实现无限扩展的存储容量。Nuclear遵循CAP理论(Consistency, Availability, Partition Tolerance),提供了多种一致性选项,如Discard、MIN、QUOROM等,确保在面对分区时能保持系统的可用性和一致性。Nuclear利用NIO(Non-blocking I/O)技术、Protocol Buffers、Spring框架,以及富数据模型(Key=>List)和弱结构化查询,实现了高效的分布式系统设计。HashRing分区策略使得节点间的数据分布均匀,方便添加新节点时保持数据的一致性。
总结来说,人人网架构经历了从简单到复杂,从集中式到分布式,从单点架构到高可用、高扩展的演进,这在整个过程中体现了对技术选型的谨慎与适应性,以及对用户体验和系统性能的持续优化。
2019-03-28 上传
2009-10-28 上传
2015-07-02 上传
2021-07-02 上传
2021-05-13 上传
2021-07-20 上传
2019-03-21 上传
双联装三吋炮的娇喘
- 粉丝: 19
- 资源: 2万+
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析