酷勤网 – 程序员的那点事!

当前位置:首页 > 编程 > 系统架构 > 正文

龙8娱乐官网,龙8国际pt老虎机官网:关于高可用的系统

浏览次数:次 酷壳 – CoolShell.cn 2016年08月25日 字号:

龙8娱乐官网,龙8国际pt老虎机官网,姹熸樊澶у湴銆佷腹妗傞棣欙紝9鏈3鏃ワ紝瀛︽牎瀹夊窘鏍″弸浼氭垚绔嬪ぇ浼氬湪澶ф箹鍚嶅煄鍚堣偉鍙紑銆傚壇鏍¢暱鐜嬭壇鍏达紝鍏氬锛堟牎闀匡級鍔炲叕瀹ゃ佺爺绌剁敓闄㈢瓑鐩稿叧閮ㄩ棬璐熻矗浜轰互鍙婃潵鑷畨寰藉叏鐪佺殑鏍″弸浠鑱氫竴鍫傦紝鍏辫瘽姣嶆牎鎯呫佸悓鍙欏笀鐢熸儏銆鎴愮珛澶т細涓婏紝浠h〃浠璁氳繃浜嗐婃俯宸炲尰绉戝ぇ瀛﹀畨寰芥牎鍙嬩細绔犵▼銆嬶紝閫変妇浜х敓浜嗙涓灞婄悊浜嬩細鎴愬憳锛屾牎鍙嬩竵涓界孩褰撻変负棣栦换浼氶暱銆備竵涓界孩鍦ㄨ嚧杈炰腑鎰熻阿姣嶆牎鍙婃牎鍙嬩滑鐨勪俊浠伙紝濂硅〃绀猴紝瀹夊窘鏍″弸浼氬皢鏈潃鈥滄湇鍔℃瘝鏍°佹湇鍔″畨寰姐佹湇鍔℃牎鍙嬧濈殑瀹楁棬寮灞曞伐浣滐紝鍙戞壃楗按鎬濇簮銆佺埍鏍¤崳鏍$殑浼犵粺锛屽績绯绘瘝鏍°佸浼犳瘝鏍★紝鑱旂粶鏍″弸銆佸洟缁撴牎鍙嬶紝鍏卞悓鎶婃牎鍙嬩細鍔炴垚鍦ㄧ殩鏍″弸鐨勭簿绁炲鍥鐜嬭壇鍏翠唬琛ㄥ鏍″瀹夊窘鏍″弸浼氱殑鎴愮珛琛ㄧず鐑儓绁濊春锛屽悜鍏冲績鍜屾敮鎸佹瘝鏍″彂灞曞缓璁剧殑鏍″弸浠〃绀鸿》蹇冩劅璋紝骞跺瀹夊窘鏍″弸浼氱澶囩粍鐨勫伐浣滅粰浜堝厖鍒嗚偗瀹氥備粬鍦ㄤ粙缁嶄簡杩戝勾鏉ュ鏍′汉鎵嶅煿鍏汇佺瀛︾爺绌躲侀檮灞炲尰闄㈠缓璁俱佹暀鑲插浗闄呭寲鍜屾湇鍔$ぞ浼氱瓑鏂归潰鍙栧緱鐨勬垚灏卞悗鎸囧嚭锛屽鏍$殑鍙戝睍鍙楃泭浜庡箍澶ф牎鍙嬪湪鍚勮嚜棰嗗煙鍙栧緱鐨勫厜杈夋垚灏憋紝寰楃泭浜庡箍澶ф牎鍙嬪姣嶆牎鐨勫ぇ鍔涙敮鎸佸拰鎸佺画鍏虫敞,甯屾湜鏍″弸浠户缁叧娉ㄣ佹敮鎸佹瘝鏍$殑鍙戝睍锛屾瘝鏍℃案杩滄槸鏍″弸浠殑绮剧瀹跺洯锛屾槸鏀寔鏍″弸鐨勫己澶у姏閲忥紝姣嶆牎闅忔椂娆㈣繋鏍″弸浠洖瀹躲瀛︽牎鏍″弸鎬讳細浼氶暱鐬夸匠銆佷笢鍗椾簹鏍″弸浼氥佹澀宸炴牎鍙嬩細銆佸彴宸炴牎鍙嬩細绛夋捣澶栧拰鍦板尯鏍″弸浼氶氳繃瑙嗛鍙戞潵绁濊春锛屼笂娴锋牎鍙嬩細浠h〃鍒颁細绁濊春銆瀹夊窘鏍″弸浠湪浠紡鍚庣殑浜ゆ祦搴ц皥涓悍绾疯〃杈句簡瀵规瘝鏍℃繁娣辩殑鐪锋亱涓庡鏍″弸浼氱湡璇氱殑绁濈銆備粬浠〃绀猴紝鑷繁铏界劧韬湪瀹夊窘宸ヤ綔鎴栨眰瀛︼紝涓庢瘝鏍$浉闅斿崈閲岋紝浣嗗姣嶆牎鐨勬劅鎯呬竴鐩存湭鍙橈紝姣嶆牎鍘嗙粡鏁板崄杞介闆ㄧ殑娲楃ぜ锛屼竴姝ヤ竴涓剼鍗版墍鍙栧緱鐨勬垚鏋滐紝璁╁畨寰藉瀛愭劅鍒伴獎鍌插拰鑷豹锛屼粖鍚庡畨寰芥牎鍙嬪皢缁х画鍙戞尌璧勬簮浼樺娍锛屼负褰撳湴鍖荤枟鍗敓浜嬩笟銆佷负鐧惧鍋ュ悍澶氫綔璐$尞銆一、正常批申请条件1.获得国家承认的大学本科毕业后3年或3年以上2.获得国家承认的高职高专毕业学历后5年或5年以上3.获得硕士学位或博士学位并有2年或2年以上4.按照教育部规定,参加全国统考二、正常批申请流程1、全国EMBA统考报名全国EMBA统考报名采取网上(中国研究生招生信息网)提交报考信息方式;一般为10月初开始,10月31日截止;网报后,考生必须按要求完成报考信息确认,一般为11月中上旬。主要經歷學術及私校治理世新大學副教授兼學務長國立臺灣海洋大學海法所兼任副教授中國文化大學新聞系兼任副教授世新大學教授兼終身教育學院院長中國訓育協會監事臺灣觀光學院董事亞太創意技術學院董事長庚大學公益監察人高等教育評鑑中心法律系所評鑑委員臺灣大專校院推廣教育協會常務監事公共服務厚生基金會(立法院厚生會智庫)執行長祥和社會發展文教基金會執行長臺灣省政府顧問中華民國勞工教育研究發展中心監察人臺北市電腦遊戲分級審查委員會召集人行政院原子能委員會核能研究所諮議委員臺北市公用頻道推動委員會委員中華民國新聞媒體自律協會秘書長臺北市媒體違規審議委員會委員教育部技職司法律諮詢委員臺北市有線電視公用頻道協會理事長資策會科技法律研究所網域名稱爭議處理專家中華民國新聞評議委員會委員公教人員保險監理委員會法律顧問國庫署菸酒管理法行政處分審議委員會委員銓敘部公務人員退休撫卹基金管理委員會委員行政院公民投票審議委員會主任委員國防部外洩機密資訊審議委員會委員電信事業普及服務基金管理委員會委員法務部公職人員財產申報案件審議委員會委員通傳會有線廣播電視審議委員會委員臺北市遊戲分級爭議審查委員會委員行政院大陸委員會諮詢委員財團法人蒙藏基金會常務董事衛星廣播電視事業申設及換照審查委員會委員公職人員利益衝突迴避案件審議委員會委員学校开启了国际工程人才培养计划,与北京建工集团合作,为建筑行业培养具有土木工程专业、国际工程管理、国际工程标准基本知识以及熟练的外语交流能力和较强实践能力的国际工程人才。

