第一篇:技术总结(安博格)
技术总结
转眼间,工作快满四年了。去年已经参加一次技师考试,可惜在答辩那关没有通过,但我并没有气馁,知道自己还有许多的不足。实践和经验一直都是我的弱项,在这一年的时间里,在现场有不懂的地方勤问师傅们,向师傅们多取取经;自己也多动脑子发现问题和总结经验,把学到的理论知识运用到实际的工作当中,使我在这段时间里得到了很大的成长。以下是本人从事安博格测量工作的个人总结。
一、控制网精度与线型数据的核对及输入
1、控制网精度
进行轨道精调的首要任务是检查控制网CPIII控制点的工作状态是否能够保证精调作业的测量精度;如果发现非正常工作状态的CPIII控制点,我们应该及时向车间等上级部门汇报,尽快请外单位对控制点复核。
2、线型数据的核对和输入
对于测绘局提供给我们的平竖曲线要素、超高等数据也要进行核对,确保数据无误之后,才可把数据输入到电脑和全站仪里(电脑要输入控制点和线型数据,全站仪只需要控制点数据)。认真输入控制点坐标、平竖曲线、超高等设计线型,特别注意长链短链及坐标换带处要分别输入,俩个线型数据至少要保证有300米的重叠长度。E、N坐标的输入和半径正负号代表的意义要多加注意;数据输入完之后,至少有俩个人对线型数据检查俩遍以上。确保无误后方可使用,这是安博格测量重要的前提保障,所以一定不能出错。
二、测量软件设置和全站仪检校
1、测量软件设置
软件的设置很重要,一定要根据结合实际情况标准化设置,有几个特别重要的设置,一定要设置准确无误,个人不可以随意的更改,否则对测量的结果造成很大的影响。自己要保留一份正确的设置,方便对错误的设置进行正确的修正。
2、全站仪检校
每天开始测量工作前应该检查全站仪的测量精度;正倒镜检查全站仪的水平角和竖直角的偏差,偏差不大于3'';还要检查全站仪ATR照准是否准确,照准偏差不大于3'';如两者有一项
弹条、垫板是否良好;像钢轨上有异物、弹条扣压力不够、轨下空掉等情况都会影响到偏差值的突变。
换站后应对前一站所测的地段的5~10根轨枕重复测量(我们以1个扣件间距作为一个标准测量步长(0.65m)),根据实际数据的分析和测量经验,当连续扣件差异变化不明显时,测量步长可适当放宽至2~3个扣件间距,中间扣件测值,软件可以自动内插。
2、数据处理
测完结束后,先将数据导出,再进行数据的调整;调整按“先轨向,后轨距”、“先高低,后水平”、“先整体,后局部”的原则进行调整。优先保证基准轨的平顺性,水平控制在1mm以内;高低控制在1mm以内,连续两副扣件各项指标的变化控制在0.6mm以内,以0.6mm的轨距变化为例(0.6/650=0.92‰小于静态验收的经常保养容许偏差值1‰)。按照最少调整量和削峰填谷的理念来处理数据,短波要控制在1mm以内,长波要控制50m范围之内最大值与最小值之差小于3mm。测量地段前后各20~30m范围之内尽量不要调整,因为不知道前后没有测量地段的数据,不知道这里的数据是高还是低。(测量地段的起点和终点尽量选在平缓的地方,不要选在低谷或高峰处);整个调整工作的主旨是达到直线顺直,曲线顺滑。调整完成后输出报表,经审核后交给现场作业负责人。
五、仪器的清洁和保养
由于钢轨上有锈和鸟屎等赃物,小车的轮子与钢轨长时间的接触也会弄得很脏,会对数据的采集有一定的影响,准备好布等清洁工具,发现小车脏的话就及时进行清洁。仪器要是淋到雨水的话,要及时擦干,并且在会生锈的地方涂油。小车的螺丝等容易生锈部位还要定期涂油保养。测量的仪器比较贵重,平时搬卸要轻拿轻放,运输的时候一定要把仪器放在箱子里,不要裸露在外,避免其他工具的挤压。
六、小结
高速铁路的运行速度已达到时速300km/h,轨道的几何尺寸是高速列车运行的最基本保障,轨道精调是对轨道几何尺寸控制的重要节点;轨道精调是一个精细的工作环节,除了专业技术水平以外,我还要做到恪尽职守的细心,需要有敏锐的观察力;我要在今后的实际工作中不断的总结经验与提高业务水平。
第二篇:安格医药集团公司简介
香港安格医药集团公司
香港安格医药集团公司是一家在香港注册极具实力的集团公司,由董事长张航于1994年创立,总部在广州。以生命科学研究为基础、以高科技生物技术为核心,横跨医学、生物工程、精细化工等专业领域,集研、产、销、学于一体的现代大型民族企业。固定资产47亿,拥有8家现代生产基地,22家分公司,6家基因技术研究所(美国圣地亚哥、美国达拉斯、加拿大蒙特利尔、香港、中国大陆),旗下拥有安格药业、安格医药、雅姿精化、辽宁安格健康产业、启星生物、雅霓服饰、南京新药、广西安格食品等相关支柱产业。
建业十几年,安格从最初单一的产业结构逐步转变为现在的多元化、规模化、科学化、系统化的新型技术产业,目前产品销往世界43个国家和地区。
安格研制生产的心脑血管良药——“美络宁”、“美心力”,多年来一直稳居全国同类产品90%的市场。
安格拥有100多项国家和世界专利,9大系列1000多款产品,几乎涵盖了家庭生活的方方面面,茵桅黄注射液、野马追糖浆等多款药品属于“国家中药保护品种”;
安格以全球领先水平的基因工程技术组成美肽因子,把生
命科学和美容科学融为一体,首创了国内“基因美容”的新概念,开创了我国基因美容新时代。
安格启星生物研究所,技术力量雄厚,设施条件先进,许多研发项目居世界领先水平,研究所是我国第一军医大学科研基地、广州军区军事医学研究所试验基地;
.......安格医药集团是政府大力扶持的大型民族企业。2006年6月18日,国务院正式批准安格医药集团为电子商务试点企业。此后,国家领导人吴邦国、温家宝、吴仪等先后亲临公司考察并给予鼓励。安格的电子商务备案资格可以到国家工业和信息化部备案管理系统查询确认。
判定一家电子商务企业是否是合法资格企业,先打开企业网站。看有无ICP备案,再点击看能否连接国家工业和信息化部备案系统,二者同时具备才是合法的资格企业。
目前我国的电子商务分为三种形式:C2C(淘宝网)、B2B(阿里巴巴)、B2C(安格),这是国家大力扶持的电子商务三种基本形式。
第三篇:安防系统技术总结
安防系统总结
一、安防系统简介
西安地铁三号线停车场及车辆段安防系统,主要是以视频监视功能为核心,配合周界红外报警功能及巡更系统组成的一套稳定可靠的主动防范系统。用于实现防护范围的安全防护,同时可以对车辆段生产、工作咽喉区域进行监视,便于安全生产管理的调度指挥。
车辆段及停车场安防系统可划分为系统前端、传输部分、系统平台及显示控制四个部分,具体划分如下:
二、安防系统功能
西安地铁三号线安防系统主要包括以下几个子系统:
1.电子巡更系统
2.周界告警系统
3.视频监视系统
4.网管系统
1、电子巡更系统
电子巡更系统应能根据技术要求,按照预先编制的人员巡更程序,通过信息底座读取巡更棒采集的巡检数据对保安人员的巡逻工作状态(是否准时、是否线路正确)进行监督、记录。
车辆段及停车场巡更系统由巡更管理主机、智能通讯座、巡更棒、人员信息钮、地点钮及巡更管理软件组成。巡更系统调试中,需要注意以下几个方面:
a.巡更管理主机不需要接入安防系统网络,只需安装巡更管理软件,正确连接上巡更底座即可正常使用巡更系统(PS:车辆段及停车场因交换机网管需求,需在巡更主机上安装交换机网管服务器软件,故巡更主机接入安防系统网络,另外巡更主机需要安装windows server 2008版本系统)
b.三号线巡更系统使用巡更棒型号为L-3000EF带按键带屏幕,在与智能通讯座进行数据传输时,USB数据线应为带供电功能的数据线(白色),否则巡更棒与智能通讯座无法进行正常通信传输。
c.巡更管理软件在使用过程中,需要将巡更管理主机中日期格式更改为yyyy-MM-dd,否则不能正确读取、保存巡更棒中采集的数据,亦不能显示巡更棒采集各数据的时间。
2、周界告警系统
周界告警系统应能根据被防护的对象的使用功能及安全技术防范管理的要求,对设防区域的非法入侵、破坏等行为进行实时有效的探测与报警,并应具备报警复核功能。系统不得有漏报警,误报率应符实际要求。
(1)车辆段及停车场周界围墙按照80m左右间隔设置红外对射探测仪(除敞口段新增2套红外对射外,所有红外对射探测仪与周界围墙摄像机共用摄像机杆安装)。综合楼安防设备室安装报警主机一套,消防控制室安装报警终端电脑一台及告警键盘一套,可与视频监视系统联动完成对周界的防护。
周界告警系统中,首先需要进行前端红外对射探测仪光束对准调试。周界告警系统主要难度就在于红外对射探测仪光束对准的调试,必须按操作要求一步一步进行调试。
前端光束对准调试完成后,需要对各防区、各分区进行划分。MTSW软件最高支持防区划分为8个分区,为了使后期维护中分区撤防影响最小,8个分区应全部使用。
(2)周界告警系统中主要存在的故障为误报现象:
a.触发误报的主要原因光束对准没达到要求,解决办法为重新对准光束满足需求:使用万用表在接出现告警的红外对射接收端测量电压信号,正常范围应为直流4.0V--5.0V之间。如测量到的电压值不在此区间,则进行发射端与接收端对准调试,直至正常电压值。
b.光束强度强度控制设置不恰当,需要重新设置光束强度:顺时针方向转动光束强度控制钮,增强光束强度;逆时针方向转动光束强度控制钮,减低光束强度。
c.红外对射探测仪安装不稳定也会触发误报,需要加固安装探测仪。
d.红外对射探测仪光学模块或面板尘土比较多时也会触发误报,需及时清理干净。
e.检查线路是否存在接触不良现象,如光端机至开关量之间模块是使用4根单芯网线连接的,检查网线是否松动或折断。
3、视频监视系统
视频监视系统是车辆段安防系统的重要组成部分。视频监视系统应能(根据建筑物的使用功能及安全技术防范管理的要求),对必须进行视频监视的场所、部位、通道进行实时、有效的视频探测、视频监视、视频传输、显示、记录与控制,并具备图像复核功能。
1.监视功能主要由周界监视及生产监视组成,这就需要根据实际使用情况给予监控室、DCC室、行车控制室及其他监视终端不同的权限:
周界监视:
a.周界监视综合楼消防控制室可对车辆段围墙周界、场内道路、各单体建筑出入口、办公区走道进行24小时监控,场外应具有辅助光源,值班员可选择车辆段内任一摄像机的图像在监视器上显示,既可用自动循环切换,也可由操作人员手动切换; b.综合楼消防控制室可以调用所有图像
生产监视:
a.信号楼行车控制室能监视咽喉区生产作业情况,值班员可用选择本库内任一摄像机的图像在监视器上显示,既可自动循环切换,也可由操作人员手动切换。b.运用库DDC室能监视本库内的生产作业情况,还应能监视停车场咽喉区的生产作业情况。值班员可选择咽喉区及各车间任一摄像机的图像在监视器上显示,既可自动循环切换,也可由操作人员手动切换。
2.实时视频及录像视频具有不同的质量参数:枪机及半球主码率为5M,快球主码率设置为8M,以保证实时视频清晰稳定。
实时视频及录制的画面上应有记录日期、时间及所监视画面前端摄像机的编码或地址码。
网络摄像机都需要配置IP地址,按照IP规划为每个摄像机设置IP地址。每个摄像机都有IE管理界面,通过电脑登陆可设置字符、码率、时间同步、IP等参数。摄像机的编码应该是有规律性、易于了解的。
3.视频监视与周界报警联动功能:
当入侵报警系统有报警发生时,联动装置能及时准确的弹出对应的周界摄像机画面;报警现场画面应能显示到指定监视器上,应能显示出摄像机的地址码及时间;
需要注意的是,联动一般情况下摄像机和红外报警是一对一的,对于车辆段敞口段处,由于地形比较复杂,也会出现一个摄像机联动对应两对红外报警。
三、常见故障处理
(1)摄像机不能正常上线:
a.如果是整个机箱摄像机不能上线,则很有可能是机箱断电或者是光纤故障。
b.单个摄像机不能上线:确保摄像机IP地址、默认网关等是设置正确前提下,有可能是摄像机未正常供电,没有工作;电源线断路,摄像机未通电;摄像机网线断路;水晶头制作不合格,水晶头脱落等。首先确认摄像机是否通电,是否正常工作;如果摄像机未通电,则检查电源、变压器、电源线等;如果摄像机通电,则可用排除法将摄像机直接连接在工程宝上观察,如还没有显示,则确定摄像机故障,更换摄像机。如有图像显示,则可确定视频传输线路有故障,分段检查视频信号传输线路及摄像机水晶头,确认后更换线缆或重新制作水晶头。(2)摄像机图像显示不清晰
摄像机图像不清晰可能是像机对焦调好后没有固定,发生跑焦现象,重新调整摄像机对焦,并拧紧固定调焦固定螺丝即可。(3)摄像机无图像显示
摄像机能够上线,但是显示黑屏可能是镜头与机芯连接线松动,重新插入连接即可。
四、存在问题及处理
1、水晶头故障问题是安防系统故障中最为普遍的问题,应对施工人员进行相应的技术培训,后期施工中必须严防此类问题的发生,减少故障的发生。
2、.线缆敷设中应加强线缆的防护,线缆的磨损会导致后期摄像机丢包现象严重以至于需重新敷设线缆。
3、不留尾活,要真正做到每一道工序一次性完成,不给后续施工留下疑难问题。这就需要对施工人员责任心的加强。
4、标签及线缆清册需要准确、完整、易懂,这样能为后续施工减少很多不必要的麻烦。
5、枪机及半球清晰度调试完成后,务必将清晰度、焦距旋钮锁死,防止松动后图像模糊
6、摄像机、解码器应该刷入最稳定的版本而非最新版本
第四篇:弱电安防技术总结
2016年终总结
时光飞逝,不知不觉间,2016年就在忙碌和充实中走过了。回首这一年的工作,有收获硕果时的喜悦,有项目攻关时的艰辛,也有遇到困难和挫折时的惆怅。可以说,2016年是公司发展的关键年,对公司来说,这一年是不凡的一年,是重要的一年,也是我们硕果累累的一年。对个人来说,也是不平凡的一年,从毕业至今压力最大的一年,现就本重要工作情况总结如下:
一、主要工作
(1)监控及电话维保工作,在安全方面工作都还可以,未发生较大安全事故;缺陷处理方面都还好,能按时按量的完成。
(2)2016年上半年,公司已制定完善的规程及考勤制度,公司组织召开了工作安排布置会议及年底工作目标。
(3)生产区输煤皮带的程控电话线路整改,项目完成都比较好,工作量及时间控制比较好。
(4)厂区的综合线路整改项目中,由于是在这边接的第一个工程,各个方面都还不是很熟悉,导致在后面订购的机柜不符合甲方要求,另一方面两方的沟通也存在问题。
(5)行政大厅拼接屏项目也是完成相对好点的项目。(6)门禁系统是时间最长的一个项目,存在着很多的不足,在团队管理方面不足,施工时的质量问题没要按要求来做,安全工作方面没按要求执行安全措施;项目进度方面没有及时跟进,导致后面线不够用时才发现;工作安排方面欠妥,不够紧凑,另一方面人手也有一定的影响;在较大项目施工方面经验不足,存在一个现象,不管大小项目都是一样多的人手一样的管理模式,这样肯定是不行的,会导致很多事情跟不上,导致严重延迟工期。
(7)加强组织领导,切实落实工作责任制。只有这样才能更好更快的完成项目,一个项目不是一个人能完成的,也不是一个人管理的,只有细化每个人的工作才能保质保量的完成好。
(8)在2016年里,我自觉加强学习,虚心求教释惑,不断理清工作思路,总结工作方法,一方面,不断掌握方法积累经验。另一方面,问书本、问同事,不断丰富知识掌握技巧。
二、主要经验和收获
这一年来,经过我们的不懈努力,完成了一些工作,取得了一定成绩,总结起来有以下的经验和收获:
经过这样紧张有序的一年,我感觉自己工作技能上了一个新台阶,做每一项工作都有了明确的计划和步骤,行动有了方向,工作有了目标,心中真正有了底!基本做到了忙而不乱,紧而不散,条理清楚,事事分明,从根本上摆脱了刚参加工作时只顾埋头苦干,不知总结经验的现象。就这样,我从无限繁忙中走进这一年,又从无限轻松中走出这一年,还有,在工作的同时,我还明白了为人处事的道理,也明白了,一个良好的心态、一份对工作的热诚及其相形之下的责任心是如何重要!
三、存在的不足
总的来看,我们取得了不俗的成绩,但是显而易见的,我们也还存在很多不足的地方,还存在一些待解决的问题,对新的东西学习不够,工作上往往凭经验办事,凭以往的工作套路处理问题,表现出工作上的大胆创新不够。跟客户及同事间的沟通上还需努力,特别是一些工作上的事情和客户沟通施工方案时有时候会感觉很被动,这个方面是要特别加强的。
总之,在这一年的工作中接触到了许多新事物、产生了许多新问题,也学习到了许多新知识、新经验,使自己在思想认识和工作能力上有了新的提高和进一步的完善。在明年的工作中,我会继续努力,多向领导汇报自己在工作中的思想和感受,及时纠正和弥补自身的不足和缺陷。我们的工作要团结才有力量,要合作才会成功,才能把我们的工作推向前进!
第五篇:微博技术相关
微博首席架构师杨卫华:新浪微博技术架构分析
新浪科技讯 11月16日下午消息,由新浪微博主办的中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以期与第三方开发者联手推动微博行业的整体发展。大家下午好,在座的大部分都是技术开发者,技术开发者往往对微博这个产品非常关心。最晚的一次,是12点多收到一个邮件说想了解一下微博底层是怎么构架的。很多技术人员对微博的构架非常感兴趣,就是一个明星他有300万粉丝,这个技术怎么来实现?今天在这里跟大家分享一下微博的底层机构,让大家对微博的底层技术有更好的了解。另外不管是做客户端、Web 1.0、Web 2.0、论坛、博客都要考虑架构的问题,架构实际上是有一些共性的。今天我通过讲解微博里面的一些架构,分析一下架构里面哪些共性大家可以参考。
首先给大家介绍一下微博架构发展的历程。新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了3个大的版本。第一版就LAMP架构,优点是可以非常快的实现我们的系统。我们看一下技术特点,微博这个产品从架构上来分析,它需要解决的是发表和订阅的问题。我们第一版采用的是推消息模式,假如说我们一个明星用户他有10万个粉丝,那就是说用户发表一条微博的时候,我们把这个微博消息存成10万份,这样就是很简单了,第一版的架构实际上就是这两行字。第一版的技术细节,典型的LAMP架构,是使用MyISAM搜索引擎,它的优点就是速度非常快。
另外一个是MPSS,就是多个端口可以布置在同一服务器上。为什么使用MPSS?假如说我们做一个互联网应用,这个应用里面有三个单元,我们可以由2种部署方式。我们可以把三个单元分别部署在三台服务器上,另外一种部署模式就是这三个单元部署在每个服务器上都有。我推荐第2种方法。这个方法解决了两个问题,一个是负载均衡,因为每一个单元都有多个节点处理,另外一个是可以防止单点故障。如果我们按照模式1来做的话,任何一个节点有故障就会影响我们系统服务,如果模式二的话,任何一个结点发生故障我们的整体都不会受到影响的。
我们微博第一版上线之后,用户非常喜欢这个产品,用户数增长非常迅速。我们技术上碰到几个问题。第一个问题是发表会出现延迟现象,尤其是明星用户他的粉丝多系统需要处理很长时间。另外系统在处理明星用户发表时系统繁忙可能会影响到其他的用户,因为其他的用户同一时间发表的话,也会受到这个系统的影响。我们就考虑这个系统怎么改进。首先是推模式,这肯定是延迟的首要原因,我们要把这个问题解决掉。其次我们的用户越来越多,这个数据库表从一百万到一亿,数据规模不一样处理方式是有差别的。我们第一版单库单表的模式,当用户数量增多的时候,它不能满足就需要进行拆分。第二个是锁表的问题,我们考虑的是更改引擎。另外一个是发表过慢,我们考虑的是异步模式。
第二版我们进行了模块化,我们首先做了一个分层,最底层叫基础层,首先对数据做了拆分,图上最右边是发表做了异步模式。第二个服务层,我们把微博基础的单元设计成服务层一个一个模块,最大改进是对推模式进行了改进。首先看一下投递模式的优化,首先我们要思考推模式,如果我们做一下改进把用户分成有效和无效的用户。我们一个用户比如说有一百个粉丝,我发一条微博的时候不需要推给一百个粉丝,因为可能有50个粉丝不会马上来看,这样同步推送给他们,相当于做无用功。我们把用户分成有效和无效之后,我们把他们做一下区分,比如说当天登陆过的人我们分成有效用户的话,只需要发送给当天登陆过的粉丝,这样压力马上就减轻了,另外投递的延迟也减小了。
我们再看数据的拆分,数据拆分有很多方式,很多互联网产品最常用的方法,比如说如可以按照用户的UID来拆分。但是微博用户的一个特点就是说大家访问的都是最近的数据,所以我们考虑微博的数据我们按照时间拆分,比如说一个月放一张表,这样就解决了我们不同时间的维度可以有不同的拆分方式。第二个考虑就是要把内容和索引分开存放。假如说一条微博发表的uid,微博id是索引数据,140个字的内容是内容数据。假如我们分开的话,内容就简单的变成了一种key-value的方式,key-value是最容易扩展的一种数据。索引数据的拆分具有挑战,比如说一个用户发表了一千条微博,这一千条微博我们接口前端要分页访问,比如说用户需要访问第五页,那我们需要迅速定位到这个记录。
假如说我们把这个索引拆分成一个月一张表,我们记录上很难判断第五页在哪张表里,我们需要加载所有的索引表。如果这个地方不能拆分,那我们系统上就会有一个非常大的瓶颈。最后我们想了一个方法,就是索引上做了一个二次索引,把每个月记录的偏移记下来,就是一个月这个用户发表了多少条,ID是哪里,就是按照这些数据迅速把记录找出来。
异步处理,发表是一个非常繁重的操作,它要入库、统计索引、进入后台,如果我们要把所有的索引都做完用户需要前端等待很长的时间,如果有一个环节失败的话,用户得到的提示是发表失败,但是入库已经成功,这样会带来数据不一致问题。所以我们做了一个异步操作,就是发表成功我们就提示成功,然后在后台慢慢的消息队列慢慢的做完。另外新浪发表了一个很重要的产品叫做MemcacheQ,我们去年做了一个对大规模部署非常有利的指令,就是statsqueue,适合大规模运维。
第二版我们做了这些改进之后,微博的用户和访问量并没有停止,还有很多新的问题出现。比如说系统问题,单点故障导致的雪崩,第二个是访问速度问题因为国内网络环境复杂,会有用户反映说在不同地区访问图片、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我们可以理解成它就是一个RAM存储。
一个好的架构还需要举行高可用性。我们看一下业界的指标,S3是99.9%,EC2是99.5%,我们另外一个同行Facebook在这方面它是没有承诺的,就是接口可用写。微博平台目前承诺的是99.95%,就是说一天365天故障率应该小于9小时。这个怎么达到?第一我们要做容量规划,要做好监控以及入口的管理,就是说有些服务如果访问量过了的话,我们要有一个开关可以拦住他。我们通过这个图表可以清楚的看到,比如说我们要做L1的cache,我们剩余空间有多少,比如说80%,就说明这个数据有可能会丢失,有可能会对我们的系统造成影响。
另外一个层面就是接口监控,我们目前有Google维度的接口监控,包括访问错误失败率。然后要做架构,给大家一个很重要的经验分享,就是说监控的指标尽量量化。比如说他延迟30秒是小问题,如果是延迟10分钟我们就要立即采取措施了,就是所有可以量化的指标都要量化。
然后我们看监控怎么样更好的做?我们看亚马逊的VP说过的一句话,就是说监控系统确实特别好,可以立即告诉我们哪里有故障,但是有20%的概率我们人是会出错的。所以我们一个大型系统就应该要为自动化设计,就是说尽可能的将一些运作自动化。比如说发布安装、服务、启用、停止。我们再看另外一句,Google的工程师是怎么做的。他是这么做的,比如说第一周是处理线上的业务,这一周他处理了很多事情,处理了很多系统的情况,剩下几周时间没有别的工作,他只要把这一周碰到的情况用程序的方法来解决,下次再碰到这种情况很简单的一个按钮就可以处理了。我们目前也在向自动化这方面努力,就是我们的工具在持续增加。
另外一个异地分布,在国内网络环境下,比如说IDC灾难,机房检修甚至是机房掉电,我们也碰到过中国最好的机房也会掉电,所以要每个服务单元都能支持多机房部署。另外做多机房部署有一个好处,就是用户的访问速度会提高。多IDC分布静态内容就不说了,基本上大的互联网公司都会做,它非常成熟基本上没有什么问题,比如说图片等等的静态内容。动态内容的CDN分布是业内的难点,国内很少有公司能够做到非常成熟的多机房动态内容发布的成熟方案,它的核心就是分布式存储。一款理想的分布式存储产品它有哪些需求呢?首先它要支持海量规模、可扩展、高性能、低延迟、高可用。第二个是需要多机房分布,能够满足国内负责的网络环境,还要具备异地容灾能力。第三个就是要调用简单,具备丰富数据库特性。因此分布式存储需要解决一个多对多的数据复制。
如果要做复制无非是三种策略,第一个是Master/Slave,但是它也两个缺点,第一个是Master是中心化的,如果Master在北京那广州访问就非常慢。第二个缺点是有单点风险的,比如说Master在北京,能立即迁到广州吗?这样有个时间窗口的数据就丢失了,而且需要人工的干预,而且日常广州的用户访问北京的Master是有很大延迟问题的,所以一般来说要做的非常优秀是不会考虑第一种方案的。第二种就是Multi-Master方案,它需要应用避免冲突,就是我们不能多处改变。这个对于微博来说不会特别难,我们的用户通常只会再一个地方发表微博,用户不会同时在广州又在北京发表或者是修改自己的资料,这样的话我们应用上就已经避免了这种情况。第三个就是Paxos就是可以达到强一致写,就是一条数据如果成功肯定是多个机房都成功了,这个也显而易见就是延迟性非常大。因此总结一下Multi-Master是最成熟的策略,但是它现在没有成熟的产品,因为确实没有。
我们再来看微博的方案,所以我们自己实现了一个多机房同步的方案。就是我们前端应用将数据写到数据库,再通过一个消息代理,相当于通过我们自己开发的一个技术,将数据广播到多个机房。这个不但可以做到两个机房,而且可以做到三个、四个。具体的方式就是通过消息广播方式将数据多点分布,就是说我们的数据提交给一个代理,这个代理帮我们把这些数据同步到多个机房,那我们应用不需要关心这个数据是怎么样同步过去的。
用这种消息代理方式有什么好处呢?可以看一下Yahoo是怎么来做的?第一个是数据提供之后没有写到db之后是不会消失的,我只要把数据提交成功就可以了,不需要关心数据怎么到达机房。第二个特点YMB是一款消息代理的产品,但是它唯一神奇的地方是为广域网设计的,它可以把多机房应用归到内部,我们应用不需要关注这个问题。这个原理跟我们目前自己开发的技术相似。
然后我们再看一下目前即将推出的微博平台的新架构。我们知道API大部分的请求都为了获取最新的数据。API请求有一个特点,它大目前调用都是空返回的,比如说一款手机的客户端每隔一分钟它都要调用服务器一下,就是有没有新数据,大目前的调用都是空返回,就是说不管服务器有没有数据都要调用一次。这次询问到下一次询问中间,如果有新的数据来了,你是不会马上知道的。因此我们想API能不能改用推的方式,就是客户端不需要持续的调用,如果有新数据就会推过去。技术特点,显而易见低延迟,就是从发表到接受1秒内完成,实际上可能用不了1秒。然后服务端的连接就是高并发长连接服务,就是多点都连接在我们的服务器上,这个比传统的API要大很多。
我们看一下推送架构怎么从架构底层做到实时性的。从左上角的一条微博在我们系统发布之后,我们把它放在一个消息队列里面,然后会有一个消息队列的处理程序把它拿过来,处理以后放到db里面。假如说我们不做持久化,因为我们推送数据也不能丢失,我们就要写一个很复杂的程序,将数据异步去存,这样就会非常复杂,而且系统也会有不稳定的因素。从另外一个角度来说,我们做持久化也是做过测试的。我们推送整个流程可以做到100毫秒和200毫秒之间,就是说我们在这个时间能把数据推送出去。
我们再看一下内部细节,就是我们收到数据之后首先要经过最上面RECEIVER。然后推到我们的引擎里面,这个引擎会做两个事情,首先会把用户的关系拿过来,然后按照用户关系马上推送给他相应的粉丝。所以我们调用方已经在那儿等待了,我们需要有一个唤醒操作,就是说在接口这儿把它唤醒,然后把它发送过去。最后是一个高并发的长连服务器,就是一台服务器支持10万以上的并发连接。最右边中间有一个圆圈叫做Stream Buffer,我们需要Stream Buffer是要保存用户最近的数据。因为用户可能会有断线的,比如说他发送数据的时候断线半分钟,我们需要把这半分钟补给他。这就是我们的推送架构。
下面介绍一下平台安全部分。由于我们的接口是完全开放的,所以我们要防范很多恶意行为,有很多人担心我们接口是开放的,是不是有人通过这个接口发垃圾广告,或者是刷粉丝,我们技术架构怎么来防范这一点呢?这是我们的安全架构,做了三个层面的事情。最上面是我们有一个实时处理,比如说根据频度、内容的相似性来进行判断,判断发的是不是广告或者是垃圾内容。中间这个是一个日志处理器,我们会根据一些行为进行判断,比如说如果我们只是实时拦截的话,有些行为很难防止,我们做了个离线纠正的模块,比如说他潜伏的几个月开始发广告了,我们可以事后把这些人清除掉,以保证我们平台的健康。最后是通过监控的维度来保证内容的安全。目前内容安全的架构大概是541的体系,就是说我们的实时拦截可以做到50%的防止,离线分析大概可以做到40%的防止。
微博平台需要为用户提供安全及良好的体验应用,以及为开发者营造一个公平的环境,所以我们的接口需要清晰安全的规则。从一个APP调用我们的接口,需要几个阶层,需要划分不同的业务模块。第二个是安全层。第三个是权限层。这是我们平台安全的两个维度,一个接口安全,一个是内容安全。
我今天讲的是架构方面的问题,在座大部分是开发者,可能大家都在处理不同的架构问题,架构很多地方是相通的。我们需要做一个软件系统需要解决的本质问题是什么?微博第一版解决发布规模问题,第二版是解决数据规模的问题,第三版是解决服务化的问题。将复杂的问题简单化之后,我们才可以设计出一个容易扩展的大规模架构。我今天介绍就这么多,我们微博实际上是很需要各方面的技术人员,大家对我们的架构如果感兴趣的话、对我们的系统感兴趣的话,也希望各方面的技术人员参与我们微博的团队,随时可以给我微博上发私信。