闂佽崵濮风亸銊╁箯閿燂拷闂備浇宕甸崑鐐电矙韫囨稑纾块柟缁樺釜閼板灝鈽夐幙鍕2闂傚倷鐒﹂惇褰掑礉瀹€鈧埀顒佸嚬閸欏啴鐛笟鈧、鏇㈡晲閸℃鈧捇姊洪悷鏉库挃缂侇噮鍨抽埀顒傚仯閸ㄤ粙寮诲澶娢ㄩ柨鏃傛櫕閸樻悂姊洪柅鐐茶嫰婢ь垱鎱ㄦ繝鍌滅Ш鐎规洖銈搁弫鎾绘偐閸愬弶鐤侀梻浣瑰缁诲倿骞婃径鎰;闁圭偓鍓氶崥瀣煕濞戝崬澧俊顖氾躬濮婄粯鎷呴挊澹挻銇勯鐘点偐闂傚倷鐒︾€笛呯矙閹达附鍤愭い鏍仜鍥存繛瀵稿Т椤戝懐鎲撮敃鍌涚厱婵炴垶锕弨濠氭煛閸♀晙閭柡宀€鍠栧Λ鍐ㄢ槈濮e尅绱曠槐鎺楀Ω閿濆懎顫囬悗瑙勬磵閸撴繄鎹㈠┑瀣<婵ê鍚嬪ù鍡涙⒒娴e懙褰掋偑閻㈢ǹ绠柨鐕傛嫹闂佽崵濮风亸銊╁箯閿燂拷闂傚倷绀侀幖顐⑽涘▎鎾冲瀭闁割煈鍋嗛々鏌ユ煥濠靛棭妲归柛銈呭暣閺岋絽螣閻戞ɑ鍎撻梺鍛婃惄閸欏啴寮婚敓鐘茬妞ゆ帊绀佺喊宥夋⒑閹肩偛鈧倝宕i崘顭戞綎濠电姵鍑归弫瀣煃瑜滈崜鐔煎Υ閸屾稓顩烽悗锝庡亝濞呮牠鏌f惔鈩冭础闁瑰摜顫塭space闂傚倷鑳堕崕鐢稿疾濞戙垺鏅濋柨鏇炲€搁弸渚€鏌熼崜褏甯涢柛銈嗘礋閹﹢鎮欓懜娈挎缂備降鍔忛褔婀侀梺鎸庣箓濞层倖鐗庡┑鐘媰瀹ュ洨鏆ら梺鍝勮嫰閹虫﹢骞冮埡鍛彄妞ゆ挾鍠愰埢鏇㈡⒑閻熸澘鎮戞繛鍏肩懇瀹曟煡寮婚妷銉幯兠归悩宸剰闁诲繗娅曠换婵囩節閸屾侗妫炴繛瀛樼矋閻楃娀寮诲澶娢ㄩ柨鏂垮⒔閻f椽姊洪柅鐐茶嫰婢ч箖鏌熼崙銈嗗闂佽崵濮风亸銊╁箯閿燂拷婵犵妲呴崑鎾跺緤妤e啯鍋嬮柡鍥ュ灩閸ㄥ倿姊洪鈧粔瀵哥不閹寸姵鍠愰煫鍥ㄥ喕缂嶆牠鏌″搴″箺闁稿孩锕㈤弻锟犲礃閿濆懍澹曢梻浣规偠閸斿秴鐣濈粙娆惧殨缂佸绨遍崼顏堟煙闁箑鏋ら柣娑栧劦濮婃椽宕ㄦ繝鍕潷闂侀潧娲ㄩ崑銈呯暦閵夆晩鏁冮柕鍫濆€告禍楣冩偡濞嗗繐顏紒鐘崇墵閺岋綀绠涢弬鍨懙闂佽鍠曠划娆撳箖閵忋倕浼犻柛鏇樺妽鐎垫ḿ绱撻崒娆愵樂闁煎啿鐖煎畷鎴︽偄閸濆嫬鐏婇梺璺ㄥ枔婵敻鎮¢埀顒勬⒑閸涘﹦鈽夐柨鏇樺劦瀵娊顢橀姀锛勫幈闂佺粯蓱瑜板啫鈻撻悰绫堝┑鐘垫暩閸嬫盯鎯屾担鍝ユ殾闁汇垻枪閸戠娀鏌i弮鍌氬付闁哄绶氶弻娑㈩敃閵堝懏鐏佹繛瀛樼玻閹凤拷闂佽崵濮风亸銊╁箯閿燂拷缂傚倸鍊风粈渚€藝娴兼潙鍨傞柣銏犲閺佸棝鏌i弮鍌氬付缂佺媭鍣i弻鏇㈠醇濠靛牆顣洪梺閫炲苯鍘哥紒顔界懃椤曪綁濡搁埡鍌氭闂侀潧鐗嗗Λ娆擃敇濞差亝鈷戦柟绋挎捣閳洜鈧厜鍋撶紒瀣氨閺嬫牠鏌ㄩ悤鍌涘4闂傚倸鍊烽悞锕併亹閸愵亞鐭撻柛顭戝亝閸欏繘鏌曡箛瀣偓鏍吹閸愨晝绡€闂傚牊绋掔粊鈺備繆閼艰泛鍚圭紒杈ㄥ浮椤㈡岸鍩€椤掑嫬鐒垫い鎺嶈兌閵嗘帡鏌ょ憴鍕姢闁宠棄顦甸獮姗€顢涘顐㈩棜闂傚倸鍊搁オ鎾礈閿曞倸纾婚柛鈩冦仜閺嬫棃鏌熸潏鍓х暠缁炬儳顭烽弻鏇熷緞閸繂濮㈤梺鍝勬濡啫顫忓ú顏嶆晝闁靛繒濮崑鎾搭槹鎼达絿鐣舵繝銏f硾婢跺洭宕戦幘缁樺仭闁规鍠氭闂備浇妗ㄧ粈渚€鏁冮妷銉$細濠电姵纰嶉弲鎼佹煥閻曞倹瀚�闂佽崵濮风亸銊╁箯閿燂拷闂備浇宕甸崰鎰版偡鏉堚晝绀婂〒姘e亾鐎殿喓鍔戦弫鎰緞鐏炶棄绲炬俊鐐€栭崝褏寰婇崜褏绀婇煫鍥ㄦ礈绾惧ジ鏌e▎蹇斿櫧缁炬儳娼¢弻鐔碱敊绾柉鍚悗娈垮櫘閸撶喎顕i崼鏇炵柈闁告劖鍎冲顔锯偓瑙勬礃缁诲牆鐣烽悩缁樻櫖闁告洦鍘惧畷绉巌fespace闂備浇顕х换鎰崲閹邦喗宕叉俊銈呮噹缁犳椽鏌熸潏楣冩闁搞倕鐗撻弻鐔封枔閸喗鐏嶉梺纭呮硾鐎氫即寮婚敐澶婎潊闁靛繒濮甸悘鍡涙倵濞堝灝鏋涙い顓炲槻閻e嘲鈹戠€n亞鍘搁梺閫炲苯澧扮紒杈╁仜铻i悘蹇旂墪娴滈箖鏌涢敂璇插箹濞寸姍鍕垫闁绘劕寮跺婵堢磼椤旇姤顥堟鐐差儏閳规垿骞囬鈧煢闂傚倸鍊搁オ鎾礈閿曞倸纾婚柛娑卞幏缂傛碍淇婇妶鍛殶濞戞挸绉归弻銊モ槈濡警浠鹃梺绋库康閹凤拷闂佽崵濮风亸銊╁箯閿燂拷婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳ジ宕堕埡鍐帬闂備胶鎳撻悺銊ф崲瀹ュ绀夐柛娑樼摠閳锋帡鏌涢弴銊ヤ簽閸熺ǹ顪冮妶鍐ㄧ仼闁硅櫕锕㈤獮濠傤潨閳ь剙鐣烽幒妤佹櫆闁诡垎鍕姃婵犵數鍋為崹鍫曞箰閸撗冨灊妞ゆ牗绋掑▍鐘绘煥閺冨洦顥夌紒鍓佸仱閺屽秹宕崟顐f婵犳鍟崶銊у幍闁诲孩绋掗敋濠殿喖娲弻娑㈠Ω閵夆晛寮伴梺璇″灠閸熸潙鐣烽悢纰辨晩闁兼祴鏅欓崰濠囨⒒娴g晫姣囬柛鏇ㄥ亜婵垽姊烘导娆戞偧闁稿鍠栭幆鈧い蹇撴閸嬫捇宕烽鐐愩儲绻濋埀顒勫传閵壯咃紲婵烇絽娲ゅ畷顒勬倶椤忓懐绠鹃柛娆忣槹閸婃劙鏌熼搹顐畼闁圭懓瀚伴幃婊兾熺拠鍙傗€斥攽閻愯尙鎽犵紒顔艰嫰铻炴繝濠傛-閺嗘澘鈹戦悙鏉戠仸闁圭⒈鍋婇獮蹇涙晸閿燂拷闂佽崵濮风亸銊╁箯閿燂拷闂傚倷绀侀幖顐も偓姘煎墮铻炴繝濠傜墕鐟欙附淇婇婵嗗惞闁崇粯姊归妵鍕箻鐠鸿桨娌紓浣稿€稿ú顓㈠箖绾拋妲婚梺鍛婂焹閸嬫挾绱撴担璇℃畷缂佽鍊块崺銉﹀緞婵炵偓顫嶉悗瑙勬礀濞层劑鎮伴妷褏纾奸柟顖嗗啰绋忕紓浣插亾濞撴埃鍋撻柟顔荤矙椤㈡洟鏁冮埀顒勫矗婵犲啨浜滈柡宥冨姀婢规﹢鏌$€n亪鍙勯柡灞稿墲閹峰懘宕崟鍨瘔闁诲氦顫夐幐椋庢濮樿泛绠氶柛鎰靛枛缁€瀣亜閹哄秵顦风紒顕呭灡缁绘稒娼忛崜褍鍩岄梺鍝ュ枎濞硷繝骞冨ú顏勎╅柍杞拌兌閿涙粓姊洪棃娴ㄥ綊宕愬Δ鍛剹婵炲棙鎸婚崑锝夋煙閹峰苯鐓愰悗姘炬嫹闂佽崵濮风亸銊╁箯閿燂拷婵犵數濮烽。浠嬪焵椤掆偓閸熷潡鍩€椤掑嫷妫戠紒杈╁仜椤撳ジ宕卞Ο鑽ゅ娇闂備胶绮崝鏍亹閸愵亝宕插〒姘e亾闁哄本绋栫粻娑㈠箻缂傚簺鍊濋弻锛勪沪閼恒儱娈楅悗瑙勬礃缁诲倿鍩ユ径濠勬殾闁搞儜鍕姃濠电姵顔栭崰鏍不瀹ュ纾规繛鎴欏灩閸氬綊鏌¢崶銉ョ仼缁炬儳婀遍埀顒€绠嶉崕閬嶅箠瀹ュ惓搴敋閳ь剟寮昏瀵剙鈻庨幆褍澹嬫繝鐢靛仜閹茬偤宕ㄩ鐐典喊濠电姰鍨煎▔娑欑仚闂佺ǹ顑冮崝鎴﹀蓟閿曞倸鐒垫い鎺戝鍞梺闈涱槶閸庢煡宕愰悩缁樷拺闁告繂瀚峰Σ鍫曟煕鎼搭喖娅嶉柛鈹惧亾濡炪倖甯婇懗鍫曟儗婵犲倵鏀芥い鏇炴噸闁垳鈧鍠撻崝鎴﹀箖濠婂牆鐓橀柟顖嗗倸顥氶梻浣芥硶閸o箓骞忛敓锟�闂佽崵濮风亸銊╁箯閿燂拷Canalys闂備浇宕垫慨鎾敄閸涙潙鐤ù鐓庣摠閸嬪绻涘顔荤凹闁哄拋鍓氶幈銊ヮ潨閸℃ぞ鍑介梺鍛婏供閸撶喖寮诲☉銏犖ㄩ柨鏇楀亾闁诲繐锕︾槐鎺撴綇閵娿儳鐟茬紓浣割儏椤︻垶锝炲┑瀣垫晢濠㈣泛锕ラ蹇撯攽閻愯尙鎽犵紒顔肩灱閼洪亶鎳栭埡鍐暥闂佺ǹ鏈粙鎾汇€呴弻銉︾厵閻庣數枪鏍¢梺浼欑秮娴滆泛顫忔繝姘倞闁挎繂鎳嶆竟鏇熺節濞堝灝鏋ら柟铏崌瀹曟劖顦版惔鈥崇亰濠电偞鍨崹娲磹閸ф鐓涢柛顐犲灪閺嗏晝绱掓径灞炬毈鐎殿喖鐖奸崺锛勨偓锝庡亜椤忥拷闂佽崵濮风亸銊╁箯閿燂拷婵犵數濮幏鍐川椤撴繄鎹曠紓鍌欒兌婵敻鎮疯楠炴牗銈i崘鈺傛闂佽法鍣﹂幏锟�30% 闂傚倷绀侀幉锟犮€冮崨顖濆С闁兼祴鏅滅€氬鏌i弬鎸庢喐闁崇粯鏌ㄩ埞鎴︽偐閸欏娅у┑鐐茬墳閹凤拷2023闂傚倷绀佺紞濠傖缚瑜旈、鏍幢濡炵粯鏁犻梺閫炲苯澧撮柡灞剧洴楠炲鏁傞崜褏鐛ラ梻渚€鈧稓涓茬紓宥勭窔瀵鐣濋崘顏嗘澑濠殿喗锕╅崜姘额敊閿燂拷4000婵犵數鍋為崹鍫曞箰缁嬫5娲敇閵忕姷锛熼梺璺ㄥ櫐閹凤拷
您现在的位置:首页 >> IT >> 正文
为什么说流处理即未来?
发表时间:2019年4月19日 11:55 来源:新科技 责任编 辑:U
17.jpg

