人人网技术架构演进:从Resin到Nuclear
需积分: 10 91 浏览量
更新于2024-08-17
收藏 1.35MB PPT 举报
"人人网架构的发展历程展示了从早期的单一架构到复杂分布式系统的演变,包括ResinPro、MySQL主从结构、LVS Resin Web集群、Memcached、ICE中间层、MySQL集群、DFS等技术的应用。随着业务增长,人人网引入了Nuclear,一个分布式键值存储系统,支持数据复制、分区、高可用性和多种一致性选项。Nuclear基于Netty、Protocol Buffers和Spring构建,使用HashRing进行数据分区,并能无缝添加新节点。"
在早期,人人网的架构始于2006年,主要依赖ResinPro作为Web服务器,配合MySQL InnoDB主从结构来处理数据存储,单个Storage配合Squid缓存来提升性能。随着用户量的快速增长,2007年,人人网开始采用LVS(Linux Virtual Server)和Resin组成的Web集群,大规模引入Memcached来缓解数据库压力,并构建了基于ICE的中间层服务,实现MySQL的垂直分区,同时引入了简单的分布式Storage和Lucene搜索引擎。
进入2008年,人人网进一步优化架构,开放API支持SOA(面向服务架构),实现了MySQL的水平分区,增强了监控和安全性,并开始使用DFS(分布式文件系统,如Hadoop的HDFS)以及自研的龙存系统。2009至2010年间,架构趋于稳定,转向更松耦合的SOA,引入Graceful Degradation策略,开始考虑NoSQL数据库,例如BigTable或Cassandra,建立多数据中心以实现扩展性和灾备,同时关注总体拥有成本(TCO)。
关键的创新在于Nuclear项目,这是一个分布式键值存储系统,旨在提供无限的存储容量和数据分区。Nuclear通过数据自动复制和分区确保了系统的高可用性,避免了单点故障。它提供了多种一致性选项,如DISCARD、MIN、QUORUM、DISCARD_QUORUM、ALL,以适应不同场景的需求,保证最终一致性。在实现上,Nuclear采用了高性能的NIO框架Netty、Google的Protocol Buffers进行序列化,以及Spring框架。其数据分区策略是基于HashRing,允许平滑地添加和移除节点,以应对数据量的增长和系统扩展。这种灵活的架构设计使得人人网能够处理海量用户和数据,同时保持服务的稳定和高效。
2019-03-28 上传
2009-12-04 上传
2023-07-25 上传
2023-07-17 上传
2023-06-09 上传
2023-12-05 上传
2023-03-28 上传
2023-04-14 上传
我的小可乐
- 粉丝: 26
- 资源: 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色块闪烁现象解析