(二)学生从事勤工助学活动要遵守劳动纪律,严守操作规程,恪守职业道德。同样在机电学院“创客空间”的教师名单中,也有众多来自企业一线的教师,包括国际网络安全协会分会主席、美国赛门铁克公司高级技术人员裴明亮,北京荣之联公司CTO吴烜,日本欧新公司中国区技术总监褚文庆等。>>>>正文我校学子获第十三届全运会皮划艇静水1000米四人皮艇亚军发布时间:2017/09/13点击:[]  8月27日到9月8日,中华人民共和国第十三届全国运动会在天津举行,其中皮划艇静水项目于9月3日到7日在天津海河吉兆桥段开赛。学院秉承南京邮电大学“厚德、弘毅、求是、笃行”的校训,全面实施“以生为本、特色兴校、师资强校、校企合作”的办学理念,积极探索并践行依托通信行业、面向信息社会的特色发展之路,努力在较短时间内建设成高水平信息类应用技术大学。

学年度学校未收到要求公开信息的申请。档案馆概况浏览次数:字号:[]  1、档案馆简介:  扬州大学档案馆成立于1998年10月,为副处级直属单位。首页-快速通道--English--学生--教职工--校友--考生及访客-常用公共服务--电话查询--班车时刻表--VPN公共服务--校区平面与交通图--南师留学生服务中心--作息时间-常用链接--校内信息网--邮件在线--图书馆--IPv6主页--董事会--校友会--信息公开--扬帆论坛-其它--用户登录学校概况-学校简介-百年校史-现任领导-内设机构-校园美景-校标校歌-校园实景人才培养-招生--本科生招生--研究生招生--留学生招生--继续教育招生--自考招生-教学--本科生教育--研究生教育--教师特色教育--留学生教育--继续教育--网络教学-教务信息-就业创业-院系列表-师资总汇科学研究--学术动态--自然科学--社会科学--研究机构--南京师大学报合作交流-国际交流-联合办学-南京法语培训中心公共服务--人才招聘--学生工作--机构指南-电话查询-班车时刻表-网络公共服务-大型仪器设备共享-资产信息-微软正版软件中心-图书馆-校园卡-校医院-房产信息-财务查询-Hi魔方-扬帆论坛-招标信息-校内后勤服务指南首页-快速通道--English--学生--教职工--校友--考生及访客-常用公共服务--电话查询--班车时刻表--VPN公共服务--校区平面与交通图--南师留学生服务中心--作息时间-常用链接--校内信息网--邮件在线--图书馆--IPv6主页--董事会--校友会--信息公开--扬帆论坛-其它--用户登录学校概况-学校简介-百年校史-现任领导-内设机构-校园美景-校标校歌-校园实景人才培养-招生--本科生招生--研究生招生--留学生招生--继续教育招生--自考招生-教学--本科生教育--研究生教育--教师特色教育--留学生教育--继续教育--网络教学-教务信息-就业创业-院系列表-师资总汇科学研究--学术动态--自然科学--社会科学--研究机构--南京师大学报合作交流-国际交流-联合办学-南京法语培训中心公共服务--人才招聘--学生工作--机构指南-电话查询-班车时刻表-网络公共服务-大型仪器设备共享-资产信息-微软正版软件中心-图书馆-校园卡-校医院-房产信息-财务查询-Hi魔方-扬帆论坛-招标信息-校内后勤服务指南

