电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

人人网技术架构的演进(黄晶)huangjing

42页
  • 卖家[上传人]:san****019
  • 文档编号:69596289
  • 上传时间:2019-01-14
  • 文档格式:PPT
  • 文档大小:1.34MB
  • / 42 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、人人网技术架构介绍,人人网黄晶,Guideline,人人网架构发展 Nuclear Rose,架构发展,2006 Lets Get it started Resin Pro MySQL InnoDB主从结构 单Storage+Squid,架构发展,2007 突飞猛进 LVS Resin Web集群 大量使用Memcached 中间层,基于ICE MySQL集群,垂直分区 简单分布式Storage Lucence搜索,架构发展,2008 继续突破 开放API,SOA MySQL集群,水平分区 加强监控和安全 DFS,龙存,架构发展,2009 2010 稳健发展 紧耦合=松耦合,SOA Graceful degradation MySQL=NoSQL 多数据中心,可扩展,灾备 关注TCO,Guideline,人人网架构发展 Nuclear Rose,Nuclear 功能,分布式key-value存储 数据自动复制到多个节点 数据自动分区到不同节点 存储容量无限扩展 CAP - CA,Nuclear - CAP,可用性 永远可写入(Hinted Handoff) 不存在单点风险,Nuclea

      2、r - CAP,多一致性选项 DISCARD MIN QUOROM DISCARDUOROM ALL 提供最终一致性 Eventually Consistent,Nuclear - Overview,Nuclear - 原理,构建 NIO Netty Protocol Buffers Spring 富数据模型 Key=List 弱结构化查询,Nuclear - 原理,分区 Hash Ring,Node A 0 6148914691236517205 Node B 6148914691236517205 12297829382473034410 Node C 12297829382473034410 18446744073709551616,Nuclear - 原理,增加节点,Node N 0 3074457345618258602 Node A 3074457345618258602 6148914691236517205 Node B 6148914691236517205 12297829382473034410 Node C 12297829382473034410 184467

      3、44073709551616,Nuclear - 原理,增加节点,A c,a,b, c,a,b B a,b,c,a,b,c C b,c,a,b,c,a,N c,n,b,c,a,b A n,a,c,n,b,c B a,b,n,a,c,n C b,c,a,b,n,a,A a,b = N B b,c = N C c,n = N,Nuclear - 原理,替换节点,A d,a,c,d,b,c B a,b,d,a,c,d C b,c,a,b,d,a D c,d,b,c,a,b,N d,n,c,d,b,c B n,b,d,n,c,d C b,c,n,b,d,n D c,d,b,c,n,b,B d,a = N C b,c = N D c,d = N,Nuclear - 原理,删除节点,A d,a,c,d,b,c B a,b,d,a,c,d C b,c,a,b,d,a D c,d,b,c,a,b,B d,b,c,d,b,c C b,c,d,b,c,d D c,d,b,c,d,b,C b,c = B D c,d = C B d,a = D,Nuclear - 原理,节点状态迁移图,Nuclear - 原

      4、理,Consistency 和 NWR W+RN W=2 R=2 N=3 系统保障最终的一致性 Merkle Tree,Nuclear - 应用,系统组件 普通节点 (Node) 接收Client请求 提供数据存储 中心节点(Seed) 维护整个Nuclear Instance的拓扑关系 健康检测 客户端(Nuclear Client) 提供CRUD API,Nuclear - 应用,Nuclear Instance,Node A,Node B,Node Z, ,Seed,Client Request,Nuclear - 应用,节点变更 增加 sh node.sh new A 删除 delete node A (manage.sh) 替换 replace A,Nuclear - 应用,性能 单节点处理最高 2.5Wreq/s 典型应用环境: 4 Node Mysql N=3 W=2 R=2 100 Client Write Request 单个Node 15862 req/s 平均单次请求耗时 5ms 99.51% 请求耗时 50ms,Nuclear - 应用,性能,Nuclear -

      5、 应用,Nuclear Client API,Get param key param dataID param consistencyLevel List param key param Condition param consistencyLevel NextDataID,Put param key param dataID param value param consistencyLevel Replace 同 Put dataID可选 Delete param key param dataID param consistencyLevel,Nuclear - 应用,Code Example DataID Protocol Buffer,Nuclear - 应用,Nuclear Manage Client QPS查看 Node接收请求总数 Node处理请求耗时数据 节点信息查看 集群拓扑信息查看 动态更改节点处理线程数,Nuclear - 展望,Eventually Consistent Vector Clock Async Store Read Cache Balance Mon

      6、itor BigTable ?,Nuclear - 参考,Amazons Dynamo http:/ Cassandra http:/incubator.apache.org/cassandra/ Voldemort http:/project- 主创人员:冷昊人人网UGC团队 http:/,Guideline,人人网架构发展 Nuclear Rose,Rose是什么,Rose 人人网释出的开源Web开放框架(Java) 主创:王志亮人人网架构组 REST式Web开发 基于Spring技术 支持服务端portal,Rose的应用,100%覆盖人人网Web网站 首页、个人主页 状态、日志、分享 公共主页 开放平台,Rose的发展,人人网支持 全线使用 不断更新 稳定发布 开源路线 Wiki 电子书,Rose开发示例,资源 假设有2个只读资源 GET /blog/251375230/459764084 这是一篇日志的URL 251375230是作者的ID 459764084是该日志的ID GET /blog/251375230 这是某个人的日志的URL 251375230是作者的ID,Ro

      7、se开发示例,控制器骨架 package com.renren.blog.controllers.blog; 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 / views BlogController视图地址:webapp / views / blog blog-list.jsp blog-show.vm,Rose开发示例,model: 控制器视图 Autowired BlogService blogService; Get public String list(Invocation in

      8、v, Param(“userId“) long userId) List entries = blogService.findUserEntries(userId); inv.addModel(“entries“, entries); return “blog-list“; ,Rose开发示例,使Autowired工作 实现步骤 创建com.renren.blog.service.BlogService及其实现 在WEB-INF下创建spring配置文件:applicationContext-blog.xml 把BlogService实现配置到该文件中 BlogController将自动通过类型找到BlogService实例并注入(dependecy injection) autowired机制 在纯粹spring中默认是关闭的 在rose下默认是打开的,而且无法关闭,Rose开发示例,部署 在sourceFolder/META-INF/目录下创建rose.properties,写上rose=controllers,messages,applicationContext,dao jar包发布,确认rose.properties存在于目标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:/ You!,

      《人人网技术架构的演进(黄晶)huangjing》由会员san****019分享,可在线阅读,更多相关《人人网技术架构的演进(黄晶)huangjing》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.