搭建这样一个库并不难,难的是让它高性能的运行。让我们来看看它的性能。这些性能测试是几个月之前的,我们并没有做什么特别的优化,我们只是想看看一些最简单的方法能够有什么样的性能表现。而实际性能表现看起来相当不错。如果你看这些性能条形成的阶梯跨度,随着流处理器数量的增长,性能的增长相当线性。在事务设计中,没有任何协同或者锁参与其中。这只是流处理,将事件流推入系统,缓存一小段时间来做一些乱序处理,然后做一些本地状态更新。在这个方案中,没有什么特别代价高昂的操作。在图中性能增长似乎超过了线性,我想这主要是因为JAVA的JVM当中GC的工作原因导致的。在32个节点的情况下我们每秒可以处理大约两百万个事务。为了与数据库性能测试进行对比,通常当你看数据库的性能测试时,你会看到类似读写操作比的说明,比如10%的更新操作。而我们的测试使用的是100%的更新操作,而每个写操作至少更新在不同分区上的4行数据,我们的表的大小大约是两亿行。即便没有任何优化,这个方案的性能也非常不错。

另一个在事务性能中有趣的问题是当更新的操作对象是一个比较小的集合时的性能。如果事务之间没有冲突,并发的事务处理是一个容易的事情。如果所有的事务都独立进行而互不干扰,那这个不是什么难题,任何系统应该都能很好的解决这样的问题。当所有的事务都开始操作同一些行时,事情开始变得更有趣了,你需要隔离不同的修改来保证一致性。所以我们开始比较一个只读的程序、一个又读又写但是没有写冲突的程序和一个又读又写并有中等程度写冲突的程序这三者之间的性能。你可以看到性能表现相当稳定。这就像是一个乐观的并发冲突控制,表现很不错。那如果我们真的想要针对这类系统的阿喀琉斯之踵进行考验,也就是反复的更新同一个小集合中的键。在传统数据库中,这种情况下可能会出现反复重试,反复失败再重试,这是一种我们总想避免的糟糕情况。是的,我们的确需要付出性能代价,这很自然,因为如果你的表中有几行数据每个人都想更新,那么你的系统就失去了并发性,这本身就是个问题。但是这种情况下,系统并没崩溃,它仍然在稳定的处理请求,虽然失去了一些并发性,但是请求依然能够被处理。这是因为我们没有冲突重试的机制,你可以认为我们有一个基于乱序处理天然的冲突避免的机制,这是一种非常稳定和强大的技术。

