新浪微博技术架构
- 格式:docx
- 大小:24.13 KB
- 文档页数:3
新浪 SAE 分布式 Web 服务应用平台——云计算技术在网络推广中的应用 1)什么是 Sina App EngineSina App Engine(以下简称 SAE)是新浪研发中心于 2009 年 8 月开始内部开发,并 在 2009 年 11 月 3 日正式推出第一个 Alpha 版本的国内首个公有云计算平台,SAE 是 新浪云计算战略的核心组成部分。
SAE 作为国内的公有云计算, 从开发伊始借鉴吸纳 Google、 Amazon 等国外公司的公有 云计算的成功技术经验,并很快推出不同于他们的具有自身特色的云计算平台。
SAE 选择在国内流行最广的 Web 开发语言 PHP 作为首选的支持语言,Web 开发者可以在 Linux/Mac/Windows 上通过 SVN、SDK 或者 Web 版在线代码编辑器进行开发、部署、调 试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限; SAE 提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布 式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发 成本。
同时又由于 SAE 整体架构的高可靠性和新浪的品牌保证,大大降低了开发者的 运营风险。
另外,作为典型的云计算,SAE 采用“所付即所用,所付仅所用”的计费 理念,通过日志和统计中心精确的计算每个应用的资源消耗(包括 CPU、内存、磁盘 等) 。
第 1 页总之,SAE 就是简单高效的分布式 Web 服务开发、运行平台。
2)SAE 整体架构 SAE 从架构上采用分层设计,从上往下分别为反向代理层、路由逻辑层、Web 计算服 务池。
而从 Web 计算服务层延伸出 SAE 附属的分布式计算型服务和分布式存储型服务, 具体又分成同步计算型服务、 异步计算型服务、 持久化存储服务、 非持久化存储服务。
各种服务统一向日志和统计中心汇报,参考下图:7 层反向代理层:HTTP 反向代理,在最外层,负责响应用户的 HTTP 请求,分析请求, 并转发到后端的 Web 服务池上,并提供负载均衡、健康检查等功能。
∙分享智慧城市解决方案∙智慧园区为提升园区服务能力的灵活性、快速反应性及可扩展性,软通动力推出可自适应管理并支持智慧产业发展的管理平台,包括云数据中心和智慧应用平台。
∙城市运营指挥中心将城市作为单一的系统来进行查看和管理,为城市管理者提供实时及历史视图,以便可以优化城市各层面的操作。
∙电子政务平台作为一个集成的政府管理工具,通过高度抽象和概括的方式构建出信息化工作平台的软件体系和应用模型。
∙智慧旅游平台强调技术和业务的紧密融合,以“SNS+微博社区”为核心构建的一体化数字景区服务平台,提供全生命旅游服务。
∙数字出版集成服务平台集合从策划、出版、制作加工、版权管理、发行、交易、支付结算到智慧终端阅读的全产业链服务运营平台。
∙食品溯源解决方案融合条形码、二维码、IC卡、RFID无线射频识别等先进技术,为食品溯源提供统一平台,实现食品生命周期的全程跟踪,使食品安全达到更好的可控制、可跟踪、可追溯。
∙云数据中心基于云计算基础架构,提出了一套全新的云数据中心解决方案,助力于提升整个城市管理和公共服务水平,创造一个更加和谐的城市环境。
∙智慧城市体验展示中心运用创新的展示手段,智慧化的演示流程,新型的演示设备,构建的一个极具现代感,科技感,时代感的智慧化展厅,成为城市对外展示宣传的重要窗口。
∙智慧社区以物联网、云计算、三网融合等技术为基础,由专业服务商为不同的用户群体量身定制的智能信息系统,为居民提供了“更安全、更舒适、更便捷、更节能”的生活环境。
∙智慧楼宇解决方案通过各系统的协同工作和信息整合,实现楼宇全局能耗的监测与管理、楼宇局部按需节能精确控制、以及实际能耗分析及管理的虚拟化仿真等功能。
标准化、。
新浪网站运营策划方案一、背景及概述新浪网是中国领先的综合性门户网站,始建于1998年,旗下有新闻、娱乐、体育等多个频道。
作为中国互联网行业的先行者之一,新浪网承载着海量的用户访问量和用户需求,为用户提供了丰富的内容和服务。
然而,随着互联网的发展,新浪网面临着激烈的竞争和日益多元化的用户需求,如何保持自身的竞争力和吸引力成为了一项全新的挑战。
因此,制定一套有效的网站运营策划方案,将对新浪网站的长期发展起到至关重要的作用。
二、目标与定位1. 目标:通过优化网站内容和提升用户体验,提高网站的访问量和用户留存率,确保网站在激烈的竞争中保持领先地位;2. 定位:坚持以新闻、财经、体育、娱乐等为主要内容,同时加强新媒体传播、技术创新等方面。
三、关键策略1. 提升网站内容质量(1)加大新闻报道力度,关注用户热点话题,提供全面、深入的报道,提高用户粘度;(2)扩大视频、图片等多媒体内容的覆盖面,以满足用户对视觉体验的需求;(3)加强原创内容的制作,增加专题报道和深度分析,提高内容的深度和广度。
2. 优化用户体验(1)优化网站页面布局,提高页面加载速度,丰富网站功能,方便用户使用;(2)建立个性化推荐系统,根据用户的浏览记录和兴趣偏好,为其推送定制化内容;(3)加强社区交流和互动,提升用户参与度,丰富用户体验。
3. 加大新媒体宣传(1)积极开展社交媒体营销,扩大新浪网在微博、抖音、微信等平台的影响力;(2)探索社交电商,与知名博主、网红合作,开展精准营销,吸引更多用户参与;(3)推出APP版本,提升移动端用户体验,拓展用户群体。
4. 加强技术创新(1)加强人工智能技术的应用,提高网站内容推荐的准确性;(2)注重大数据分析,深入了解用户需求,为网站运营提供有力的数据支持;(3)推进区块链技术研发,加强网站内容的可信度和透明度。
四、运营计划1. 网站内容运营(1)建立内容运营团队,加大投入,提升新闻报道的质量和数量;(2)加强与合作伙伴的联动,共享资讯资源,丰富网站内容;(3)举办线上线下有奖活动,吸引用户参与,增加用户粘度。
实时GIS解决方案2013年7月易智瑞(中国)信息技术XXX——制定及修订记录——* 修订类型分为A - ADDED M - MODIFIED D –DELETED注:对该文件内容增加、删除或修改均需填写此记录,详细记载变更信息,以保证其可追溯性。
1前言2013年8月5日,住房和城乡建设部公布2013年度国家智慧城市试点名单,确定103个城市(区、县、镇)为2013年度国家智慧城市试点,至此住建部确定的试点已达193个。
智慧城市正在紧锣密鼓的建设中,而支撑智慧城市其中一项非常重要的技术手段是物联网。
2013年,国务院发布了《国务院关于推进物联网有序健康发展的指导意见》,为我国物联网发展指明了方向。
经过几年的技术和市场培育,加之我国在物联网领域的自主创新能力不断增强,可以预见物联网即将进入高速发展期。
预计到2015年的时候,全球与互联网相连的物体将达60亿件。
物联网技术的核心和基础依然是互联网技术,是在互联网技术基础上的延伸和扩展的一种网络技术,它是通过网络及各类感应设备来实现物与物、物与人之间的信息交换和通讯。
通过物联网技术可以收集物联网节点的各种信息,从而对环境、事物、过程等进行全实时、可视化的监控和管理,各领域的用户可以借助这一技术实现从信息化向智能化的转变。
物联网的核心理念在于感、传、知、控,进而实现人与人、人与物、物与物之间的有机了解。
作为这种了解的基础,位置或者地理信息是其重要的组成部分。
采用物联网技术,把各类感应设备嵌入和装备到与空间地理位置相关的城市部件(摄像头、路灯、电杆等)、建筑物、铁路、桥梁、隧道、公路、大坝、管道(石油、给排水)、电网等各种设施中,利用互联网及移动通信等网络技术,再结合地理信息可视化及信息集成方式,把此类与空间位置相关的感应设备及其感应信息映射在电子地图上,实现物联网与地理信息的集成与整合,建立可视化的物联网实时GIS原型系统。
那么面对纷繁浩杂的传感设备,如何方便快捷的接入这些设备产生的实时数据,并对其在地图上进行可视化的监控、分析并智能化为人为决策提供支持,是当前用户所面临的亟需解决的问题。
我国主要SNS网站营销价值浅析摘要:社交平台不断引领潮流、创造奇迹,极大地改变了人们的生活和信息传播方式。
社交网络的便捷性和即时性等特点使得越来越多的个人以及企业利用SNS来开展营销,催生了网络营销这种炙手可热的推广营销方式,给微时代的企业带来了新的商业契机和营销模式。
本文简要阐述了三种SNS营销工具的价值及特点。
关键字:SNS 营销价值正文:1 绪论1.1 SNS的理解SNS(Social Network Software)即社会化网络服务网站,是近几年最热门的互联网应用之一,其理论基础是六度空间理论六度空间理论,,平台都是基于`喻几”架构的,而中的社会性则推动了人际网络的构建。
目前比较知名的国内的的网站有人人网、校内网、开心网、豆瓣网、、聚友等网站,。
就是为用户提供通过互联网创建并维护人际关系网络的服务,帮助用户通过个人的人际关系网络满足其各方面需求与兴趣的网站。
目前网站主要有两种,一种是实名制的真实可信任网络,鼓励用户和将现实中的社交关系转移到互联网来维护,如朋友、同学、校友、同事、亲人等等强联系人,并鼓励用户拓展人脉,让用户利用朋友的朋友找到可以拓展的人脉资源另一种则是依靠用户之间的共同兴趣来聚合同类用户,用户通过需求和兴趣来形成圈子、拓展人脉,并且分享与交流共同感兴趣的信息,也是为了满足自身的需求。
由于是建立并维护互联网人际关系的有效工具与平台,因此,网站聚合了大量用户,用户之间通过日志、活动、群组等应用和服务来分享个人信息、建立圈子、组织活动等,网站有着巨大的用户流量和注册用户数。
1.2 各具特色的SNS网站1.2.1 综合性SNS新浪微博:由新浪网推出,提供微型博客服务类的社交网站。
开心网:是国内SNS的带动者,在国内居于霸主地位。
人人网(校内网):从校园走向社会的庞大的社区网络1.2.2垂直SNS公关圈:公关行业的SNS家园。
迈点蓝:酒店行业的SNS社区。
驴友录:面向驴友、户外运动爱好者的SNS社区。
阿里美国上市成美规模最大IPO 2014年3月26日,阿里巴巴决定启动在美国的上市事宜,以使公司更加透明、国际化。
阿里可能最早在4月份提交上市申请,最早在第三季度进行IPO。
规模可能超过Visa成为美国迄今规模最大的IPO.计划中的这笔IPO将筹资逾150亿美元,雅虎和其他现有股东将在IPO中出售股票。
Face book 2012年通过IPO交易筹资160亿美元。
不过,阿里巴巴的上市规模取决于上市地点以及首次筹资规模,可能会超过维萨公司的180亿美元,成为美国迄今规模最大的IPO.若阿里巴巴继续推进上市计划,那么可能最早在4月份提交上市申请,最早在第三季度进行IPO.最终的牵头承销商最多有五家。
公司公开表示,决定启动在美国的上市事宜,以使公司更加透明、国际化,进一步实现阿里巴巴的长期愿景和理想。
未来条件允许,将积极参与回归国内资本市场,与国内投资者共同分享公司的成长。
对于这一决定是否意味着阿里巴巴彻底放弃在港上市,阿里巴巴公关部人士表示,不发表除公开声明以外的评论。
外界预测,阿里巴巴首次公开募股的融资额高达150亿美元,估值将超过1000亿美元。
这笔大单被视为自2012年5月Facebook IPO融资160亿美元之后,又一“航母”级别融资项目。
资本市场人士判断,阿里巴巴集团的估值极有可能超过前者,而跻身标准普尔500的前四十。
事实上,早在这一决定出炉前几天,阿里巴巴高层的表态就已经初现端倪。
3月12日,阿里巴巴集团负责资本运作事宜的执行副主席蔡崇信表示,绝不会为了在香港IPO而改变合伙人制度。
2013年,阿里巴巴向香港联交所建议的上市计划中,创新性地提出准备引入合伙人制度。
在这一制度下,阿里巴巴的现有管理团队,将拥有董事会内多数董事的提名权。
将公司控制权掌握在管理团队手中,是一些互联网巨头们的惯例。
谷歌在2004年IPO时创造了双重股票结构,给予创始人和CEO三分之二的投票表决权。
Facebook创始人兼CEO扎克伯格通过此类安排,拥有该公司57.3%的投票权,从而保持对Facebook公司的控制权。
师资培训方案《移动互联应用技术》《大数据处理实战》(TJUOT-Real Project Training)方案建议书V1.02016-05-20中国服务外包培训中心中软国际卓越培训中心(天津)1.项目背景1.1中软国际有限公司介绍中软国际成立于2000年,为香港主板上市公司,股票代码354。
中软国际是中国大型综合性软件与信息服务企业,提供从IT咨询服务、IT技术服务、IT 外包服务到IT培训的“端到端”软件及信息服务,涉及政府、制造、金融、电信与高科技等主要信息技术行业。
公司服务遍布全球包括大陆地区北京、上海、南京、深圳、大连、西安,美国普林斯顿、西雅图、奥斯汀、休斯顿、达拉斯,英国伦敦,日本东京、爱尔兰都柏林在内的45个城市拥有逾50家分公司,员工达30000人。
中软国际旗下拥有五个集团:技术服务集团(简称TSG Technology Service Group)专业服务集团(简称PSG Professional Service Group)、新业务集团(ESG Emerging Service Group)、互联网集团(ITSG Internet Information Technology Service Group)中软国际教育科技集团。
IT咨询服务主要包括:战略转型咨询、供应链管理模式咨询、信息化规划咨询、生产管理咨询、营销管理咨询及财务管理咨询等。
IT技术服务主要包括:电子政务、审计与监管、社会保险与福利管理、行政许可管理、银行卡、信用卡、支付与清算、电子营销、信贷管理、风控管理、收单业务、保险业务、手机支付、移动电子商务、制造执行系统、物流跟踪系统、内部资料.注意保密第2 页共16 页轨道交通AFC/ACC、城市一卡通、智能交通等三十多个行业解决方案,以及客户关系管理、办公自动化、商业智能、门户网站群等通用解决方案。
IT外包服务主要包括:基础设施管理服务、产品工程化服务、企业级套装软件实施服务、应用开发和维护外包服务以及数据处理、工程流程外包、呼叫中心等。
自建CDN防御DDoS(1):知己知彼,建设持久防线作者张磊邵海杨发布于 2013年2月18日领域运维 & 基础架构主题运维,安全,CDN新浪微博腾讯微博豆瓣网TwitterFacebooklinkedin邮件分享更多0前言本议题是我们在OWASP杭州区2013年岁末年初安全沙龙中进行分享的内容,在此我们对这个议题的整体内容进行了重新归纳梳理,形成了文字版。
相关厂商内容持续集成与持续交付专家乔梁:近十年实战项目案例之深度剖析国内最大的Python应用——Sohu邮箱之经验分享,尽在QCon北京企业开发专题QCon全球软件开发大会(成都站)2013启动,关注移动、大数据通过赌钱以PageRank算法为例,讲解“并行计算+数据算法”经典搭配,3月刊《架构师》免费下载!Kinect for Windows人机交互新体验,免费培训报名中,限额30人(成都:3月27日,深圳:3月29日)在本文中,DDoS的案例与应对经验均来自于某市场占有率很高的客服系统所遇到的实际场景,分别从成本、效率和具体架构设计(选型、配置、优化等)角度来分析通过自建CDN来应对不同类型的DDoS攻击。
背景介绍客服系统的主要业务是提供基于网页的实时动态的文字聊天,主要应用在各类网络商品销售、网站在线客服等领域,总用户数58万,同时在线活跃的用户约12万/天。
这些应用领域通常行业之间的竞争比较激烈,其中包括在线下无法名正言顺的灰色+暴利产业,导致竞争对手之间经常发动DDoS恶意攻击。
但营销网站往往是单面加速,加上推广时效性很强,很难被彻底打击,于是一些自作聪明的黑客通过攻击网站的在线客服系统,导致网站无法跟访客沟通,不能交易,从而达到恶意攻击的目的。
因此客服系统这个原本有助于网站营销的工具反而成了被攻击的主要对象,虽然伤得委屈,但也不得不面对挑战。
我们遭遇的DDoS攻击类型包括:延缓性的CC攻击和致命的大流量攻击。
下面将对两种攻击方式的攻击特点、防御思路和我们用过的一些防御方案进行简单的介绍。
信息化平台架构设计⼀、为什么需要信息化平台如果没有信息化建设平台,每次新开发⼀个系统时,由不同的负责⼈负责开发就会有不同的开发规范,真可谓是⼋仙过海各显神通。
造成系统与系统之间进⾏对接⼗分困难,后期运维及交接困难度加⼤。
如果没有信息化建设平台,每次新开发⼀个系统时,即使同⼀个项⽬负责⼈,在不同时期也可能采⽤不同的开源框架。
开源框架有好有坏,规范也是天差地别,如果对所⽤的开源框架了解的不够充分,那将是灾难性。
因为系统的bug千奇百怪,就像聊斋志异⼀样,后期运维的成本也是相当⼤的,如果项⽬耦合度⾼,都有可能出现项⽬负责⼈都⽆法运维的现象。
如果没有信息化建设平台,每次新开发⼀个系统时,都要考虑架构设计,权限验证等问题,开发者在前期都要浪费很多时间在这些问题上,增加了项⽬延期的风险。
如果没有信息化建设平台,每次新开发⼀个系统时,都要花费很多时间在系统的基础设施层上,如缓存,⽇志、邮件、性能监控、⽂件上传下载等。
容易造成各个系统的基础设施层的代码乱七⼋糟,使开发者晕头转向,增加开发风险,也降低了系统的稳定性。
如果没有信息化建设平台,每次新开发⼀个系统时,可能出现⼀个⽤户多个账号,多个密码,⽤户的体验度也必将很差。
⼆、信息化平台架构设计图三、介绍⼀些在企业中常⽤并且扮演重要⾓⾊的系统1、统⼀权限管理系统 如果要想打造企业的信息化建设平台,打造统⼀权限管理系统,可以说是万⾥长征的第⼀步。
对于开发者来讲,如果有这么⼀个系统,那么我们每个系统都可以采⽤同⼀种的权限管控⽅式。
我们开发者在开发系统时,就完全不需要操⼼权限的问题。
所需的⼯作量仅仅是将公⽤的jar包或者dll引⼊到项⽬中即可,开发者在需要权限验证的地⽅加上注解(java)或者特性(.Net)或者其他资源标识。
对于系统运维⼈员来讲,可以在统⼀权限管理系统中管理每个⽤户的每个系统的权限。
⽤户注册及⽤户权限的管理可以交由部门负责⼈去负责,也可以做⼀套权限变更申请流程。
业界异地多活⾼可⽤架构设计⽅案总结异地多活在近年越来越多⼤型互联⽹公司采⽤的⽅案,⼏乎也是⼤型应⽤发展到⼀定阶段的必然选择,综合⽐较⼀下各个互联⽹公司的⽅案,会发现有很多共性的东西,也有很多差异化的东西,这是最有意思的地⽅什么是异地多活异地多活⼀般是指在不同城市建⽴独⽴的数据中⼼,“活”是相对于冷备份⽽⾔的,冷备份是备份全量数据,平时不⽀撑业务需求,只有在主机房出现故障的时候才会切换到备⽤机房,⽽多活,是指这些机房在⽇常的业务中也需要⾛流量,做业务⽀撑。
冷备份的主要问题是成本⾼,不跑业务,当主机房出问题的时候,也不⼀定能成功把业务接管过来。
CAP原则分布式架构设计⽆论怎样都绕不开CAP原则,C⼀致性 A可⽤性 P分区容错性,分区容错性是必不可少的,没有分区容错性就相当于退化成了单机系统,所以实际上架构设计是在⼀致性和可⽤性⼀个天平上的两端做衡量。
为什么强⼀致性和⾼可⽤性是不能同时满⾜?假如需要满⾜强⼀致性,就需要写⼊⼀条数据的时候,扩散到分布式系统⾥⾯的每⼀台机器,每⼀台机器都回复ACK确认后再给客户端确认,这就是强⼀致性。
如果集群任何⼀台机器故障了,都回滚数据,对客户端返回失败,因此影响了可⽤性。
如果只满⾜⾼可⽤性,任何⼀台机器写⼊成功都返回成功,那么有可能中途因为⽹络抖动或者其他原因造成了数据不同步,部分客户端独到的仍然是旧数据,因此,⽆法满⾜强⼀致性。
异地多活的挑战延迟异地多活⾯临的主要挑战是⽹络延迟,以北京到上海 1468 公⾥,即使是光速传输,⼀个来回也需要接近10ms,在实际测试的过程中,发现上海到北京的⽹络延迟,⼀般是 30 ms。
⼀致性⽤户在任何⼀个机房写⼊的数据,是否能在任何⼀个机房读取的时候返回的值是⼀致性的。
误区所有业务都要异地多活以⽤户中⼼为例,注册是没必要做异地多活的,假如⽤户在A机房注册了,在数据没有向外同步的时候,A机房⽹络中断,这个时候如果让⽤户切换到B机房注册,就有可能发⽣数据不⼀致,出现两个基本相同的账号,这是不可容忍的。
郑州全搜索计算机技术服务有限公司美团cms最新介绍:美团团购程序,是基于Web应用的B/S架构的团购网站建设解决方案的建站系统,它可以让用户高效、快速、低成本的构建个性化、专业化、强大功能的团购网站。
基本介绍美团团购程序能为我们做什么从技术层面来看,本程序采用目前软件开发IT业界较为流行的PHP和MYSQL数据库开发技术架构。
从功能层面来看,前台首页每天显示一个服务或插产品的限时限最低成团人数的团购项目,具有邮件订阅,好友邀请,人人网、开心网、新浪微博、MSN/QQ分享,短信发送,购买凭证券在线打印、下载等功能。
美团团购程序管理员后台具有人性化的邮件发送参数配置、邀请返利金额配置、短信接口配置、每日团购项目信息管理等控制管理模块,迅速的帮助有热情、有志向投入运营团购网站的客户建立属于自己的团购网站。
程序特性项目为先:经过市场调查、可行性分析、形成项目方案,再由项目指导技术开发。
技术服从于项目是我们始终坚持的理念!技术先进:基于PHP+MYSQL和Web2.0应用,由高级资深网站开发团队实施开发功能强大:拥有Groupon模式的全部主流模块,功能全面、强大,辅助模块不断持续开发中使用简单:全部采用人性化设计、智能化管理,只要会操作电脑就可以管理网站瞬间建站:不用做风格,不用改程序,强大的团购网站瞬间建立投入极低:投入数千元即可拥有美团商业版程序,它仅是您招聘一个程序员1个月的薪资多重保障:持续开发保障、技术服务保证、问题修正保障,正版授权保障,让您的网站发展彻底无后顾之忧!开发原则为了能高效地开发网站,公司有一套系统化的开发原则,但也不是作为一成不变的必须严格遵守的条文,特殊情况下可以灵活运用,做一定的变通。
这样做的好处是在开发过程中会减少出错的几率,并使编程更加高效,有利于开发人员之间的合作,在出现BUG时也更容易查找漏洞。
高效化编程原则所有开发人员必须遵循国际标准,遵循公司的目录和文件名命名规则,统一编程书写规则和变量命名规则,使用统一的CSS样式表等。
首先给大家介绍一下微博架构发展的历程。新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了几个版本。第一版就是是非常快的,我们可以非常快的实现我们的模块。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推的消息模式,假如说我们一个明星用户他有10万个粉丝,那就是说用户发表一条微博的时候,我们把这个微博消息攒成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第一颁的技术细节,典型的LAMP架构,是使用Myisam搜索引擎,它的优点就是速度非常快。另外一个是MPSS,就是多个端口可以布置在服务器上。为什么使用MPSS?假如说我们做一个互联网应用,这个应用里面有三个单元,我们可以由三种部署方式。我们可以把三个单元部署在三台服务器上,另外一种部署模式就是这三个单元部署在每个服务器上都有。这个解决了两个问题,一个是负载均衡,因为每一个单元都有多个结点处理,另外一个是可以防止单点故障。如果我们按照模式一来做的话,任何一个结点有故障就会影响我们系统服务,如果模式二的话,任何一个结点发生故障我们的整体都不会受到影响的。
我们微博第一版上线之后,用户非常喜欢这个产品,用户数增长非常迅速。我们技术上碰到几个问题。第一个问题是发表会出现延迟现象,尤其是明星用户他的粉丝多。另外系统处理明星用户发表时候的延迟,可能会影响到其他的用户,因为其他的用户同一时间发表的话,也会受到这个系统的影响。我们就考虑这个系统怎么改进。首先是推模式,这肯定是延迟的首要原因,我们要把这个问题解决掉。其次我们的用户越来越多,这个数据库表从一百万到一亿,数据规模不一样处理方式是有差别的。我们第一版单库单表的模式,当用户数量增多的时候,它不能满足就需要进行拆分。第二个是锁表的问题,我们考虑的是更改引擎。另外一个是发表过慢,我们考虑的是异步模式。
第二版我们进行了模块化,我们首先做了一个层,做了拆分,最右边的发表做了异步模式。第二个服务层,我们把微博基础的单元设计成服务层一个一个模块,最大是对推模式进行了改进。首先看一下投递模式的优化,首先我们要思考推模式,如果我们做一下改进把用户分成有效和无效的用户。我们一个用户比如说有一百个粉丝,我发一条微博的时候不需要推给一百个粉丝,因为可能有50个粉丝不会马上来看,这样同步推送给他们,相当于做无用功。我们把用户分成有效和无效之后,我们把他们做一下区分,比如说当天登陆过的人我们分成有效用户的话,只需要发送给当天登陆过的粉丝,这样压力马上就减轻了,另外投递的延迟也减小了。
我们再看数据的拆分,数据拆分有很多方式,很多互联网产品最常用的方法,比如说如可以按照用户的UID来拆分。但是微博用户的一个特点就是说大家访问的都是最近的服务器,所以我们考虑微博的数据我们按照时间拆分,比如说一个月发一张表,这样就解决了我们不同时间的惟度可以有不同的拆分方式。第二个考虑就是要把内容和索引分开存放。假如说一条微博发表的地址是索引数据,内容是内容数据。假如说我们分开的话,内容就简单的变成了一种key-value的方式,key-value是最容易扩展的一种数据。比如说一个用户发表了一千条微博,这一千条微博我们接口前端要分页放,比如说用户需要访问第五页,那我们需要迅速定位到这个记录。假如说我们把这个索引拆分成一个月一张表,我们记录上很难判断第五页在哪张表里,我们需要索引所有的表。如果这个地方不能拆分,那我们系统上就会有一个非常大的瓶颈。最后我们想了一个方法,就是说索引上做了一个二次索引,改变我们还是按照时间拆分,但是我们把每个月记录的偏移记下来,就是一个月这个用户发表了多少条,ID是哪里,就是按照这些数据迅速把记录找出来。
异步处理,发表是一个非常繁重的操作,它要入库、统计索引、进入后台,如果我们要把所有的索引都做完用户需要前端等待很长的时间,如果有一个环节失败的话,用户得到的提示是发表失败,但是入库已经成功。所以我们做了一个异步操作,就是发表成功我们就提示成功,然后我们在后台慢慢的消息队列慢慢的做完。另外新浪发表了一个很重要的产品叫做MemcacheQ,我们去年做了一个对大规模部署非常有利的指令,就是stats queue,适合大规模运维。
第二版我们做了这些改进之后,微博的用户和访问量并没有停止,还有很多新的问题出现。比如说系统问题,单点故障导致的雪崩,第二个是访问速度问题因为国内网络环境复杂,会有用户反映说在不同地区访问图片、js这些速度会有问题。另外一个是数据压力以及峰值,MySql复制延迟、慢查询,另外就是热门事件,比如说世界杯,可能会导致用户每秒发表的内容达到几百条。我们考虑如何改进,首先系统方面循序任意模块失败。另外静态内容,第一步我们用CDN来加速,另外数据的压力以及峰值,我们需要将数据、功能、部署尽可能的拆分,然后提前进行容量规划。
另一方面我们还有平台化的需求,去年11月我们就说要做开放平台,开放平台的需求是有差异的,Web系统它有用户行为才有请求,但是API系统特别是客户端的应用,只要用户一开机就会有请求,直到他关闭电脑这种请求一直会不间断的过来,另外用户行为很难预测。
系统规模在持续的增大,另外也有平台化的需求,我们新架构应该怎么做才能满足这些需要?我们看一下同行,比如说Google怎么样考虑这个问题的?Google首席科学家讲过一句话,就是一个大的复杂的系统,应该要分解成很多小的服务。比如说我们在Google.com执行一个搜索查询的话,实际上这个操作会调动内部一百多个服务。因此,我们第三版的考虑就是先有服务才有接口最后才有应用,我们才能把这个系统做大。 现在我们看一下第三版,首先我们把底层的东西分成基础服务,基础服务里面比如说分布式的存储,还有分层,我们做了一些去中心化、自动化的操作。在基础服务之上有平台服务,我们把微博常用的应用做成各种小的服务。然后我们还有应用服务,这个是专门考虑平台各种应用的需求。最上面我们有API,API就是新浪微博各种第三方应用都在上面跑。四
平台服务和应用服务是分开的,这样实现了模块隔离,即使应用服务访问量过大的话,平台服务不会首先影响。另外我们把微博的引擎进行了改进,实现了一个分层关系。用户的关注关系,我们改成一个多惟度的索引结构,性能极大的提高。第四个层面就是计数器的改进,新版我们改成了基于偏移的思路,就是一个用户他原来读的一个ID比如说是10000,系统最系的ID是10002的话,我们和清楚他有两条未读。原来的版本是采用绝对技术的,这个用户有几条未读都是用一个存储结构的话,就容易产生一致性的问题,采用这种偏移的技术基本上不会出错。
另外基础服务DB冷热分离多维度拆分,在微博里面我们是按照时间拆分的,但是一个大型的系统里面有很多业务需要有不同的考虑。比如说私信这个就不能按照时间来拆分,这个按照UID来拆分可能更简单。然后我们突出存储还做了一个去中心化,就是用户上传图片的速度会极大的提高,另外察看其他用户的图片速度也会极大的提高。另外是动态内容支持多IDC同时更新,这个是在国内比较新颖的。
下面给大家介绍一下新浪微博怎么样打造一个高性能架构。到目前为止有五千万用户使用新浪微博,最高发表3000条以上每秒,然后一个明星用户发表的话,会被几百万用户同时读到。这些问题的本质是我们架构需要考虑高访问量、海量数据的情况下三个问题。易于扩展、低延迟、高可用和异地分布。我们每天有数十亿次外部网页以及API接口的需求,我们知道微博的特点是用户请求是无法cache的。因此面对这个需求我们怎么样扩展?几点思路。第一我们的模块设计上要去状态,我们任意一个单元可以支持任意节点。另外是去中心化,避免单点及瓶颈。另外是可线性扩展。最后一个是减少模块。
我们要做一个高性能的系统,要具备一个低延迟、高实时性,微博要做到高实时性这是核心的价值,实时性的核心就是让数据离CPU最近,避免磁盘的IO。我们看淘宝核心系统专家余锋说过的一句话“CPU访问L1就像从书桌拿一本书,L2是从书架拿一本书,L3是从客厅桌子上拿一本书,访问主存就像骑车去社区图书馆拿一书”。我们微博如果要做到非常实时的话,我们就需要把数据尽量离CPU节点最近。所以我们看一下cache设计里面怎么达到这个目标。首先INBOX,这个数据我们需要放再一个最快的地方,因为用户随时访问。OutBOX里面的最近发表就是L1cache,还有一个是中期的,这个因为访问少一点,它可以被踢。最后一部分内容体有三部分。L0是本地的,我们需要把一些经常访问的,比如说明星发表微博的内容体本地化,因为它被访问的概率非常大。然后L1里面存放着最近发表的,还有一个是中期的。我们通常用L2就可以了,L1我们可以理解成它就是一个存储。
一个好的架构还需要举行高可用性。我们看一下业界的指标,S3是99.9%,EC2是99.5%,我们另外一个同行Face book在这方面它是没有承诺的,就是接口可用写。微博平台目前承诺的是99.95%,就是说一天365天故障率应该小于9个小时。这个怎么达到?第一我们要做容量规划,地个是要做好监控以及入口的管理,就是说有些服务如果访问量过了的话,我们要有一个开关可以拦住他。我们通过这个图表可以清楚的看到,比如说我们要做L1的cache,我们剩余空间有多少,比如说80%,就说明这个数据有可能会丢失,有可能会对我们的系统造成影响。
另外一个层面就是接口监控,我们目前有Google维度的接口监控,包括访问错误失败率。然后要做架构,给大家一个很重要的经验分享,就是说监控的指标尽量量化。比如说他延迟30秒是小问题,如果是延迟10分钟我们就要立即采取措施了,就是所有可以量化的指标都要量化。
然后我们看监控怎么样更好的做?我们看亚马逊的VP说过的一句话,就是说监控系统确实特别好,可以立即告诉我们哪里有故障,但是有20%的概率我们人是会出错的。所以我们一个大型系统就应该要为自动化设计,就是说尽可能的将一些运作自动化。比如说发布安装、服务、启用、停止。我们再看另外一句,Google的工程师是怎么做的。他是这么做的,比如说第一周是处理线上的业务,这一周他处理了很多事情,处理了很多系统的情况,剩下的系统问题是不需要他做的,他只要把这一周碰到的情况用程序的方法来解决,下次再碰到这种情况很简单的一个按钮就可以处理了。我们目前也在向自动化这方面努力,就是我们的工具在持续增加。
另外一个异地分布,在国内网络环境下,比如说IDC灾难,机房检修甚至是机房掉电,我们也碰到过中国最好的机房也会掉电,所以要每个服务单元都能支持多机房部署。另外做多机房部署有一个好处,就是用户的访问速度会提高。多IDC分布静态内容就不说了,基本上大的互联网公司都会做,它非常成熟基本上没有什么问题,比如说图片等等的静态内容。动态内容的CDN分布是业内的难点,国内很少有公司能够做到非常成熟的多机房动态内容发布的成熟方案,它的核心就是分布式存储。一款理想的分布式存储产品它有哪些需求呢?首先它要支持海量规模、可扩展、高性能、低延迟、高可用。第二个是需要多机房分布,能够满足国内负责的网络环境,还要具备异地容灾能力。第三个就是要调用简单,具备丰富数据库特性。因此分布式存储需要解决一个多对多的数据复制。