网易大型应用架构与实践x

网易大型应用架构与实践x

ID:38591310

大小:1.71 MB

页数:18页

时间:2019-06-15

网易大型应用架构与实践x_第1页
网易大型应用架构与实践x_第2页
网易大型应用架构与实践x_第3页
网易大型应用架构与实践x_第4页
网易大型应用架构与实践x_第5页
资源描述:

《网易大型应用架构与实践x》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、www.163.com网易大型应用架构与实践汪源网易.杭州研究院.副院长应用架构与软件解决方案硬件解决方案大量使用廉价低端服务器主要机型逻辑处理/缓存:刀片,如IBMHS22,24/48G内存数据库:2U机架式服务器,如DellR710,单机多RAID1多数据库进程文件/数据库备份:定制存储服务器(后将祥述)其它网络:全部用千兆网络SSD:邮件、搜索、数据库中少量采用SSD,如Intel320AmazonEC2:海外服务器ESB:目标与背景目标解决解耦,独立部署基于服务的系统整合:SOA服务过载控制解决的常见问题服务器位置变更后通知客户端同类服务多机提供负载均衡不同应用/平台/语言

2、用不同服务调用方式多线程模型(用线程和线程池来处理服务调用)高并发性能问题服务过载导致系统失去响应ESB:设计中心注册机制:服务提供方注册服务信息,服务需求方问中心注册机制获取提供方位置通过Adapter/Stub机制实现,应用开发者只需要像调用普通Java方法一样调用ServiceAPI,针对不同协议的Adapter实现远程调用无论用什么协议调用代码相同支持http/hessian/rmi/socket/jms/webservice等调用协议负载控制:控制请求队列长度及过载处理方式(抛弃老请求、拒绝新请求等)DDB:概述目标保持关系数据库强大处理能力(如JOIN、批处理、事务AC

3、ID)提供一定的可伸缩性(百台)和可用性(无整体SPOF)ROADMAP2005年底启动,2006.9.1随博客正式上线5年持续开发,最新版本4.4近期新功能:支持多语言、主从自动切换、集成Memcached应用情况为公司几乎所有WEB类应用采用:邮箱、博客、微博、POPO等总体规模:数据库节点400+,数据量60TBDDB:功能与特色基于“实体组分区映射”实现的可伸缩与负载均衡多平台和多语言Java提供定制JDBC驱动,其它语言通过MySQL协议支持常用的RDBMS功能如支持JOIN、分组、排序、聚焦函数、视图、存储过程、触发器、用户权限跨节点或跨DDB分布式事务(2PC)在线模

4、式修改支持MySQL和Oracle混合使用丰富的管理功能,GUI/CLI/WEB管理工具模式定义、权限管理、统计、数据迁移、定时任务等等DDB:分区与可伸缩性分区策略表按某指定属性的值进行分区:哈希、自定义函数分区映射:分区到节点的映射表缓存于所有DDBDriver,高效的直接路由。调整映射表实现扩容和负载均衡实体组:多表可参与同一分区策略,减少分布式JOIN和分布式事务系统扩容借助MySQL复制与DDB查询改写实现,在线成倍与非成倍扩容成倍扩容建立待扩容节点A的两个镜像A1和A2,在A1和A2上删除多余的分区数据等A1和A2与A接近同步后短期停止对A的访问,等A1和A2与A完全同

5、步后,修改分区映射(通知所有客户端)后A下线,A1与A2上线DDBDriver转入迁移中处理模式,为有关SQL加上分区选择条件,防止触及A1/A2上的多余分区数据A1/A2再次清理少量多余分区数据后DDBDriver转入正常处理模式非成倍扩容轮流复制,以2节点扩容到3节点为例,新增节点轮流与原两个节点复制,同样短期停止访问后修改分区映射DDB:分布式事务使用两阶段提交内嵌于应用的DDBJDBCDriver为协调者TM,后端数据库为RMTM崩溃导致分布式事务处于悬挂状态,导致记录长时间被锁定?TM写分布式事务LOG,重启根据LOG处理MASTER定期检查回滚悬挂事务MySQLbugs

6、两阶段提交实现不符合规范:修改MySQL代码,在连接断开时不回滚已经处于PREPARED状态的事务XA事务出现错误后继续执行SQL导致MySQL崩溃:DDBDriver层禁止出现错误后继续执行SQL(最新MySQL已修复此问题)数据库集成Memcached方案一:DAO框架框架提供CRUD类辅助接口,应用基于这些接口方便实现有无Memcached两套DAO通过Spring框架动态配置选择用哪套DAO实现,细化到具体的DAO类方案二:DDB集成Memcached通过DDB配置各表是否启动Memcached缓存功能DDBDriver根据SQL语义智能化同步操作数据库与Memcached

7、UPDATE时都从Memcached中删除,减少Memcached与数据库不一致概率NTSE面向WEB应用特征开发的高性能MySQL存储引擎支持单记录操作ACID,不支持多操作组合事务功能特色行级缓存有效缓存热点记录索引前缀压缩:索引大小约InnoDB30%大对象LZO压缩:35%-40%基于字典的记录压缩:50%在线建索引高性能KV风格API:如SQL操作同一份底层数据,支持binlog应用情况:应用于新闻跟帖、反垃圾、轻博等系统,近20个节点,1T数据NTSEvs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。