18.jpg

我们还尝试了在跨地域分布的情况下的性能表现。比如我们在美国、巴西,欧洲,日本和澳大利亚各设置了一个Flink集群。也就是说我们有个全球分布的系统。如果你在使用一个关系型数据库,那么你会付出相当高昂的性能代价,因为通信的延迟变得相当高。跨大洲的信息交互比在同一个数据中心甚至同一个机架上的信息交互要产生大得多的延迟。但是有趣的是,流处理的方式对延迟并不是十分敏感,延迟对性能有所影响,但是相比其它很多方案,延迟对流处理的影响要小得多。所以,在这样的全球分布式环境中执行分布式程序,的确会有更差的性能,部分原因也是因为跨大洲的通信带宽不如统一数据中心里的带宽,但是性能表现依然不差。实际上,你可以拿它当做一个跨地域的数据库,同时仍然能够在一个大概10个节点的集群上获得每秒几十万条事务的处理能力。在这个测试中我们只用了10个节点,每个大洲两个节点。所以10个节点可以带来全球分布的每秒20万事务的处理能力。我认为这是很有趣的结果,这是因为这个方案对延迟并不敏感。

19.jpg

我已经说了很多利用流处理来实现事务性的应用。可能听起来这是个很自然的想法,从某种角度上来说的确是这样。但是它的确需要一些很复杂的机制来作为支撑。它需要一个连续处理而非微批处理的能力,需要能够做迭代,需要复杂的基于事件时间处理乱序处理。为了更好地性能,它需要灵活的状态抽象和异步checkpoint机制。这些是真正困难的事情。这些不是由Ledger Streaming库实现的,而是Apache Flink实现的,所以即使对这类事务性的应用而言,Apache Flink也是真正的中流砥柱。

