锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
涔嬪墠鍑犲ぉ璇磋繃錛屽洜涓虹粡鍏?/span>iocp瀹炵幇錛堜互涓嬬畝縐扮粡鍏稿疄鐜幫級澶氫釜io綰跨▼緇戝畾鍦ㄤ竴涓?/span>iocp涓婏紝榪欐牱鍐呴儴綆$悊浜?/span>iocp闃熷垪鐨勫鐞嗭紝鍐呴儴鍐沖畾鏄笉鏄渶瑕佺嚎紼嬪垏鎹紝鎴戜笂嬈′慨鏀圭殑涓涓増鏈紙浠ヤ笅綆縐板疄鐜?/span>2錛夛紝鐢ㄤ簡澶氫釜io綰跨▼錛屾瘡涓?/span>iocp闃熷垪浠呯粦瀹氫竴涓?/span>io綰跨▼錛屼竴緇勭敤鎴峰叡浜竴涓?/span>io綰跨▼錛岃繖鍜岀粡鍏哥殑澶氱嚎紼?/span>epoll妯″瀷鐨勫仛娉曟槸寰堢浉浼肩殑錛岃繖鏍鋒瘡涓?/span>io綰跨▼鏄彲浠ョ嫭绔嬫帶鍒朵簡錛屼絾鐞嗚涓婅繖縐嶅仛娉曟病鏈夊彂鎸?/span>iocp鑷姩綆$悊綰跨▼鍒囨崲鐨勪紭鍔匡紝鏄ㄦ櫄娌′簨鐢ㄨ繖涓ょ瀹炵幇鍒嗗埆鍋氫簡涓?/span>echoserver嫻嬭瘯浜嗕竴涓嬶紝榪欎袱濂楀疄鐜頒唬鐮佷粎40琛屽乏鍙充笉鍚岋紝鍏朵粬瀹屽叏涓鏍鳳紝鏁堟灉鐪熺殑鏄樊寰堝錛屾祴璇曚粎鐢ㄤ竴涓繘紼嬫ā鎷熶簡4000涓鎴風(fēng)錛屾瘡縐?/span>1涓寘錛屽厛鐪嬪疄鐜?/span>2鐨勶紝cpu鍗?/span>14%錛?/span>2涓?/span>io綰跨▼錛?/span>1涓?/span>accept綰跨▼錛?/span>1涓富綰跨▼錛屽叾浠栫嚎紼嬮兘娌″共媧婚棽緗?/span>
|
Cpu |
Memory |
Threads |
handles |
|
14 |
40088k |
8 |
4236 |
|
Cpu |
Memory |
Threads |
handles |
|
0 |
39244k |
7 |
4336 |
璇村疄璇濓紝鍦ㄦ祴璇曚箣鍓嶆垜涔熸病鎯沖埌鏈夎繖涔堝ぇ鐨勫樊璺濓紝緇忓吀瀹炵幇灝辨槸1.2w涓繛鎺ヨ繛涓婃潵榪樻槸榪欐牱錛屽氨鏄唴瀛樺崰鐢ㄥ涓鐐癸細(xì)
|
Cpu |
Memory |
Threads |
handles |
|
0 |
112068k |
7 |
12280 |
涔?fàn)鎯笂鎬繪湁浜哄枩嬈㈡嬁epoll鍜?/span>iocp鏉ュ姣旓紝鎴戝埌鐜板湪涔熸病鐪嬪埌鐪熸鍏鉤鐨勫姣旓紝灝辯畻鏄浉瀵瑰叕騫崇殑涔熸病瑙佸埌錛屽洜涓哄湪鎴戠湅鏉ワ紝瑕佸姣旂‖浠跺簲璇ユ槸涓鏍風(fēng)殑錛?/span>os閮藉簲璇ユ槸鏈鏂扮殑錛屾渶閲嶈鐨勬槸錛?/span>server绔▼搴忓簲璇ラ兘鏄彂鎸ヤ簡鍚勮嚜浼樺娍鐨勶紝濡傛灉鎷挎垜榪欓噷鐨勫疄鐜?/span>2鍘諱唬琛?/span>iocp鐨勬按騫沖拰epoll瀵規(guī)瘮錛屽娍蹇呴犳垚姣?/span>epoll宸緢澶氱殑緇撴灉錛岀劧鑰岃繖鏄劇劧鏄笉姝g‘鐨勩?/span>
epoll緇忓吀澶氱嚎紼嬫ā寮忓疄闄呭疄鐜板拰瀹炵幇2寰堢浉浼鹼紝鐞嗚涓婁篃鏈夌被浼肩殑綰跨▼鍒囨崲闂錛屼笉鐭ラ亾鏁堢巼鎬庢牱銆?/span>
鍥炶皟鍑芥暟瀹炲湪鏄敤寰楀お騫挎硾錛屽洖璋冨嚱鏁板張鏈夊縐嶅疄鐜版柟寮忥紝濡傦細(xì)
1銆?span style="font:7.0pt "Times New Roman""> 闈欐佸嚱鏁?/span>
2銆?span style="font:7.0pt "Times New Roman""> 铏氬嚱鏁?/span>
3銆?span style="font:7.0pt "Times New Roman""> 鍑芥暟瀵硅薄
4銆?span style="font:7.0pt "Times New Roman""> 浼犵粺c鍑芥暟錛岄氳繃涓涓?/span>void *浼犻掑璞″湴鍧錛屽唴閮ㄥ己鍒惰漿鎹?/span>
5銆?span style="font:7.0pt "Times New Roman""> fastdelegate
6銆?span style="font:7.0pt "Times New Roman""> Tr1::function + bind
7銆?span style="font:7.0pt "Times New Roman""> Boost::Function + bind
鍩烘湰涓婇熷害鏄寜鐓х敱蹇埌鎱㈢殑欏哄簭鎺掑垪鐨勶紝灝辨槸
1 > 2 > 3 > 4 > 5 > 6 > 7
鍏跺疄234閫熷害寰堟帴榪戯紝鏈夌殑鏃跺欏嚱鏁板璞℃晥鐜囨洿楂樹竴鐐癸紝鍩烘湰涓婅秺鏄珮綰х殑鏂規(guī)硶浣跨敤璧鋒潵瓚婃柟渚匡紝浣嗛熷害瓚婃參錛岃秺鏄紶緇熺殑鏂規(guī)硶閫熷害瓚婂揩錛屽懙鍛碉紝鐪嬫潵鍋?/span>server绔▼搴忚緇煎悎鑰冭檻鏁堢巼澶柊鐨勪笢瑗胯繕鏄灝戠敤鍟婏紝榪樻槸鐢ㄤ紶緇熺殑鏂規(guī)硶姣旇緝闈犺氨涓鐐癸紝褰撶劧濡傛灉璋冪敤嬈℃暟涓嶅鐨勫湴鏂癸紝浣跨敤鏇存柟渚跨殑鏂規(guī)硶榪樻槸濂戒竴浜涳紝姣曠珶鎴戜滑瑕佺患鍚堟潈琛★紝鑰屼笉鑳芥鏉挎仾瀹堟暀鏉°?/span>
涔嬪墠璁捐浜嗕竴濂楃綉緇滄鏋訛紝鎸佺畫鏀硅繘浜嗗緢澶氬勾錛屼嬌鐢ㄥ湪寰堝欏圭洰涓婏紝緇煎悎鏁堢巼榪樿錛屼篃寰堢ǔ瀹氾紝涓鐩翠互鏉ュ榪欏涓滆タ淇″績婊℃弧錛屾諱互涓哄暐闂閮藉ソ瑙e喅錛屼絾鏈榪戝氨鏈変釜闇姹傝鎴戦夋嫨榪樻槸鏀逛簡涓嬭繖涓鏋躲?/span>
涔嬪墠鐨勬鏋舵槸榪欐牱鐨勶紝鍙互寮涓緇?/span>N涓?/span>io綰跨▼錛屽彲浠ュ紑涓緇?/span>N涓悓姝ョ嚎紼嬶紙榛樿1涓級錛屽彲浠ュ紑涓緇?/span>N涓紓姝ョ嚎紼嬶紙榛樿1涓級錛屽彲浠ュ紑涓緇?/span>N涓?/span>timer綰跨▼錛堥粯璁?/span>1涓級錛屽彲浠ュ紑涓緇?/span>N涓紓姝ョ嚎紼嬶紙榛樿cpu涓級錛屾瘡緇勫彲鐙珛鍙楁帶錛屾瘡緇勫彲鏀寔鑷畾涔夋秷鎭紝鍙敮鎸?/span>timer錛屼竴緇?/span>N涓鏋?/span>N澶т簬1鍒欐棤娉曠洿鎺ョ粰榪欑粍閲岄潰鐨勭壒瀹氱嚎紼嬪彂娑堟伅錛屽彧鑳界粰涓緇勫彂娑堟伅錛岃繖涓粍閲岄潰浼?xì)閫夋嫨鏌愪釜鍚堥傜殑綰跨▼澶勭悊榪欎釜娑堟伅錛岃繖涔熸槸iocp楂樻晥鍜屽吀鍨嬬殑鐢ㄦ硶浜嗭紝浣嗚繖涔熸鏄棶棰樼殑緇撶棁鎵鍦ㄣ?/span>
Linux涓嬬殑澶氱嚎紼嬫湇鍔″櫒鏇村父瑙佺殑鍋氭硶璺熻繖涓笉澶х浉浼鹼紝涓鑸兘鏄皢鏌愪簺socket鍒嗛厤鍒版煇浜涚嚎紼?/span>epoll錛屽垎濂戒箣鍚庡氨鏄浐瀹氱殑錛屼笉鍐嶅彉鍖栵紝璺?/span>Iocp灝?/span>socket緇戝畾鍒頒竴緇勭嚎紼嬬殑鍋氭硶涓嶅悓錛岀敱浜庢煇涓?/span>socket鐩存帴緇戝畾鍒頒簡鏌愪釜綰跨▼錛屾墍浠ユ湁浜涢棶棰樺氨鍙樺緱綆鍗曚簡錛屽鍚屼竴涓繛鎺ョ殑鍦ㄥ悓涓涓嚎紼嬪唴娑堟伅榪涜浜嗗悓姝ワ紝瑕佽窡io綰跨▼緇戝畾縐佹湁鍖栨暟鎹篃綆鍗曚簡錛岃屼笖姣忎釜綰跨▼鍙嫭绔嬪彈鎺э紝鎵浠ュ緢瀹規(guī)槗瀹炵幇涓緇?/span>io鍚勮嚜鎸?/span>tls錛堢嚎紼嬪眬閮ㄥ瓨鍌級鏁版嵁錛岃屾垜鐜板湪鍋氱殑榪欏妗嗘灦灝辨槸榪欐柟闈笉濂芥帶浜嗭紝鍏跺疄涔熷緢闅捐榪欎袱縐嶆剰涔変笂鐨勬鏋跺埌搴曡皝鏇翠紭錛屽鐢ㄥ湪web鍨嬪簲鐢ㄤ笂榪欑socket琚竴緇?/span>io綰跨▼綆$悊鐨勬ā寮忓緢鏂逛究鏁堢巼涔熼珮錛屼絾鎴戠幇鍦ㄧ殑闇姹傞渶瑕佹煇涓?/span>socket浣跨敤綰跨▼鐩稿叧鏁版嵁錛屼互閬垮厤鏁版嵁涔嬮棿鐨勯攣錛屾垜鐢ㄥ唴瀛樻崲鏃墮棿錛岀敱浜庡湪鍘熸潵鐨勬鏋朵笂澧為昏緫闅句互瀹炵幇鍙洿鎺ユ帶鍒?/span>io綰跨▼鐨勬鏋剁殑錛屾墍浠ヨ姳浜嗕竴涓櫄涓婇噸鏂版敼鍐欎簡涓濂楁鏋訛紝鍦ㄥ師鏉?/span>iocpframe鐨勫熀紜涓婃淳鐢熶簡涓緇勫甫2鍚嶇О鐨勭被錛岄櫎鏇挎崲綾誨悕涔嬪鍙慨鏀逛簡鍑犲崄琛屼唬鐮佸氨鍋氬ソ浜嗭紝鎬葷殑鏉ヨ鑺辯殑鏃墮棿榪樻槸姣旇緝?yōu)畱鐨勩備慨鏀瑰悗io綰跨▼涓緇勶紝浣嗙嫭绔嬪彈鎺э紝澶栭儴鍙榪欑粍綰跨▼涓殑鏌愪竴涓洿鎺ュ彂娑堟伅錛屽熀鏈弧瓚充簡闇姹傦紝鐜板湪瑕佺粰姣忎釜io綰跨▼緇戝畾縐佹湁鏁版嵁騫惰Е鍙戠壒瀹氭秷鎭瘮涔嬪墠綆鍗曞浜嗭紝鑰屼笖緇濆鏃犻攣銆?/span>
鐢變簬鍘熷厛鐨?/span>appserver鍔熻兘涓嶆柇澧炲錛屾渶榪戝張澧炰簡涓や釜鍔熻兘錛岄渶瑕佷笉鏂粠鍚庣memcached涓彁鍙栨暟鎹茍榪涜璁$畻錛岀敱浜庢彁鍙栨暟鎹噺澶т笖棰戠箒錛屽鑷存晥鐜囧緢浣庯紝綺楁祴浜嗕竴涓嬶紝鑾峰彇鏁版嵁鍜屾牸寮忓寲絳夋搷浣滆姳浜?/span>90%浠ヤ笂鐨勬椂闂達(dá)紝鐢辨璁炬兂灝?/span>memcached鏀瑰啓鎴栭噸鍐欎竴涓敮鎸?/span>memcached鐨勬湇鍔″櫒錛屽皢璁$畻鍔熻兘鍜?/span>memcached鍋氬埌涓璧鳳紝璁╄幏鍙栨暟鎹殑璺緞鏈鐭紝涔熷氨鏈澶ч檺搴﹀噺灝戜簡鏁版嵁浼犺緭鍜屾牸寮忓寲絳夋搷浣滐紝灝辨槸綾諱技瀛樺偍榪囩▼涓鏍峰暒錛岃繖閮ㄥ垎鍙互鑰冭檻浣跨敤鎻掍歡鏉ュ疄鐜幫紝鐢氳嚦鍙冭檻浣跨敤鑴氭湰璇█鏉ュ疄鐜般?/span>
緗戜笂鎼滀簡涓涓嬶紝鏋滅劧鍙戠幇鏃╂湁浜鴻繖涔堝共浜嗭紝姝f墍璋撹嫳闆勬墍瑙佸晩錛屽懙鍛點傚叿浣撴柟娉曞掑緢澶氾紝鑷畾涔?/span>key鍛藉悕錛屾牴鎹壒孌?/span>key鍦?/span>get銆?/span>set銆?/span>replace涓婂仛鐗規(guī)畩鎿嶄綔錛屾垨鑰呮牴鎹懡浠や腑鐨?/span>flag絳夊仛鐗規(guī)畩澶勭悊錛屾垨鑰呮墿鍏?/span>stat鍛戒護(hù)絳夛紝閮芥槸鍙互鐨勶紝鎴戜滑鏆傛椂灝辮冭檻淇敼鐗規(guī)畩鐨勯敭鍊煎仛鐗規(guī)畩澶勭悊銆?/span>
瑕佸仛涓涓畬澶囩殑鏃㈡敮鎸?/span>ascii鍛戒護(hù)鍙堟敮鎸?/span>binary鍛戒護(hù)鐨勫吋瀹?/span>memcached榪樻槸鏈変竴鐐圭偣楹葷儲鐨勶紝鎴戞殏鏃朵篃娌℃湁澶闇姹傦紝鎵浠ュ氨浠呮敮鎸佷簡ascii鍛戒護(hù)錛屽叾瀹炰篃鏄冭檻鏀寔ascii鐨勫鎴風(fēng)鏇村錛屽悇縐嶈璦鐨勬敮鎸?/span>mc鐨勫鎴風(fēng)鏁頒笉鑳滄暟錛屼絾澶у鍙敮鎸?/span>ascii鍛戒護(hù)銆傜敱浜庢垜涔嬪墠涓轟簡嫻嬭瘯鏈嶅姟鍣ㄦ鏋舵晥鐜囷紝鍋氳繃涓涓敮鎸?/span>ascii鍛戒護(hù)鐨?/span>memcached鍏煎鐗堟湰錛屽洜姝ゆ嬁榪囨潵鐩存帴浣跨敤澶柟渚夸簡錛岃繖涓増鏈殑瀹炵幇鍏跺疄寰堝鏄擄紝濡傛灉鏈変竴涓緝濂界殑妗嗘灦浠g爜鐨勮瘽鍩烘湰涓婂湪涓澶╀箣鍐呭彲鍋氬畬錛屽綋鐒惰鍋氬埌寰堝ソ鍙兘闇瑕佸鑺變竴浜涙椂闂達(dá)紝鎴戠幇鍦ㄥ仛鐨勪篃涓嶆槸鐗瑰ソ錛岃瀹屽叏鍙栦唬memcached浣跨敤榪樻槸鏈変簺宸窛錛屼富瑕佹槸涓浜涜繃鏈熸満鍒剁瓑娌″畬鍏ㄥ疄鐜幫紝铏界劧閫熷害涓婃瘮鏍囧噯mc鐗堟湰榪樿蹇竴鐐癸紝鍛靛懙錛屽洜涓烘殏鏃剁殑紜槸涓嶉渶瑕佽繖浜涜繃鏈熸満鍒訛紝鎵浠ヤ篃娌℃墦綆楄繖涓増鏈疄鐜幫紝鍏朵粬鍔熻兘鍩烘湰涓婇兘鏈夈?/span>
浠ュ悗鍑嗗灝嗚繖涓?/span>memcached瑙g爜閮ㄥ垎浣滀負(fù)涓涓崟鐙殑瑙f瀽鍣紝鍜屾敮鎸佸叾浠栧崗璁竴鏍鳳紝鎹笂榪欎釜瑙f瀽閭e氨鏀寔mc鍗忚浜嗭紝榪樻槸寰堟柟渚跨殑錛屼互鍚庢湁絀鴻繕鏄鍋氫釜鏀寔binary鍗忚鐨勶紝浠ヤ究鍙互鏇撮珮鏁堢殑瑙e喅闂銆?/span>
鎯沖埌server鑳芥敮鎸?/span>Memcached鍗忚鐪熸槸濂藉晩錛屽鎴風(fēng)鍩烘湰鍙鐢ㄤ釜libmemcached灝卞ソ浜嗭紝澶氭湇鍔″櫒鍒嗗竷錛屽閿欙紝澶氫喚鏁版嵁鍟ョ殑閮芥湁鐜版垚鐨勮В鍐蟲柟妗堬紝鍙鎶?/span>server鍋氱ǔ瀹氫簡灝卞熀鏈?/span>ok浜嗭紝瀵瑰挶榪欑灝忓洟闃熸潵璇村啀鍚堥備笉榪囦簡錛岃妭鐪佷簡寰堝寮鍙戠淮鎶ゆ垚鏈晩錛岀幇鍦ㄥ唴瀛樿繖涔堜究瀹滐紝閮ㄧ講鍑犱釜鐐瑰疄鍦ㄦ槸寰?/span>easy鐨勯棶棰樸?/span>
鏈榪戣灝嗕竴浜涙暟鎹斁鍒板唴瀛橀噷闈㈠仛寰堥珮鐨勫茍鍙戞搷浣滐紝鑰冭檻浜嗗緢澶氭柟妗堬紝
1銆?nbsp;綆鍗曠偣浣跨敤map hash_map絳夎嚜宸辯鐞嗐?/span>
2銆?nbsp;鐢?/span>sqlite鍐呭瓨琛ㄣ?/span>
3銆?nbsp;鐢?/span>fastdb鍐呭瓨鏁版嵁搴撱?/span>
4銆?nbsp;鐢?/span>ExtremeDb錛?/span>TimesTen絳夈?/span>
姣旇緝嫻嬭瘯浜嗕竴涓?/span>123錛屽彂鐜拌繕鏄嚜宸卞疄鐜伴熷害鏈蹇紝姣?/span>fastdb妯″紡蹇?/span>3-5鍊嶏紝fastdb妯″紡姣?/span>sqlite鍐呭瓨琛ㄦā寮忓揩10鍊嶅乏鍙籌紝鐢變簬鑷繁瀹炵幇涓嶅叿鏈夊吀鍨嬮氱敤鎬э紝澶氱嚎紼嬩笅璁塊棶鏁堢巼浼?xì)涓嬮檷锛岃绠$悊澶毦U跨▼涓嬪悇縐嶆洿鏂版煡鎵劇瓑榪樻槸姣旇緝楹葷儲鐨勶紝鎵浠ュ湪1鍜?/span>3鏂規(guī)涔嬮棿綰犵粨銆?/span>
涓轟簡浣垮緱鍐崇瓥鏇村ソ涓浜涳紝鏆傛椂榪樻病鍋氬喅瀹氾紝欏轟究鍒頒竾鏂圭瓑涓婇潰鎼滅儲浜嗕竴浜涜鏂囨潵鐪嬶紝鐪嬫潵鐪嬪幓鐪嬪緱鐪熸潵姘斿晩錛岃櫧鐒墮兘鍙唴瀛樻暟鎹簱浣嗗悇縐嶅疄鐜扮殑閮芥湁錛屾湁鐢?/span>gdbm鏉ュ仛鐨勶紝鏈夌洿鎺?/span>map綆$悊鐨勶紝鏈?/span>hash綆$悊鏁版嵁鐨勶紝鏈?/span>t鏍?wèi)绠$悊鐨勫Q屾湁鏁扮粍闃熷垪綆$悊鐨勶紝鏈夌殑鏄庢樉灝辨槸涓笉澶у彉鐨勪笢瑗胯繕寮勪釜鍟ヤ簨鍔$殑錛岄潬錛屽垰鍒氬眳鐒惰繕鐪嬪埌涓綃囬笩鏂囥婄數(shù)緗戠洃鎺х郴緇熷疄鏃舵暟鎹簱鐨勮璁′笌瀹炵幇銆嬮噷闈㈢殑嫻嬭瘯灞呯劧鏄?/span>1000鏉★紝鎻掑叆鏃墮棿80姣錛岀湡鍙瑧鍟婏紝鍖哄尯榪欎箞鐐規(guī)暟鎹篃濂芥剰鎬濇祴錛岃繕瑕佽姳80姣錛岃繕鑷互涓哄緢蹇紝榪欎釜閫熷害鑷沖皯鍙彁楂?/span>1000鍊嶄互涓婂晩錛岃繖甯瀮鍦撅紝鍐欑殑鍟ラ笩鏂囩珷錛岀爺絀朵釜灞佸晩銆?/span>
鐪嬪畬榪欏崄鏉ョ瘒璁烘枃錛屼亢鐨勬濈華鍙堝洖鍒?/span>1999騫達(dá)紝褰撳勾鎴戠粰鍒漢浼樺寲榪囦竴涓數(shù)淇¤璐圭殑杞歡錛堢湅鐨勮鏂囬噷闈㈡湁濂藉嚑綃囪鐢?shù)淇¤璐圭殑锛夊Q屽綋鏃舵湁涓湅鍙嬬殑鏈嬪弸鎷夸簡涓渶姹傝繃鏉ワ紝7000涓囨潯璁板綍錛屽師鏉ヨ綆楄垂鍗曡鑺卞崄鍑犱釜灝忔椂鍚э紝鎴戝府浠栨敼浜嗕笅錛屽崄鏉ュ垎閽熷氨綆楀畬浜嗭紝鏈嬪弸寰堟弧鎰忥紝褰撴椂鐨勫仛娉曞緢綆鍗曪紝灝辨槸寮勪簡涓?/span>mmtable錛屽ぇ浣撳氨鏄窡map綾諱技鐨勪笢瑗垮惂錛岄偅涓椂鍊?/span>map榪樻病嫻佽璧鋒潵錛屼亢涔熶笉鐭ラ亾錛屾墍浠ュ氨鑷繁寮勪簡涓唴瀛樿〃錛屽唴閮ㄥ熀鏈氨鏄簩鍒嗘煡鎵句簡錛岄偅涓椂鍊欐垜瀵?/span>hash閮戒笉澶х啛鎮(zhèn)夛紝B鏍?wèi)涔嬀c葷殑綆楁硶鍒氭帴瑙︿篃涓嶄細(xì)鐢紝灝辮繖涔堜釜涓滆タ褰撴椂鐨勭數(shù)鑴戜篃鍙鑺卞崄鏉ュ垎閽燂紝鎴戜及璁″氨綆楁槸閭d釜鑰佺▼搴忔斁鍦ㄧ幇鍦ㄧ殑鏅氬彴寮忔満涓婅涓嶄簡鍑犵閽熷氨鍙畻瀹屻備篃涓嶇煡閬撹繖涔堝嚑鍗冧竾鏉¤褰曠殑灝忛渶姹傛庝箞鍦ㄨ繖甯漢鐪奸噷灝辨垚浜嗕粈涔堟搗閲忔暟鎹紝瀵逛亢鏉ヨ璺熺帺浼肩殑錛屽尯鍖哄嚑鍗冧竾鍢涳紝涓嶈繃鏄亢鎷挎潵嫻嬭瘯鐢ㄧ殑銆?/span>
鍘誨勾涓仛浜嗕釜md5 hash鍙嶆煡鐨勪笢瑗匡紝鏁版嵁閮芥槸鍑犵櫨浜垮埌鍑犱竾浜跨殑錛屽悗鏉ョ殑鏁堟灉灝辨槸涓涓枃浠跺彲瀛樹竾浜胯褰曪紝涓嬈℃煡璇㈠鉤鍧?/span>1.2嬈?/span>IO錛屽嵆浣垮叏鏀懼湪SATA紓佺洏涓婁篃灝卞崄鏉ユ縐掕屽凡銆?/span>
鍖哄尯鍑犲崈涓囨潯璁板綍鍜嬪氨鍙粈涔堟搗閲忔暟鎹憿錛屾搗閲忎釜姣涘晩錛屽唴瀛橀兘鏀懼緱涓嬬殑鍙粈涔堟搗閲忥紝鐜板湪鏈嶅姟鍣ㄥ姩涓嶅姩閮芥槸鍑犲崄G鍐呭瓨錛屽尯鍖哄崈涓囨牴鏈畻涓嶄笂浠涔堬紝鏌ヨ瀹氫綅閮藉彲鍒板井濡欎簡錛?/span>1縐掓彃鍏ヨ嚦灝戝崈涓囨潯浜嗭紝灞呯劧榪樼湅鍒?/span>1000鏉℃彃鍏ョ殑嫻嬭瘯錛岀湡鏄笉寰椾笉浣╂湇鍥藉唴榪欏府鍨冨溇鐮旂┒鐢熺殑姘村鉤錛屼篃涓嶇煡閬撹繖縐嶈鏂囧拫灝辮兘閫氳繃瀹℃煡錛屽彧鑳藉緱鍑虹粨璁轟粬浠殑鑰佸笀涔熼兘鏄尓銆?/span>
楠傚綊楠傝嚜宸辯殑闂榪橀渶瑕佺戶緇姫鍔涳紝瀵瑰挶鐩墠鐨勯渶姹傛潵璇磋嚜宸辯鐞嗘暟鎹紝鍗充嬌涓涓嚎紼嬮兘鎼炲緱瀹氾紝鍥犱負(fù)涓嶈繃鍖哄尯鍑犱釜琛紝鍑犲崄涓囨潯璁板綍鑰屽凡錛屼笉榪囪繖縐?/span>10騫村墠鍜卞氨浼?xì)鐨勬妧鏈繕鐪熸槸鎷夸笉鍑烘墜錛屾庝箞鐨勪篃寰楀仛寰楁洿濂戒竴鐐癸紝鍛靛懙錛岀戶緇爺絀跺惂錛屽綰跨▼涓嬪唴瀛樻暟鎹簱錛屼粠姒傚康涓婄湅鐨勭‘鏄釜寰堟湁鍚稿紩鍔涚殑涓滆タ錛岃鏄ц兘璺熷緱涓婏紝鍏跺疄鍦ㄥ緢澶氬湴鏂瑰彲浠ュ彇浠f櫘閫氱殑鏁版嵁緇撴瀯鐢ㄦ硶浜嗭紝鍙互澶уぇ鍑忓皯緙栫▼闅懼害錛岀敋鑷蟲垜鍦ㄦ兂濡傛灉鏈変釜鏀寔浜嬪姟鐨勫唴瀛樻暟鎹簱錛屼箣鍓嶈璁$殑cad綾昏蔣浠剁殑undo/redo閮藉彲浠ョ敤浜嬪姟鏉ュ疄鐜幫紝瀹屽叏鍙互鎶涘純鍏堝墠璁捐鐨勫鏉傜粨鏋勶紝鍏跺疄榪欑涓滆タ鍗充嬌涓嶇敤鍐呭瓨鏁版嵁搴撳氨綆楁槸鐢ㄤ釜sqlite閮藉畬鍏ㄨ兘鎼炲畾錛屽攭錛屽線浜嬩笉鍫洖棣栧晩錛岀湅鏉ユ暟鎹簱鏂歸潰鐨勭‘寰楀鑺卞姛澶紝鐗瑰埆鏄綰跨▼鍜屽垎甯冨紡妯″紡涓嬬殑鍐呭瓨鏁版嵁搴撱?/span>
鏈榪戠粰鑷繁鎹簡涓佹澘錛屽繖浜嗕竴孌墊椂闂達(dá)紝鎵浠ユ湁鍑犱釜鏈堟病鍐欏崥瀹紝浠婂悗榪樻槸瑕佷簤鍙栧鍐欏晩錛屽懙鍛點?/span>
鎹㈡潵鏂板湴鏂癸紝絎竴浠跺ぇ鐨勪簨鎯呭氨鏄慨鏀瑰悗绔灦鏋勫拰閫氫俊鍗忚錛屾灦鏋勪篃璁捐寰楀緢鏅氾紝鍥犱負(fù)榪欒竟鐨勪笟鍔′笉闇瑕佸お榪囧鏉傜殑鍚庣錛屾墍浠ュ氨綆鍗曡璁′簡涓涓嬶紝鍩烘湰鏄弬鐓?/span>web鐨勬ā鍨嬶紝絎﹀悎鎴戜竴璐殑鍚?/span>web瀛︿範(fàn)鐨勬濇兂錛屽紕浜嗕釜gate綆$悊鍏ュ彛錛岀浉褰撲簬web涓嬬殑webserver錛屽悗绔叾浠栨湇鍔″櫒鎸傚湪璇?/span>gate涓嬶紝鐩稿綋浜?/span>web妯″瀷涓嬬殑appserver錛屾垨鑰?/span>fastcgi妯″瀷鐨?/span>fastcgi榪涚▼錛?/span>gate涓婄鐞嗚繛鎺ャ佸悎娉曟ф嫻嬨佺櫥褰曘佸姞瀵嗐佸帇緙┿佺紦瀛樸?/span>Gate鍜屽悗绔氫俊鏈潵鎯沖弬鐓?/span>fastcgi鍗忚錛屼絾鐪嬩簡涔嬪悗瑙夊緱fastcgi鍗忚榪樻槸澶嶆潅浜嗭紝鎵浠ュ氨璁捐浜嗕竴涓洿綆鍗曠殑鍗忚錛?/span>gate鍜屽悗绔?/span>server涔嬮棿鍙紶閫?/span>key:value鍨嬫暟鎹錛?/span>value涓嶅眬闄愪簬瀛楃涓詫紝鍙互鏄換鎰忔暟鎹紝榪欐牱鍩烘湰婊¤凍浜嗗綋鍓嶇殑闇姹傦紝絎竴鐗堟斁涓婂幓涔嬪悗涔熻繍琛岃壇濂斤紝鍒頒粖澶╀篃鍩烘湰鎸佺畫紼沖畾榪愯蹇竴涓湀浜嗭紝娌″嚭榪囦粈涔堜簨鎯呫傜敱浜庡湪gate榪欒竟緙撳啿浜?/span>job綆$悊錛屾墍浠ュ悗绔?/span>server鍗囩駭寰堟柟渚匡紝闅忔椂鍙叧闂洿鏂幫紝gate浼?xì)鍦ńH楀彛鏃墮棿鍐呭皢鏈墽琛屽畬鎴愮殑浠誨姟閲嶆柊鎻愪氦錛屾湁姝ゅ姛鑳藉彲鏀懼績澶ц儐鐨勫崌綰у悗绔紝榪欎釜鏈堣繖鏍風(fēng)殑宸ヤ綔鍋氫簡鍑犳錛屽湪鏋舵瀯淇敼涔嬪墠榪欐牱鐨勪簨鎯呭嚑涔庢槸涓嶆暍鍋氱殑錛屽洜涓轟竴鏃﹀崌綰ф墍鏈夌敤鎴峰叏閮ㄦ柇寮榪炴帴錛岃岀幇鍦ㄧ敤鎴峰垯鍩烘湰鏃犳劅瑙夈?/span>Gate涓婄殑緙撳瓨灞備負(fù)鍚庣鍑忓皯浜嗕竴浜涘帇鍔涳紝榪欎釜緙撳瓨鏄寜鐓ц姹傜殑md5涓?/span>key鍋氱殑錛屽茍鏍規(guī)嵁鍗忚閰嶇疆鏃舵晥錛屾湁姝?/span>cache鍚庣澶у鏁版湇鍔″彲涓嶈璁$紦瀛樻垨闄嶄綆緙撳瓨璁捐鐨勫鏉傚害銆?/span>Gate涓婇拡瀵規(guī)晱鎰熸暟鎹粺涓鍋氫簡鍔犲瘑澶勭悊錛屼富瑕佹槸杈涜緵鑻﹁嫤鏁寸悊鐨勬暟鎹笉鑳借交鏄撹绔炰簤瀵規(guī)墜紿冨幓浜嗭紝鍛靛懙銆?/span>Gate涔熷仛浜嗗帇緙╋紝鐜板湪鏄拡瀵?/span>>=128闀垮害鐨勫寘榪涜鍘嬬緝錛屼嬌鐢ㄤ簡qlz錛屽帇緙╂晥鐜囪繕鏄緢涓嶉敊鐨勶紝閫熷害寰堝揩銆傜洰鍓?/span>gate鍚庣鎸傛帴鐨勬棦鏈?/span>win涓婄殑server涔熸湁linux涓婄殑server錛岃繖鏄竴寮濮嬪氨榪欎箞瑙勫垝鐨勶紝鐜板湪鐪嬫潵褰撳垵鐨勭洰鐨勮揪鍒頒簡錛屾販鍚堝彂鎸ュ悇鑷殑浼樺娍錛屾湁鐨勯」鐩湪鍘熸湁緋葷粺涓婅窇寰楀ソ濂界殑錛屾病蹇呰閲嶆柊寮鍙戝槢銆?/span>
鍗忚璁捐涓婃湰鏉ユ垜鏄鍒掍簩榪涘埗娣峰悎json鏍煎紡錛屼互浜岃繘鍒朵負(fù)涓伙紝浣嗗皾璇曚簡涓涓崗璁箣鍚庡彂鐜幫紝榪欒竟鐨勫皬浼欏瓙浠鐩存帴鎿嶇旱鍐呭瓨鏅亶鎶鏈笉榪囧叧錛屼粬浠ぇ澶氭槸浠?/span>java寮濮嬬殑錛屽悗鏉ユ墠瀛︿範(fàn)c錛屽瀛楃涓茬敤寰楀緢鐔熺粌錛屾潈琛′箣涓嬮噰鐢ㄤ簡json涓轟富錛屾販鍚堜簩榪涘埗涓鴻緟鐨勬柟妗堬紝榪欐牱淇敼涔嬪悗鐨勫崗璁拰浠栦滑涔嬪墠浣跨敤鐨?/span>xml綾諱技錛屽氨鏄洿灝忔洿绱у噾涓鐐癸紝浣跨敤鏂規(guī)硶涓婂緢綾諱技錛屼粠鐜板湪鐨勬晥鏋滅湅榪樿錛屼嬌鐢?/span>json鏍煎紡涓轟富鐨勫崗璁綋鐒朵笉鑳借窡浣跨敤pb涔嬬被鐨勭浉姣旓紝瑙f瀽鏁堢巼涓婂ぇ綰﹀崟綰跨▼姣忕瑙f瀽20鏉ヤ竾10涓?/span>obj鐨勫璞★紝閫熷害涓婁笉綆楀お蹇絾涔熶笉綆楀お鎱紝瀵逛粯涓縐掕嚦澶氬嚑涓囨暟鎹寘鐨勫簲鐢ㄦ潵璇磋繕鏄鐨勶紝鍥犱負(fù)鐜板湪cpu璁$畻鑳藉姏鏅亶榪囧墿錛屼嬌鐢?/span>json鐨勫彟涓ソ澶勫氨鏄鍒犲瓧孌靛緢鏂逛究錛屽悇涓増鏈箣闂翠笉闇瑕佸お鑰冭檻鐗堟湰鐨勯棶棰橈紝瑕佹槸鍏ㄧ敤浜岃繘鍒舵牸寮忓氨瑕侀夯鐑﹀緢澶氫簡錛屽湪浣跨敤鍘嬬緝涔嬪悗錛岀洰鍓嶇殑json鏍煎紡鍗忚姣斾箣鍓嶇殑xml鍗忚鍑忓皯浜?/span>2/3鐨勫甫瀹戒嬌鐢紝鎬諱綋鏁堟灉榪樻槸鍙互鐨勩備嬌鐢?/span>json璋冭瘯涔熷緢鏂逛究錛屾垜鎻愪緵浜嗕竴涓伐鍏鳳紝鍐欏悗绔殑灝辯洿鎺ョ敤璇ュ伐鍏鋒寜鐓?/span>json鏍煎紡鏀跺彂鏁版嵁錛屾棤闇絳?/span>client寮鍙戝ソ浜嗗啀鍘誨仛鍚庣錛屼箣鍚庡仛client涔熷緢鏂逛究錛岃姹傚彂榪囧幓涔嬪悗榪斿洖鏉ョ殑灝辨槸鏍囧噯鐨?/span>json鏍煎紡鏁版嵁錛屽悓鏍風(fēng)殑瑙f瀽鏂規(guī)硶錛屾瘡涓笉鍚岀殑搴旂敤灝辨寜鐓т笉鍚岀殑鏍煎紡澶勭悊涓嬪嵆鍙紝鍜?/span>web絳夋ā鍧椾氦浜掍篃寰堟柟渚匡紝榪欏彲綆楁槸棰濆鐨勫ソ澶勪簡銆?/span>
鎬諱箣錛岃櫧鐒?/span>json鏍煎紡瀛樺偍鏁堢巼鍜岃В鏋愭晥鐜囪窡浜岃繘鍒舵柟寮忚繕宸崐涓噺綰у埌涓涓噺綰э紝浣嗗悎鐞嗕嬌鐢ㄨ繕鏄彲浠ョ殑錛岀壒鍒槸璺?/span>xml鐩告瘮浼樺娍寰堟槑鏄撅紝鏉冭 浣跨敤鍚э紝褰撶劧榪芥眰鏋佽嚧鏁堢巼鍙兘榪樻槸鐢?/span>pb涔嬬被鐨勬洿鍚堥備竴浜涳紝鎴栬呰嚜宸辮璁?/span>tlv鏍煎紡銆?/span>