龙8娱乐官网,龙8国际pt老虎机官网

 在《这多年来我一直在钻研的技术》这篇文章中,我讲述了一下,我这么多年来一直在关注的技术领域,其中我多次提到了工业级的软件,我还以为有很多人会问我怎么定义工业级?以及一个高可用性的软件系统应该要怎么干出来?这样我也可以顺理成章的写下这篇文章,但是没有人问,那么,我只好厚颜无耻的自己写下这篇文章了。哈哈。

另外,我在一些讨论高可用系统的地方看到大家只讨论各个公司的技术方案,其实,高可用的系统并不简单的是技术方案,一个高可用的系统其实还包括很多别的东西,所以,我觉得大家对高可用的系统了解的还不全面,为了让大家的认识更全面,所以,我写下这篇文章

理解高可用系统

首先,我们需要理解什么是高可用,英文叫High Availability(Wikipedia词条),基本上来说,就是要让我们的计算环境(包括软硬件)做到full-time的可用性。在设计上一般来说,需要做好如下的设计:

 

1、对软硬件的冗余,以消除单点故障。任何系统都会有一个或多个冗余系统做standby

2、对故障的检测和恢复。检测故障以及用备份的结点接管故障点。这也就是failover

3、需要很可靠的交汇点(CrossOver)。这是一些不容易冗余的结点,比如域名解析,负载均衡器等。

听起似乎很简单吧,然而不是,细节之处全是魔鬼,冗余结点最大的难题就是对于有状态的结点的数据复制和数据一致性的保证(无状态结点的冗余相对比较简单)。冗余数据所带来的一致性问题是魔鬼中的魔鬼:

  • 如果系统的数据镜像到冗余结点是异步的,那么在failover的时候就会出现数据差异的情况。
  • 如果系统在数据镜像到冗余结点是同步的,那么就会导致冗余结点越多性能越慢。