[1]  [2]  [3]  [4]  [5]  [6]  
高层访谈
蚂蚁金服副总裁刘伟光:构筑敏捷能力中心,打造下一代数字银行“操作..
蚂蚁金服副总裁刘伟光在演讲中指出,银行数字化转型是一个逐步递进的旅程,敏捷能力中心的打造..
凌动智行史文勇:品智出行, 重新定义车辆对生活的价值和意义
众所周知,手机是基础的通讯工具,车是基础的交通或者出行工具,而发动机是传统车里面非常高的..
观点态度
云计算的第二个十年:三大运营商如何迎接?
2018年,我国云计算进入第二个十年。站在国家方队里三大运营商的云计算也进入了新的发展阶段。<..
国内手机市场半年报:头部格局定型 中小品牌陷入集体焦虑
2018年已过半,回看这半年, 头部品牌的吸附效应越来越明显,中小品牌正陷入到集体焦虑中。

..
移动互联
手机
智能设备
汽车科技
通信
IT
家电
办公打印
企业
滚动
相关新闻
关于我们 | 联系我们 | 友情链接 | 版权声明
新科技网络【京ICP备18031908号-1】
Copyright © 2018 Hnetn.com, All Right Reserved
版权所有 新科技网络
本站郑重声明:本站所载文章、数据仅供参考,使用前请核实,风险自负。