人人网构架.ppt

上传人:仙人指路1688 文档编号:2252790 上传时间:2023-02-07 格式:PPT 页数:42 大小:1.19MB
返回 下载 相关 举报
人人网构架.ppt_第1页
第1页 / 共42页
人人网构架.ppt_第2页
第2页 / 共42页
人人网构架.ppt_第3页
第3页 / 共42页
人人网构架.ppt_第4页
第4页 / 共42页
人人网构架.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《人人网构架.ppt》由会员分享,可在线阅读,更多相关《人人网构架.ppt(42页珍藏版)》请在三一办公上搜索。

1、人人网技术架构介绍,人人网,Guideline,人人网架构发展NuclearRose,架构发展,2006Lets Get it startedResin ProMySQL InnoDB主从结构单Storage+Squid,架构发展,2007突飞猛进LVS Resin Web集群大量使用Memcached中间层,基于ICEMySQL集群,垂直分区简单分布式StorageLucence搜索,架构发展,2008继续突破开放API,SOAMySQL集群,水平分区加强监控和安全DFS,龙存,架构发展,2009 2010稳健发展紧耦合=松耦合,SOAGraceful degradationMySQL=No

2、SQL多数据中心,可扩展,灾备关注TCO,Guideline,人人网架构发展NuclearRose,Nuclear 功能,分布式key-value存储数据自动复制到多个节点数据自动分区到不同节点存储容量无限扩展CAP-CA,Nuclear-CAP,可用性永远可写入(Hinted Handoff)不存在单点风险,Nuclear-CAP,多一致性选项DISCARDMINQUOROMDISCARDUOROMALL提供最终一致性Eventually Consistent,Nuclear-Overview,Nuclear-原理,构建NIO NettyProtocol BuffersSpring富数据模型

3、Key=List弱结构化查询,Nuclear-原理,分区 Hash Ring,Node A06148914691236517205Node B614891469123651720512297829382473034410Node C1229782938247303441018446744073709551616,Nuclear-原理,增加节点,Node N03074457345618258602Node A30744573456182586026148914691236517205Node B614891469123651720512297829382473034410Node C122978

4、2938247303441018446744073709551616,Nuclear-原理,增加节点,A c,a,b,c,a,bB a,b,c,a,b,cC b,c,a,b,c,a,N c,n,b,c,a,bA n,a,c,n,b,cB a,b,n,a,c,nC b,c,a,b,n,a,A a,b=NB b,c=NC c,n=N,Nuclear-原理,替换节点,A d,a,c,d,b,cB a,b,d,a,c,dC b,c,a,b,d,aD c,d,b,c,a,b,N d,n,c,d,b,cB n,b,d,n,c,dC b,c,n,b,d,nD c,d,b,c,n,b,B d,a=N C b,

5、c=ND c,d=N,Nuclear-原理,删除节点,A d,a,c,d,b,cB a,b,d,a,c,dC b,c,a,b,d,aD c,d,b,c,a,b,B d,b,c,d,b,cC b,c,d,b,c,dD c,d,b,c,d,b,C b,c=BD c,d=C B d,a=D,Nuclear-原理,节点状态迁移图,Nuclear-原理,Consistency 和 NWRW+RNW=2 R=2 N=3系统保障最终的一致性Merkle Tree,Nuclear-应用,系统组件普通节点(Node)接收Client请求提供数据存储中心节点(Seed)维护整个Nuclear Instance的拓

6、扑关系健康检测客户端(Nuclear Client)提供CRUD API,Nuclear-应用,Nuclear Instance,Node A,Node B,Node Z,Seed,Nuclear-应用,节点变更增加sh node.sh new A删除delete node A(manage.sh)替换replace A,Nuclear-应用,性能单节点处理最高 2.5Wreq/s典型应用环境:4 NodeMysqlN=3 W=2 R=2100 Client Write Request 单个Node 15862 req/s 平均单次请求耗时 5ms 99.51%请求耗时 50ms,Nuclea

7、r-应用,性能,Nuclear-应用,Nuclear Client API,Getparam keyparam dataIDparam consistencyLevelListparam keyparam Conditionparam consistencyLevelNextDataID,Putparam keyparam dataIDparam valueparam consistencyLevelReplace同 PutdataID可选Deleteparam keyparam dataIDparam consistencyLevel,Nuclear-应用,Code ExampleDataI

8、DProtocol Buffer,Nuclear-应用,Nuclear Manage ClientQPS查看Node接收请求总数Node处理请求耗时数据节点信息查看集群拓扑信息查看 动态更改节点处理线程数,Nuclear-展望,Eventually ConsistentVector ClockAsync StoreRead CacheBalance MonitorBigTable?,Nuclear-参考,Amazons Dynamohttp:/,Guideline,人人网架构发展NuclearRose,Rose是什么,Rose人人网释出的开源Web开放框架(Java)主创:王志亮人人网架构组R

9、EST式Web开发基于Spring技术支持服务端portal,Rose的应用,100%覆盖人人网Web网站首页、个人主页状态、日志、分享公共主页开放平台,Rose的发展,人人网支持全线使用不断更新稳定发布开源路线Wiki电子书,Rose开发示例,资源假设有2个只读资源GET/blog/251375230/459764084这是一篇日志的URL251375230是作者的ID459764084是该日志的IDGET/blog/251375230这是某个人的日志的URL251375230是作者的ID,Rose开发示例,控制器骨架package com.renren.blog.controllers.b

10、log;ReqMapping(userId:0-9+)public class BlogController Get public String list(Param(userId)long userId)return blog-list;Get(entryId:0-9+)public String show(Param(userId)long userId,Param(entryId)long entryId)return blog-show;,Rose开发示例,视图文件骨架根存放地址:webapp/viewsBlogController视图地址:webapp/views/blogblog-

11、list.jspblog-show.vm,Rose开发示例,model:控制器-视图Autowired BlogService blogService;Get public String list(Invocation inv,Param(userId)long userId)List entries=blogService.findUserEntries(userId);inv.addModel(entries,entries);return blog-list;,Rose开发示例,使Autowired工作实现步骤创建com.renren.blog.service.BlogService及其

12、实现在WEB-INF下创建spring配置文件:applicationContext-blog.xml把BlogService实现配置到该文件中BlogController将自动通过类型找到BlogService实例并注入(dependecy injection)autowired机制在纯粹spring中默认是关闭的在rose下默认是打开的,而且无法关闭,Rose开发示例,部署在sourceFolder/META-INF/目录下创建rose.properties,写上rose=controllers,messages,applicationContext,daojar包发布,确认rose.pr

13、operties存在于目标jar的META-INF下web.xml配置roseFilter roseFilter net.paoding.rose.RoseFilter roseFilter/*REQUEST FORWARD INCLUDE./start.sh,Rose其他特性,可扩展、可订制参数解析器参数验证器拦截器统一错误处理器flash:在重定向前后传递信息简单、可层级化的国际化支持rose重量级插件:服务端portal技术调试工具:/rose-info/jar、/rose-info/mapping等jade项目集成:annotation式的DAO,Rose-Statement,开源化:使用Apache License,Version 2.0;通用化:不做只适合某个公司假设的事情;安全:不含法律、道德、业内所不允许行为的代码调试工具默认关闭;稳定发布:在人人网经受每日数亿访问冲击,稳定发布;支持:提供丰富的wiki、电子书(2010 Q2-Q3)公共主页:http:/,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号