所以,很多高可用系统都是在做各种取舍,这需要比对着业务的特点来的,比如银行账号的余额是一个状态型的数据,那么,冗余时就必需做到强一致性,再比如说,订单记录属于追加性的数据,那么在failover的时候,就可以到备机上进行追加,这样就比较简单了(阿里目前所谓的异地双活其实根本做不到状态型数据的双活)。

下面,总结一下高可用的设计原理:

  • 要做到数据不丢,就必需要持久化
  • 要做到服务高可用,就必需要有备用(复本),无论是应用结点还是数据结点
  • 要做到复制,就会有数据一致性的问题。
  • 我们不可能做到100%的高可用,也就是说,我们能做到几个9个的SLA。

高可用系统的技术解决方案

我在《分布式系统的事务处理》中引用过下面这个图:这个图来自来自:Google App Engine的co-founder Ryan Barrett在2009年的Google I/O上的演讲《Transaction Across DataCenter》(视频: http://www.youtube.com/watch?v=srOgpXECblk

Transaction Across DataCenter

这个图基本上来说是目前高可用系统中能看得到的所有的解决方案的基础了。M/S、MM实现起来不难,但是会有很多问题,2PC的问题就是性能不行,而Paxos的问题就是太复杂,实现难度太大。

总结一下各个高可用方案的的问题:

  • 对于最终一致性来说,在宕机的情况下,会出现数据没有完全同步完成,会出现数据差异性。
  • 对于强一致性来说,要么使用性能比较慢的XA系的两阶段提交的方案,要么使用性能比较好,但是实现比较复杂的Paxos协议。

注:这是软件方面的方案。当然,也可以使用造价比较高的硬件解决方案,不过本文不涉及硬件解决方案。

另外,现今开源软件中,很多缓存,消息中间件或数据库都有持久化和Replication的设计,从而也都有高可用解决方案,但是开源软件一般都没有比较高的SLA,所以,如果我们使用开源软件的话,需要注意这一点。

高可用技术方案的示例

下面,我们来看一下MySQL的高可用的方案的SLA(下图下面红色的标识表示了这个方案有几个9):

mysql-high-availability-solutions-feb-2015-webinar-9-638

图片来源:MySQL High Availability Solutions

简单解释一下MySQL的这几个方案(主要是想表达一个越多的9就越复杂)

  • MySQL Repleaction就是传统的异步数据同步或是半同步Semi-Sync(只要有一个slave收到更新就返回成功)这个方式本质上不到2个9。
  • MySQL Fabric简单来说就是数据分片下的M/S的读写分离模式。这个方案的的可用性可以达到99%
  • DRBD通过底层的磁盘同步技术来解决数据同步的问题,就是RAID 1——把两台以上的主机的硬盘镜像成一个。这个方案不到3个9
  • Solaris Clustering/Oracle VM ,这个机制监控了包括硬件、操作系统、网络和数据库。这个方案一般会伴随着节点间的“心跳机制”,而且还会动用到SAN(Storage Area Network)或是本地的分布式存储系统,还会动用虚拟化技术来做虚拟机的迁移以降低宕机时间的概率。这个解决方案完全就是一个“全栈式的解决方案”。这个方案接近4个9。
  • MySQL Cluster是官方的一个开源方案,其把MySQL的集群分成SQL Node 和Data Node,Data Node是一个自动化sharing和复制的集群NDB,为了更高的可用性,MySQL Cluster采用了“完全同步”的数据复制的机制来冗余数据结点。这个方案接近5个9。

那么,这些2个9,3个9,4个9,5个9是什么意思呢?又是怎么来的呢?请往下看。

高可用性的SLA的定义

上面那些都不是本文的重点,本文的重点现在开始,如何测量系统的高可用性。当然是SLA,全称龙8娱乐官网,龙8国际pt老虎机官网Service Level Agrement,也就是有几个9的高可用性。

工业界有两种方法来测量SLA,

  • 一个是故障发生到恢复的时间
  • 另一个是两次故障间的时间

但大多数都采用第一种方法,也就是故障发生到恢复的时间,也就是服务不可用的时间,如下表所示:

系统可用性% 宕机时间/年 宕机时间/月 宕机时间/周 宕机时间/天
90% (1个9) 36.5 天 72 小时 16.8 小时 2.4 小时
99% (2个9) 3.65 天 7.20 小时 1.68 小时 14.4 分
99.9% (3个9) 8.76 小时 43.8 分 10.1 分钟 1.44 分
99.99% (4个9) 52.56 分 4.38 分 1.01 分钟 8.66 秒
99.999% (5个9) 5.26 分 25.9 秒 6.05 秒 0.87 秒

比如,99.999%的可用性,一年只能有5分半钟的服务不可用。感觉很难做到吧。

就算是3个9的可用性,一个月的宕机时间也只有40多分钟,看看那些设计和编码不认真的团队,把所有的期望寄托在人肉处理故障的运维团队, 一个故障就能处理1个多小时甚至2-3个小时,连个自动化的工具都没有,还好意思在官网上声明自己的SLA是3个9或是5个9,这不是欺骗大众吗?

影响高可用的因素

老实说,我们很难计算我们设计的系统有多少的可用性,因为影响一个系统的因素实在是太多了,除了软件设计,还有硬件,还有每三方的服务(如电信联通的宽带SLA),当然包括“建筑施工队的挖掘机”。所以,正如SLA的定义,这不仅仅只是一个技术指标,而是一种服务提供商和用户之间的contract或契约这种工业级的玩法,就像飞机一样,并不是把飞机造出来就好了,还有大量的无比专业的配套设施、工具、流程、管理和运营

简而言之,SLA的几个9就是能持续提供可用服务的级别,不过,工业界中,会把服务不可用的因素分成两种:一种是有计划的,一种是无计划的。

无计划的宕机原因

下图来自Oracle的 《High Availability Concepts and Best Practices

 

unplaned_downtime有计划的宕机原因

下图来自Oracle的 《High Availability Concepts and Best Practices

planned_downtime

 

我们可以看到,上面的宕机原因包括如下:

无计划的

  • 系统级的故障 –  包括主机、操作系统、中间件、数据库、网络、电源以及外围设备
  • 数据和中介的故障 – 包括人员误操作、硬盘故障、数据乱了
  • 还有:自然灾害、人为破坏、以及供电问题。

有计划的

  • 日常任务:备份,容量规划,用户和安全管理,后台批处理应用
  • 运维相关:数据库维护、应用维护、中间件维护、操作系统维护、网络维护
  • 升级相关:数据库、应用、中间件、操作系统、网络、包括硬件升级

真正决定高可用系统的本质原因

从上面这些会影响高可用的SLA的因素,你看到了什么?如果你还是只看到了技术方面或是软件设计的东西,那么你只看到了冰山一角。我们再仔细想一想,那个5个9的SLA在一年内只能是5分钟的不可用时间,5分钟啊,如果按一年只出1次故障,你也得在五分钟内恢复故障,让我们想想,这意味着什么?

如果你没有一套科学的牛逼的软件工程的管理,没有牛逼先进的自动化的运维工具,没有技术能力很牛逼的工程师团队,怎么可能出现高可用的系统啊

是的,要干出高可用的系统,这TMD就是一套严谨科学的工程管理,其中包括但不限于了:

  • 软件的设计、编码、测试、上线和软件配置管理的水平
  • 工程师的人员技能水平
  • 运维的管理和技术水平
  • 数据中心的运营管理水平
  • 依赖于第三方服务的管理水平

深层交的东西则是——对工程这门科学的尊重:

  • 对待技术的态度
  • 一个公司的工程文化
  • 领导者对工程的尊重

所以,以后有人在你面前提高可用,你要看的不是他的技术设计,而还要看看他们的工程能力,看看他们公司是否真正的尊重工程这门科学

其它

有好些非技术甚至技术人员和我说过,做个APP做个网站,不就是找几个码农过来写写代码嘛。等系统不可用的时候,他们才会明白,要找技术能力比较强的人,但是,就算你和他们讲一万遍道理,他们也很难会明白写代码怎么就是一种工程了,而工程怎么就成了一门科学了。其实,很多做技术的人都不明白这个道理

包括很多技术人员也永远不会理解,为什么要做好多像Code Review、自动化运维、自动化测试、持续集成之类这样很无聊的东西。就像我在《从Code Review 谈如何做技术》中提到的,阿里很多的工程师,架构师/专家,甚至资深架构师都没有这个意识,当然,这不怪他们,因为经历决定思维方式,他们的经历的是民用级的系统,做的都是堆功能的工作,的确不需要。

看完这些,最后让我们都扪心自问一下,你还敢说你的系统是高可用的了么? ;-)

(全文完)

无觅相关文章插件,快速提升流量