锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲午夜在线电影,mm1313亚洲精品无码又大又粗,亚洲暴爽av人人爽日日碰http://www.tkk7.com/webjlwang/zh-cnWed, 16 Jul 2025 02:02:54 GMTWed, 16 Jul 2025 02:02:54 GMT60璋堣皥瀵笿ava涓璘nicode銆佺紪鐮佺殑鐞嗚В(杞?http://www.tkk7.com/webjlwang/archive/2011/07/26/355058.htmlwebjlwangwebjlwangTue, 26 Jul 2011 06:00:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/26/355058.htmlhttp://www.tkk7.com/webjlwang/comments/355058.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/26/355058.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/355058.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/355058.html闃呰鍏ㄦ枃

webjlwang 2011-07-26 14:00 鍙戣〃璇勮
]]>
Twitter鈥滈哺楸尖濇晠闅滄妧鏈墫鏋?杞嚜Tim blog)http://www.tkk7.com/webjlwang/archive/2011/07/11/354105.htmlwebjlwangwebjlwangMon, 11 Jul 2011 05:02:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/11/354105.htmlhttp://www.tkk7.com/webjlwang/comments/354105.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/11/354105.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/354105.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/354105.html闃呰鍏ㄦ枃

webjlwang 2011-07-11 13:02 鍙戣〃璇勮
]]>
Twitter鏋舵瀯鍥?cache綃?http://www.tkk7.com/webjlwang/archive/2011/07/11/354106.htmlwebjlwangwebjlwangMon, 11 Jul 2011 05:02:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/11/354106.htmlhttp://www.tkk7.com/webjlwang/comments/354106.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/11/354106.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/354106.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/354106.html闃呰鍏ㄦ枃

webjlwang 2011-07-11 13:02 鍙戣〃璇勮
]]>
杞婚噺綰ф秷鎭?MQ)鏈嶅姟鍣↘estrel 鍜?Redishttp://www.tkk7.com/webjlwang/archive/2011/07/11/354104.htmlwebjlwangwebjlwangMon, 11 Jul 2011 05:01:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/11/354104.htmlhttp://www.tkk7.com/webjlwang/comments/354104.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/11/354104.html#Feedback1http://www.tkk7.com/webjlwang/comments/commentRss/354104.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/354104.html闃呰鍏ㄦ枃

webjlwang 2011-07-11 13:01 鍙戣〃璇勮
]]>
apache activeMQhttp://www.tkk7.com/webjlwang/archive/2011/07/04/353640.htmlwebjlwangwebjlwangMon, 04 Jul 2011 06:01:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/04/353640.htmlhttp://www.tkk7.com/webjlwang/comments/353640.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/04/353640.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/353640.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/353640.htmlhttp://www.tkk7.com/zhuanggl/archive/2010/07/14/326119.html

webjlwang 2011-07-04 14:01 鍙戣〃璇勮
]]>
facebook鑳屽悗鐨勮蔣浠訛紙杞級(jí)http://www.tkk7.com/webjlwang/archive/2011/07/04/353636.htmlwebjlwangwebjlwangMon, 04 Jul 2011 05:42:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/04/353636.htmlhttp://www.tkk7.com/webjlwang/comments/353636.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/04/353636.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/353636.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/353636.html闃呰鍏ㄦ枃

webjlwang 2011-07-04 13:42 鍙戣〃璇勮
]]>
寰崥瀹炵幇鏂瑰紡鍒嗘瀽http://www.tkk7.com/webjlwang/archive/2011/07/04/353634.htmlwebjlwangwebjlwangMon, 04 Jul 2011 05:23:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/04/353634.htmlhttp://www.tkk7.com/webjlwang/comments/353634.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/04/353634.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/353634.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/353634.htmlhttp://blog.csdn.net/cleanfield/article/details/6339428

webjlwang 2011-07-04 13:23 鍙戣〃璇勮
]]>
浠嬬粛memcached姣旇緝濂界殑鏂囩珷榪炶澆http://www.tkk7.com/webjlwang/archive/2011/07/04/353633.htmlwebjlwangwebjlwangMon, 04 Jul 2011 05:08:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/07/04/353633.htmlhttp://www.tkk7.com/webjlwang/comments/353633.htmlhttp://www.tkk7.com/webjlwang/archive/2011/07/04/353633.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/353633.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/353633.htmlhttp://tech.idv2.com/2008/07/10/memcached-001/

webjlwang 2011-07-04 13:08 鍙戣〃璇勮
]]>
鑷姩鐢熸垚Webservice瀹㈡埛绔侀儴緗蹭唬鐮?/title><link>http://www.tkk7.com/webjlwang/archive/2011/06/27/353083.html</link><dc:creator>webjlwang</dc:creator><author>webjlwang</author><pubDate>Mon, 27 Jun 2011 09:22:00 GMT</pubDate><guid>http://www.tkk7.com/webjlwang/archive/2011/06/27/353083.html</guid><wfw:comment>http://www.tkk7.com/webjlwang/comments/353083.html</wfw:comment><comments>http://www.tkk7.com/webjlwang/archive/2011/06/27/353083.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/webjlwang/comments/commentRss/353083.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/webjlwang/services/trackbacks/353083.html</trackback:ping><description><![CDATA[axis鍙互鏍規(guī)嵁wsdl鏂囦歡鐢熸垚瀵瑰簲鐨勫鎴風(fēng)銆佹湇鍔$java浠g爜錛岄潪甯告柟渚匡紝鍏蜂綋浣跨敤鏂瑰紡涓猴細(xì)<br /><div>java org.apache.axis.wsdl.WSDL2Java-t -s D:\test\webservice\TestCaseAndWsdl\TestService\TaskService.wsdl</div><br />涓婅堪classpath娌℃湁璁劇疆錛岄渶瑕佽嚜琛岃瀹氬紩鐢╦ar鏂囦歡銆?img src ="http://www.tkk7.com/webjlwang/aggbug/353083.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/webjlwang/" target="_blank">webjlwang</a> 2011-06-27 17:22 <a href="http://www.tkk7.com/webjlwang/archive/2011/06/27/353083.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>綰㈣柉 [IBM DW] 浣跨敤 Hibernate Shards 榪涜鍒囧垎http://www.tkk7.com/webjlwang/archive/2011/06/07/351876.htmlwebjlwangwebjlwangTue, 07 Jun 2011 10:10:00 GMThttp://www.tkk7.com/webjlwang/archive/2011/06/07/351876.htmlhttp://www.tkk7.com/webjlwang/comments/351876.htmlhttp://www.tkk7.com/webjlwang/archive/2011/06/07/351876.html#Feedback0http://www.tkk7.com/webjlwang/comments/commentRss/351876.htmlhttp://www.tkk7.com/webjlwang/services/trackbacks/351876.html

褰撳叧緋繪暟鎹簱璇曞浘鍦ㄤ竴涓崟涓琛ㄤ腑瀛樺偍鏁?TB 鐨勬暟鎹椂錛屾繪ц兘緇忓父浼?xì)闄嶄綆銆傛樉鐒?dòng)灱屽?guī)墍鏈夋暟鎹紪绱㈠紩涓嶄粎瀵逛簬璇昏屼笖瀵逛簬鍐欓兘寰堣楁椂銆傚洜涓?NoSQL 鏁版嵁鍟嗗簵灝ゅ叾閫傚悎瀛樺偍澶у瀷鏁版嵁錛堝 Google 鐨?Bigtable錛夛紝鏄劇劧 NoSQL 鏄竴縐嶉潪鍏崇郴鏁版嵁搴撴柟娉曘傚浜庡懼悜浜庝嬌鐢?ACID-ity 鍜屽疄浣撶粨鏋勫叧緋繪暟鎹簱鐨勫紑鍙戜漢鍛樺強(qiáng)闇瑕佽繖縐嶇粨鏋勭殑欏圭洰鏉ヨ錛屽垏鍒嗘槸涓涓護(hù)浜烘尟濂嬬殑鍙夋柟娉曘?/p>

鍒囧垎 鏄暟鎹簱鍒嗗尯鐨勪竴涓垎鏀紝浣嗘槸瀹冧笉鏄湰鍦版暟鎹簱鎶鏈?— 鍒囧垎鍙戠敓鍦ㄥ簲鐢ㄧ▼搴忕駭鍒傚湪鍚勭鍒囧垎瀹炵幇涓紝Hibernate Shards 鏄?Java™ 鎶鏈笘鐣屼腑鏈鍙楁榪庣殑涓涓傝繖涓伒媧葷粷濡欑殑欏圭洰鍙互璁╂?zhèn)ㄤ娇鐢ㄦ槧灏勮嚦閫昏緫鏁版嵁搴撶殑 POJO 瀵瑰垏鍒嗘暟鎹泦榪涜鍑犱箮鏃犵紳鎿嶄綔錛堟垜灝嗗湪涓嬫枃綆瑕佷粙緇?“鍑犱箮” 鐨勫師鍥狅級(jí)銆備嬌鐢?Hibernate Shards 鏃訛紝鎮(zhèn)ㄦ棤欏誨皢鎮(zhèn)ㄧ殑 POJO 鐗瑰埆鏄犲皠鑷沖垏鍒?— 鎮(zhèn)ㄥ彲浠ュ儚浣跨敤 Hibernate 鏂規(guī)硶瀵逛換浣曞父瑙佸叧緋繪暟鎹簱榪涜鏄犲皠鏃朵竴鏍峰鍏惰繘琛屾槧灝勩侶ibernate Shards 鍙互涓烘?zhèn)ń帯鐞嗕綆珩斿埆鐨勫垏鍒嗕徽d姟銆?/p>

浜嬪疄涓婏紝Hibernate Shards 鐨勭紪鐮佸伐浣滄瘮杈冪畝鍗曘傚叾涓叧閿殑閮ㄥ垎鍦ㄤ簬鍒ゆ柇 濡備綍榪涜鍒囧垎浠ュ強(qiáng)瀵逛粈涔堣繘琛屽垏鍒?/em>銆?/p>

鍒囧垎綆浠?/a>

鏁版嵁搴撳垏鍒?/em> 鏄竴涓浐鏈夌殑鍏崇郴嫻佺▼錛屽彲浠ラ氳繃涓浜涢昏緫鏁版嵁鍧楀皢涓涓〃鐨勮鍒嗕負(fù)涓嶅悓鐨勫皬緇勩備緥濡傦紝濡傛灉鎮(zhèn)ㄦ鍦ㄦ牴鎹椂闂存埑瀵逛竴涓悕涓?foo 鐨勮秴澶у瀷琛ㄨ繘琛屽垎鍖猴紝2010 騫?8 鏈堜箣鍓嶇殑鎵鏈夋暟鎹兘灝嗚繘鍏ュ垎鍖?A錛岃屼箣鍚庣殑鏁版嵁鍒欏叏閮ㄨ繘鍏ュ垎鍖?B銆傚垎鍖哄彲浠ュ姞蹇鍐欓熷害錛屽洜涓哄畠浠殑鐩爣鏄崟鐙垎鍖轟腑鐨勮緝?yōu)畯鍨嬫暟鎹泦銆?/p>

鍒嗗尯鍔熻兘騫朵笉鎬繪槸鍙敤鐨勶紙MySQL 鐩村埌 5.1 鐗堟湰鍚庢墠鏀寔錛夛紝鑰屼笖鍏墮渶瑕佺殑鍟嗕笟緋葷粺鐨勬垚鏈篃璁╀漢鏈涜屽嵈姝ャ傛洿閲嶈鐨勬槸錛屽ぇ閮ㄥ垎鍒嗗尯瀹炵幇鍦ㄥ悓涓涓墿鐞嗘満涓婂瓨鍌ㄦ暟鎹紝鎵浠ュ彈鍒扮‖浠跺熀紜鐨勫獎(jiǎng)鍝嶃傞櫎姝や箣澶栵紝 鍒嗗尯涔熶笉鑳介壌鍒‖浠剁殑鍙潬鎬ф垨鑰呰緙轟箯鍙潬鎬с傚洜姝わ紝寰堝鏅烘収鐨勪漢浠紑濮嬪鎵捐繘琛屼幾緙╃殑鏂版柟娉曘?/p>

鍒囧垎 瀹炶川涓婃槸鏁版嵁搴撶駭鍒殑鍒嗗尯錛氬畠涓嶆槸閫氳繃鏁版嵁鍧楀垎鍓叉暟鎹〃鐨勮錛岃屾槸閫氳繃涓浜涢昏緫鏁版嵁鍏冪礌瀵規(guī)暟鎹簱鏈韓榪涜鍒嗗壊錛堥氬父璺ㄤ笉鍚岀殑璁$畻鏈猴級(jí)銆備篃灝辨槸璇達(dá)紝鍒囧垎涓嶆槸灝?em>鏁版嵁琛?/em> 鍒嗗壊鎴愬皬鍧楋紝鑰屾槸灝嗘暣涓?em>鏁版嵁搴?/em> 鍒嗗壊鎴愬皬鍧椼?/p>

鍒囧垎鐨勪竴涓吀鍨嬬ず渚嬫槸鍩轟簬鏍規(guī)嵁鍖哄煙瀵逛竴涓瓨鍌ㄤ笘鐣岃寖鍥村鎴鋒暟鎹殑澶у瀷鏁版嵁搴撹繘琛屽垎鍓詫細(xì)鍒囧垎 A 鐢ㄤ簬瀛樺偍緹庡浗鐨勫鎴蜂俊鎭紝鍒囧垎 B 鐢ㄦ埛瀛樺偍浜氭床鐨勫鎴蜂俊鎭紝鍒囧垎 C 嬈ф床錛岀瓑銆傝繖浜涘垏鍒嗗垎鍒浜庝笉鍚岀殑璁$畻鏈轟笂錛屼笖姣忎釜鍒囧垎灝嗗瓨鍌ㄦ墍鏈夌浉鍏蟲暟鎹紝濡傚鎴峰枩濂芥垨璁㈣喘鍘嗗彶銆?/p>

鍒囧垎鐨勫ソ澶勶紙濡傚垎鍖轟竴鏍鳳級(jí)鍦ㄤ簬瀹冨彲浠ュ帇緙╁ぇ鍨嬫暟鎹細(xì)鍗曠嫭鐨勬暟鎹〃鍦ㄦ瘡涓垏鍒嗕腑鐩稿杈冨皬錛岃繖鏍峰氨鍙互鏀寔鏇村揩閫熺殑璇誨啓閫熷害錛屼粠鑰屾彁楂樻ц兘銆傚垏鍒? 榪樺彲浠ユ敼鍠勫彲闈犳э紝鍥犱負(fù)鍗充究涓涓垏鍒嗘剰澶栧け鏁堬紝鍏朵粬鍒囧垎浠嶇劧鍙互鏈嶅姟鏁版嵁銆傝屼笖鍥犱負(fù)鍒囧垎鏄湪搴旂敤紼嬪簭灞傞潰榪涜鐨勶紝鎮(zhèn)ㄥ彲浠ュ涓嶆敮鎸佸父瑙勫垎鍖虹殑鏁版嵁搴撹繘琛屽垏鍒? 澶勭悊銆傝祫閲戞垚鏈緝浣庡悓鏍蜂篃鏄竴涓綔鍦ㄤ紭鍔褲?/p>

鍒囧垎鍜岀瓥鐣?/a>

鍍忓緢澶氬叾浠栨妧鏈竴鏍鳳紝榪涜鍒囧垎鏃朵篃闇瑕佷綔鍑洪儴鍒嗗Ε鍗忋傚洜涓哄垏鍒嗕笉鏄竴欏規(guī)湰鍦版暟鎹簱鎶鏈?— 涔熷氨鏄錛屽繀欏誨湪搴旂敤紼嬪簭涓疄鐜?—鍦ㄥ紑濮嬪垏鍒嗕箣鍓嶉渶瑕佸埗瀹氬嚭鎮(zhèn)ㄧ殑鍒囧垎絳栫暐銆傝繘琛屽垏鍒嗘椂涓婚敭鍜岃法鍒囧垎鏌ヨ閮芥壆婕旈噸瑕佽鑹詫紝涓昏閫氳繃瀹氫箟鎮(zhèn)ㄤ笉鍙互鍋氫粈涔堝疄鐜般?/p>

涓婚敭
鍒囧垎鍒╃敤澶氫釜鏁版嵁搴擄紝鍏朵腑鎵鏈夋暟鎹簱閮界嫭绔嬭搗浣滅敤錛屼笉騫叉秹鍏朵粬鍒囧垎銆傚洜姝わ紝濡傛灉鎮(zhèn)ㄤ緷璧栦簬鏁版嵁搴撳簭鍒楋紙濡傝嚜鍔ㄤ富閿敓鎴愶級(jí)錛屽緢鏈夊彲鑳藉湪涓涓暟鎹簱闆嗕腑灝嗗嚭鐜板悓 涓涓富閿傚彲浠ヨ法鍒嗗竷寮忔暟鎹簱鍗忚皟搴忓垪錛屼絾鏄繖鏍蜂細(xì)澧炲姞緋葷粺鐨勫鏉傜▼搴︺傞伩鍏嶇浉鍚屼富閿渶瀹夊叏鐨勬柟娉曞氨鏄搴旂敤紼嬪簭錛堝簲鐢ㄧ▼搴忓皢綆$悊鍒囧垎緋葷粺錛夌敓鎴愪富閿?/p>

璺ㄥ垏鍒嗘煡璇?/strong>
澶ч儴鍒嗗垏鍒嗗疄鐜幫紙鍖呮嫭 Hibernate Shards錛変笉鏀寔璺ㄥ垏鍒嗘煡璇紝榪欏氨鎰忓懗鐫錛屽鏋滄?zhèn)ㄦ儧_埄鐢ㄤ笉鍚屽垏鍒嗙殑涓や釜鏁版嵁闆嗭紝灝卞繀欏誨鐞嗛澶栫殑闀垮害銆傦紙鏈夎叮鐨勬槸錛孉mazon 鐨? SimpleDB 涔熺姝㈣法鍩熸煡璇級(jí)渚嬪錛屽鏋滃皢緹庡浗瀹㈡埛淇℃伅瀛樺偍鍦ㄥ垏鍒?1 涓紝榪橀渶瑕佸皢鎵鏈夌浉鍏蟲暟鎹瓨鍌ㄥ湪姝ゃ傚鏋滄?zhèn)疂璇暈畣閭d簺鏁版嵁瀛樺偍鍦ㄥ垏鍒?2 涓紝鎯呭喌灝變細(xì)鍙樺緱澶嶆潅錛岀郴緇熸ц兘涔熷彲鑳藉彈褰卞搷銆傝繖縐嶆儏鍐佃繕?shù)笌涔嬪墠鎻愬埌鐨勪竴鐐規(guī)湁鍏?— 濡傛灉鎮(zhèn)ㄥ洜涓烘煇縐嶅師鍥犻渶瑕佽繘琛岃法鍒囧垎榪炴帴錛屾渶濂介噰鐢ㄤ竴縐嶅彲浠ユ秷闄ら噸澶嶇殑鏂瑰紡綆$悊閿紒

寰堟槑鏄撅紝鍦ㄥ緩绔嬫暟鎹簱鍓嶅繀欏誨叏闈㈣冭檻鍒囧垎絳栫暐銆備竴鏃﹂夋嫨浜?jiǎn)涓涓壒瀹氱殑鏂瑰悜涔嬪悗錛屾?zhèn)ㄥ樊涓嶅灏辫瀹兙l戝畾浜?— 榪涜鍒囧垎鍚庡緢闅鵑殢渚跨Щ鍔ㄦ暟鎹簡(jiǎn)銆?/p>

涓涓瓥鐣ョず渚?/a>

鍥犱負(fù)鍒囧垎灝嗘?zhèn)ňl戝畾鍦ㄤ竴涓嚎鍨嬫暟鎹ā鍨嬩腑錛堜篃灝辨槸璇達(dá)紝鎮(zhèn)ㄦ棤娉曡交鏉捐繛鎺ヤ笉鍚屽垏鍒嗕腑鐨勬暟鎹級(jí)錛屾?zhèn)ㄥ繀椤诲濡備綍鍦ㄦ瘡涓垏鍒嗕腑瀵规暟鎹畼q涜閫昏緫緇勭粐鏈変竴涓竻 鏅扮殑姒傚康銆傝繖鍙互閫氳繃鑱氱劍鍩熶腑鐨勪富瑕佽妭鐐瑰疄鐜般傚鍦ㄤ竴涓數(shù)瀛愬晢鍔$郴緇熶腑錛屼富瑕佽妭鐐瑰彲浠ユ槸涓涓鍗曟垨鑰呬竴涓鎴楓傚洜姝わ紝濡傛灉鎮(zhèn)ㄩ夋嫨 “瀹㈡埛” 浣滀負(fù)鍒囧垎絳栫暐鐨勮妭鐐癸紝閭d箞涓庡鎴鋒湁鍏崇殑鎵鏈夋暟鎹皢縐誨姩鑷沖悇鑷殑鍒囧垎涓紝浣嗘槸鎮(zhèn)ㄤ粛鐒跺繀欏婚夋嫨灝嗚繖浜涙暟鎹Щ鍔ㄨ嚦鍝釜鍒囧垎銆?/p>

瀵逛簬瀹㈡埛鏉ヨ錛屾?zhèn)ㄥ彲浠ユ犚?guī)嵁鎵鍦ㄥ湴錛堟媧層佷簹媧層侀潪媧茬瓑錛夊垏鍒嗭紝鎴栬呮?zhèn)ㄤ篃鍙互鏍规嵁鍏朵粬鍏冪礌杩涜鍒囧垎銆傝繖鐢辨?zhèn)ㄥ啗_畾銆備絾鏄紝鎮(zhèn)ㄧ殑鍒囧垎絳栫暐搴旇鍖呭惈灝? 鏁版嵁鍧囧寑鍒嗗竷鑷蟲墍鏈夊垏鍒嗙殑鏂規(guī)硶銆傚垏鍒嗙殑鎬諱綋姒傚康鏄皢澶у瀷鏁版嵁闆嗗垎鍓蹭負(fù)灝忓瀷鏁版嵁闆嗭紱鍥犳錛屽鏋滀竴涓壒瀹氱殑鐢?shù)瀛愬晢鍔″煙鍖呭惈涓涓ぇ鍨嬬殑嬈ф床瀹㈡埛闆嗕互鍙?qiáng)涓涓浉瀵瑰皬 鐨勭編鍥藉鎴烽泦錛岄偅涔堝熀浜庡鎴鋒墍鍦ㄥ湴鐨勫垏鍒嗗彲鑳芥病鏈変粈涔堟剰涔夈?/p>

鍥炲埌姣旇禌 — 浣跨敤鍒囧垎錛?/a>

鐜板湪璁╂垜浠洖鍒版垜緇忓父鎻愬埌鐨勮禌璺戝簲鐢ㄧ▼搴忕ず渚嬩腑錛屾垜鍙互鏍規(guī)嵁姣旇禌鎴栧弬璧涜呰繘琛屽垏鍒嗐傚湪鏈ず渚嬩腑錛屾垜灝嗘牴鎹瘮璧涜繘琛屽垏鍒嗭紝鍥犱負(fù)鎴戠湅鍒板煙鏄牴鎹弬 鍔犱笉鍚屾瘮璧涚殑鍙傝禌鑰呰繘琛岀粍緇囩殑銆傚洜姝わ紝姣旇禌鏄煙鐨勬牴銆傛垜涔熷皢鏍規(guī)嵁姣旇禌璺濈榪涜鍒囧垎錛屽洜涓烘瘮璧涘簲鐢ㄧ▼搴忓寘鍚笉鍚岄暱搴﹀拰涓嶅悓鍙傝禌鑰呯殑澶氶」姣旇禌銆?/p>

璇鋒敞鎰忥細(xì)鍦ㄨ繘琛屼笂榪板喅瀹氭椂錛屾垜宸茬粡鎺ュ彈浜?jiǎn)涓涓Ε鍗忥細(xì)濡傛灉涓涓弬璧涜呭弬鍔犱簡(jiǎn)涓嶆涓欏規(guī)瘮璧涳紝浠栦滑鍒嗗睘涓嶅悓鐨勫垏鍒嗭紝閭h鎬庝箞鍔?鍛紵Hibernate Shards 錛堝儚澶у鏁板垏鍒嗗疄鐜頒竴鏍鳳級(jí)涓嶆敮鎸佽法鍒囧垎榪炴帴銆傛垜蹇呴』蹇嶅彈榪欎簺杞誨井涓嶄究錛屽厑璁稿弬璧涜呰鍖呭惈鍦ㄥ涓垏鍒嗕腑 — 涔熷氨鏄錛屾垜灝嗗湪鍙傝禌鑰呭弬鍔犵殑澶氫釜姣旇禌鍒囧垎涓噸寤鴻鍙傝禌鑰呫?/p>

涓轟簡(jiǎn)綆渚胯搗瑙侊紝鎴戝皢鍒涘緩涓や釜鍒囧垎錛氫竴涓敤浜?10 鑻遍噷浠ヤ笅鐨勬瘮璧涳紱鍙︿竴涓敤浜?10 鑻遍噷浠ヤ笂鐨勬瘮璧涖?/p>

瀹炵幇 Hibernate Shards

Hibernate Shards 鍑犱箮鍙互涓庣幇鏈?Hibernate 欏圭洰鏃犵紳緇撳悎浣跨敤銆傚敮涓闂鏄?Hibernate Shards 闇瑕佷竴浜涚壒瀹氫俊鎭拰琛屼負(fù)銆傛瘮濡傦紝闇瑕佷竴涓垏鍒嗚闂瓥鐣ャ佷竴涓垏鍒嗛夋嫨絳栫暐鍜屼竴涓垏鍒嗗鐞嗙瓥鐣ャ傝繖浜涙槸鎮(zhèn)ㄥ繀欏誨疄鐜扮殑鎺ュ彛錛岃櫧鐒墮儴鍒嗘儏鍐典笅錛屾?zhèn)ㄥ彲浠ヤ娇鐢ㄩ粯璁そ{? 鐣ャ傛垜浠皢鍦ㄥ悗闈㈢殑閮ㄥ垎閫愪釜浜?jiǎn)瑙e悇涓帴鍙c?/p>

ShardAccessStrategy

鎵ц鏌ヨ鏃訛紝Hibernate Shards 闇瑕佷竴涓喅瀹氶涓垏鍒嗐佺浜屼釜鍒囧垎鍙?qiáng)鍚幘l垏鍒嗙殑鏈哄埗銆侶ibernate Shards 鏃犻渶紜畾鏌ヨ浠涔堬紙榪欐槸 Hibernate Core 鍜屽熀紜鏁版嵁搴撻渶瑕佸仛鐨勶級(jí)錛屼絾鏄畠紜疄鎰忚瘑鍒幫紝鍦ㄨ幏寰楃瓟妗堜箣鍓嶅彲鑳介渶瑕佸澶氫釜鍒囧垎榪涜鏌ヨ銆傚洜姝わ紝Hibernate Shards 鎻愪緵浜?jiǎn)涓たU嶆瀬鍏峰垱鎰忕殑閫昏緫瀹炵幇鏂規(guī)硶錛氫竴縐嶆柟娉曟槸鏍規(guī)嵁搴忓垪鏈哄埗錛堜竴嬈′竴涓級(jí)瀵瑰垏鍒嗚繘琛屾煡璇紝鐩村埌鑾峰緱絳旀涓烘錛涘彟涓縐嶆柟娉曟槸騫惰璁塊棶絳栫暐錛岃繖縐嶆柟娉曚嬌鐢ㄤ竴涓? 綰跨▼妯″瀷涓嬈″鎵鏈夊垏鍒嗚繘琛屾煡璇€?/p>

涓轟簡(jiǎn)浣塊棶棰樼畝鍗曪紝鎴戝皢浣跨敤搴忓垪絳栫暐錛屽悕縐頒負(fù) SequentialShardAccessStrategy銆傛垜浠皢紼嶅悗瀵瑰叾榪涜閰嶇疆銆?/p>

ShardSelectionStrategy

褰撳垱寤轟竴涓柊瀵硅薄鏃訛紙渚嬪錛屽綋閫氳繃 Hibernate 鍒涘緩涓涓柊 Race 鎴?Runner 鏃訛級(jí)錛孒ibernate Shards 闇瑕佺煡閬撻渶灝嗗搴旂殑鏁版嵁鍐欏叆鑷沖摢浜涘垏鍒嗐傚洜姝わ紝鎮(zhèn)ㄥ繀欏誨疄鐜拌鎺ュ彛騫跺鍒囧垎閫昏緫榪涜緙栫爜銆傚鏋滄?zhèn)ㄦ儗櫩涜榛樿瀹炵帋图屾湁涓涓悕涓?RoundRobinShardSelectionStrategy 鐨勭瓥鐣ワ紝瀹冧嬌鐢ㄤ竴涓驚鐜瓥鐣ュ皢鏁版嵁杈撳叆鍒囧垎涓?/p>

瀵逛簬璧涜窇搴旂敤紼嬪簭錛屾垜闇瑕佹彁渚涙牴鎹瘮璧涜窛紱昏繘琛屽垏鍒嗙殑琛屼負(fù)銆傚洜姝わ紝鎴戜滑闇瑕佸疄鐜?ShardSelectionStrategy 鎺ュ彛騫舵彁渚涗緷鎹?Race 瀵硅薄鐨?distance 閲囩敤 selectShardIdForNewObject 鏂規(guī)硶榪涜鍒囧垎鐨勭畝鏄撻昏緫銆傦紙鎴戝皢紼嶅欏湪 Race 瀵硅薄涓睍紺恒傦級(jí)

榪愯鏃訛紝褰撳湪鎴戠殑鍩熷璞′笂璋冪敤鏌愪竴綾諱技 save 鐨勬柟娉曟椂錛岃鎺ュ彛鐨勮涓哄皢琚繁灞傜敤浜?Hibernate 鐨勬牳蹇?jī)銆?/p>


娓呭崟 1. 涓涓畝鍗曠殑鍒囧垎閫夋嫨絳栫暐

				
import org.hibernate.shards.ShardId;
import org.hibernate.shards.strategy.selection.ShardSelectionStrategy;

public class RacerShardSelectionStrategy implements ShardSelectionStrategy {

public ShardId selectShardIdForNewObject(Object obj) {
if (obj instanceof Race) {
Race rce = (Race) obj;
return this.determineShardId(rce.getDistance());
} else if (obj instanceof Runner) {
Runner runnr = (Runner) obj;
if (runnr.getRaces().isEmpty()) {
throw new IllegalArgumentException("runners must have at least one race");
} else {
double dist = 0.0;
for (Race rce : runnr.getRaces()) {
dist = rce.getDistance();
break;
}
return this.determineShardId(dist);
}
} else {
throw new IllegalArgumentException("a non-shardable object is being created");
}
}

private ShardId determineShardId(double distance){
if (distance > 10.0) {
return new ShardId(1);
} else {
return new ShardId(0);
}
}
}

 

濡傛?zhèn)ㄥ?娓呭崟 1 涓墍鐪嬪埌鐨勶紝濡傛灉鎸佷箙鍖栧璞℃槸涓鍦?Race錛岄偅涔堝叾璺濈琚‘瀹氾紝鑰屼笖錛堝洜姝わ級(jí)閫夋嫨浜?jiǎn)涓涓垏鍒嗐傚湪榪欑鎯呭喌涓嬶紝鏈変袱涓垏鍒嗭細(xì)0 鍜?1錛屽叾涓垏鍒?1 涓寘鍚?10 鑻遍噷浠ヤ笂鐨勬瘮璧涳紝鍒囧垎 0 涓寘鍚墍鏈夊叾浠栨瘮璧涖?/p>

濡傛灉鎸佷箙鍖栦竴涓?Runner 鎴栧叾浠栧璞★紝鎯呭喌浼?xì)绋嶅井澶嶆潅涓浜涖傛垜宸茬粡緙栫爜浜?jiǎn)涓涓昏緫瑙勫垯錛屽叾涓湁涓変釜鍘熷垯錛?/p>

  • 涓鍚?Runner 鍦ㄦ病鏈夊搴旂殑 Race 鏃舵棤娉曞瓨鍦ㄣ?
  • 濡傛灉 Runner 琚垱寤烘椂鍙傚姞浜?jiǎn)澶氬?Races錛岃繖鍚?Runner 灝嗚鎸佷箙鍖栧埌瀵繪壘鍒扮殑棣栧満 Race 鎵灞炵殑鍒囧垎涓傦紙欏轟究璇翠竴鍙ワ紝璇ュ師鍒欏鏈潵鏈夎礋闈㈠獎(jiǎng)鍝嶃傦級(jí)
  • 濡傛灉榪樹(shù)繚瀛樹(shù)簡(jiǎn)鍏朵粬鍩熷璞★紝鐜板湪灝嗗紩鍙戜竴涓紓甯搞?

鐒跺悗錛屾?zhèn)鍙互鎿︽帀棰濆ご鐨勭儹姹椾簡(jiǎn)锛屽洜湄?fù)澶ч儴鍒嗚壈闅劇殑宸ヤ綔宸茬粡鎼炲畾浜?jiǎn)銆傞殢鐫姣旇禌搴旂敤紼嬪簭鐨勫闀匡紝鎴戞墍浣跨敤鐨勯昏緫鍙兘浼?xì)鏄惧緱涓嶅鐏祴z伙紝浣嗘槸瀹冨畬鍏ㄥ彲浠ラ『鍒╁湴瀹屾垚榪欐婕旂ず錛?/p>

ShardResolutionStrategy

褰撻氳繃閿悳绱竴涓璞℃椂錛孒ibernate Shards 闇瑕佷竴縐嶅彲浠ュ喅瀹氶涓垏鍒嗙殑鏂規(guī)硶銆傚皢闇瑕佷嬌鐢?SharedResolutionStrategy 鎺ュ彛瀵瑰叾榪涜鎸囧紩銆?/p>

濡傛垜涔嬪墠鎻愬埌鐨勯偅鏍鳳紝鍒囧垎榪嬌鎮(zhèn)ㄩ噸瑙嗕富閿紝鍥犱負(fù)鎮(zhèn)ㄥ皢闇瑕佷翰鑷鐞嗚繖浜涗富閿傚垢榪愮殑鏄紝Hibernate 鍦ㄦ彁渚涢敭鎴?UUID 鐢熸垚鏂歸潰琛ㄧ幇鑹ソ銆傚洜姝?Hibernate Shards 鍒涢犳у湴鎻愪緵涓涓?ID 鐢熸垚鍣紝鍚嶄負(fù) ShardedUUIDGenerator錛屽畠鍙互鐏墊椿鍦板皢鍒囧垎 ID 淇℃伅宓屽叆鍒?UUID 涓?/p>

濡傛灉鎮(zhèn)ㄦ渶鍚庝嬌鐢?ShardedUUIDGenerator 榪涜閿敓鎴愶紙鎴戝湪鏈枃涓篃灝嗛噰鍙栬繖縐嶆柟娉曪級(jí)錛岄偅涔堟?zhèn)ㄤ篃鍙互鋴社?Hibernate Shards 鎻愪緵鐨勫垱鏂?ShardResolutionStrategy 瀹炵幇錛屽悕涓?AllShardsShardResolutionStrategy錛岃繖鍙互鍐沖畾渚濇嵁涓涓壒瀹氬璞$殑 ID 鎼滅儲(chǔ)浠涔堝垏鍒嗐?/p>

閰嶇疆濂?Hibernate Shards 宸ヤ綔鎵闇鐨勪笁涓帴鍙e悗錛屾垜浠氨鍙互瀵瑰垏鍒嗙ず渚嬪簲鐢ㄧ▼搴忕殑絎簩姝ヨ繘琛屽疄鐜頒簡(jiǎn)銆傜幇鍦ㄥ簲璇ュ惎鍔?Hibernate 鐨?SessionFactory 浜?jiǎn)銆?/p>

閰嶇疆 Hibernate Shards

Hibernate 鐨勫叾涓竴涓牳蹇?jī)鎺ュ彛瀵硅薄鏄畠鐨?SessionFactory銆侶ibernate 鐨勬墍鏈夌濂囬兘鏄湪鍏墮厤緗?Hibernate 搴旂敤紼嬪簭榪囩▼涓氳繃榪欎釜灝忓璞″疄鐜扮殑錛屼緥濡傦紝閫氳繃鍔犺澆鏄犲皠鏂囦歡鍜岄厤緗傚鏋滄?zhèn)ㄤ娇鐢ㄤ簡(jiǎn)娉ㄩ噴鎴?Hibernate 鐝嶈吹鐨?.hbm 鏂囦歡錛岄偅涔堟?zhèn)q橀渶瑕佷竴涓?SessionFactory 鏉ヨ Hibernate 鐭ラ亾鍝簺瀵硅薄鏄彲浠ユ寔涔呭寲鐨勶紝浠ュ強(qiáng)灝嗗畠浠寔涔呭寲鍒?鍝噷銆?/p>

鍥犳錛屼嬌鐢?Hibernate Shards 鏃訛紝鎮(zhèn)ㄥ繀欏諱嬌鐢ㄤ竴涓寮虹殑 SessionFactory 綾誨瀷鏉ラ厤緗涓暟鎹簱銆傚畠鍙互琚懡鍚嶄負(fù) ShardedSessionFactory錛岃屼笖瀹冨綋鐒舵槸 SessionFactory 綾誨瀷鐨勩傚綋鍒涘緩涓涓?ShardedSessionFactory 鏃訛紝鎮(zhèn)ㄥ繀欏繪彁渚涗箣鍓嶉厤緗ソ鐨勪笁涓垏鍒嗗疄鐜扮被鍨嬶紙ShardAccessStrategy銆?code>ShardSelectionStrategy 鍜?ShardResolutionStrategy錛夈傛?zhèn)q橀渶鎻愪緵 POJO 鎵闇鐨勬墍鏈夋槧灝勬枃浠躲傦紙濡傛灉鎮(zhèn)ㄤ嬌鐢ㄤ竴涓熀浜庡娉ㄧ殑 Hibernate POJO 閰嶇疆錛屾儏鍐靛彲鑳戒細(xì)鏈夋墍涓嶅悓銆傦級(jí)鏈鍚庯紝涓涓?ShardedSessionFactory 紺轟緥闇瑕佹瘡涓垏鍒嗛兘瀵瑰簲澶氫釜 Hibernate 閰嶇疆鏂囦歡銆?/p>

鍒涘緩涓涓?Hibernate 閰嶇疆

鎴戝凡緇忓垱寤轟簡(jiǎn)涓涓?ShardedSessionFactoryBuilder 綾誨瀷錛屽畠鏈変竴涓富瑕佹柟娉?createSessionFactory錛屽彲浠ュ垱寤轟竴涓厤緗悎鐞嗙殑 SessionFactory銆備箣鍚庯紝鎴戝皢灝嗘墍鏈夌殑涓鍒囬兘涓?Spring 榪炴帴鍦ㄤ竴璧鳳紙鐜板湪璋佷笉浣跨敤涓涓?IOC 瀹瑰櫒錛燂級(jí)銆傜幇鍦紝娓呭崟 2 鏄劇ず浜?ShardedSessionFactoryBuilder 鐨勪富瑕佷綔鐢細(xì)鍒涘緩涓涓?Hibernate 閰嶇疆錛?/p>


娓呭崟 2. 鍒涘緩涓涓?Hibernate 閰嶇疆

				
private Configuration getPrototypeConfig(String hibernateFile, List<String>
resourceFiles) {
Configuration config = new Configuration().configure(hibernateFile);
for (String res : resourceFiles) {
configs.addResource(res);
}
return config;
}

 

濡傛?zhèn)ㄥ?娓呭崟 2 涓墍鐪嬪埌鐨勶紝鍙互浠?Hibernate 閰嶇疆鏂囦歡涓垱寤轟簡(jiǎn)涓涓畝鍗曠殑 Configuration銆? 璇ユ枃浠跺寘鍚涓嬩俊鎭紝濡備嬌鐢ㄧ殑鏄粈涔堢被鍨嬬殑鏁版嵁搴撱佺敤鎴峰悕鍜屽瘑鐮佺瓑錛屼互鍙?qiáng)鎵鏈夊繀欏葷殑璧勬簮鏂囦歡錛屽 POJO 鎵鐢ㄧ殑 .hbm 鏂囦歡銆傚湪榪涜鍒囧垎鐨勬儏鍐典笅錛屾?zhèn)ㄩ氬父闇瑕佷嬌鐢ㄥ涓暟鎹簱閰嶇疆錛屼絾鏄?Hibernate Shards 鏀寔鎮(zhèn)ㄤ粎浣跨敤涓涓? hibernate.cfg.xml 鏂囦歡錛屼粠鑰岀畝鍖栦簡(jiǎn)鏁翠釜榪囩▼錛堜絾鏄紝濡傛?zhèn)ㄥ?娓呭崟 4 涓墍鐪嬪埌鐨勶紝鎮(zhèn)ㄥ皢闇瑕佸浣跨敤鐨勬瘡涓涓垏鍒嗗噯澶囦竴涓?hibernate.cfg.xml 鏂囦歡錛夈?/p>

涓嬩竴姝ワ紝鍦ㄦ竻鍗?3 涓紝鎴戝皢鎵鏈夌殑鍒囧垎閰嶇疆閮芥敹闆嗗埌浜?jiǎn)涓涓?List 涓細(xì)


娓呭崟 3. 鍒囧垎閰嶇疆鍒楄〃

				
List<ShardConfiguration> shardConfigs = new ArrayList<ShardConfiguration>();
for (String hibconfig : this.hibernateConfigurations) {
shardConfigs.add(buildShardConfig(hibconfig));
}

 

Spring 閰嶇疆

鍦?娓呭崟 3 涓紝瀵?hibernateConfigurations 鐨勫紩鐢ㄦ寚鍚戜簡(jiǎn) Strings List錛屽叾涓瘡涓?String 閮藉寘鍚簡(jiǎn) Hibernate 閰嶇疆鏂囦歡鐨勫悕瀛椼傝 List 閫氳繃 Spring 鑷姩榪炴帴銆傛竻鍗?4 鏄垜鐨?Spring 閰嶇疆鏂囦歡涓殑涓孌墊憳褰曪細(xì)


娓呭崟 4. Spring 閰嶇疆鏂囦歡涓殑涓閮ㄥ垎

				
<bean id="shardedSessionFactoryBuilder"
class="org.disco.racer.shardsupport.ShardedSessionFactoryBuilder">
<property name="resourceConfigurations">
<list>
<value>racer.hbm.xml</value>
</list>
</property>
<property name="hibernateConfigurations">
<list>
<value>shard0.hibernate.cfg.xml</value>
<value>shard1.hibernate.cfg.xml</value>
</list>
</property>
</bean>

 

濡傛?zhèn)ㄥ?娓呭崟 4 涓墍鐪嬪埌鐨勶紝ShardedSessionFactoryBuilder 姝e湪涓庝竴涓?POJO 鏄犲皠鏂囦歡鍜屼袱涓垏鍒嗛厤緗枃浠惰繛鎺ャ傛竻鍗?5 涓槸 POJO 鏂囦歡鐨勪竴孌墊憳褰曪細(xì)


娓呭崟 5. 姣旇禌 POJO 鏄犲皠

				
<class name="org.disco.racer.domain.Race" table="race"dynamic-update="true"
dynamic-insert="true">

<id name="id" column="RACE_ID" unsaved-value="-1">
<generator class="org.hibernate.shards.id.ShardedUUIDGenerator"/>
</id>

<set name="participants" cascade="save-update" inverse="false" table="race_participants"
lazy="false">
<key column="race_id"/>
<many-to-many column="runner_id" class="org.disco.racer.domain.Runner"/>
</set>

<set name="results" inverse="true" table="race_results" lazy="false">
<key column="race_id"/>
<one-to-many class="org.disco.racer.domain.Result"/>
</set>

<property name="name" column="NAME" type="string"/>
<property name="distance" column="DISTANCE" type="double"/>
<property name="date" column="DATE" type="date"/>
<property name="description" column="DESCRIPTION" type="string"/>
</class>

 

璇鋒敞鎰忥紝娓呭崟 5 涓殑 POJO 鏄犲皠鐨勫敮涓鐙壒鏂歸潰鏄?ID 鐨勭敓鎴愬櫒綾?— 榪欏氨鏄?ShardedUUIDGenerator錛屽畠錛堝鎮(zhèn)ㄦ兂璞$殑涓鏍鳳級(jí)灝嗗垏鍒?ID 淇℃伅宓屽叆鍒?UUID 涓傝繖灝辨槸鎴戠殑 POJO 鏄犲皠涓垏鍒嗙殑鍞竴鐙壒鏂歸潰銆?/p>

鍒囧垎閰嶇疆鏂囦歡

涓嬩竴姝ワ紝濡傛竻鍗?6 涓墍紺猴紝鎴戝凡緇忛厤緗簡(jiǎn)涓涓垏鍒?— 鍦ㄦ湰紺轟緥涓紝闄ゅ垏鍒?ID 鍜岃繛鎺ヤ俊鎭錛屽垏鍒?0 鍜屽垏鍒?1 鐨勬枃浠舵槸涓鏍風(fēng)殑銆?/p>


娓呭崟 6. Hibernate Shards 閰嶇疆鏂囦歡

				
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="HibernateSessionFactory0">
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
<property name="connection.url">
jdbc:hsqldb:file:/.../db01/db01
</property>
<property name="connection.username">SA</property>
<property name="connection.password"></property>
<property name="hibernate.connection.shard_id">0</property>
<property name="hibernate.shard.enable_cross_shard_relationship_checks">true
</property>
</session-factory>
</hibernate-configuration>

 

濡傚叾鍚嶅瓧鎵紺猴紝enable_cross_shard_relationship_checks 灞炴у璺ㄥ垏鍒嗗叧緋昏繘琛屼簡(jiǎn)媯(gè)鏌ャ傛牴鎹?Hibernate Shards 鏂囨。璁板綍錛岃灞炴ч潪甯歌楁椂錛屽湪鐢熸垚鐜涓簲璇ュ叧闂?/p>

鏈鍚庯紝ShardedSessionFactoryBuilder 閫氳繃鍒涘緩 ShardStrategyFactory 錛岀劧鍚庢坊鍔犱笁涓被鍨嬶紙鍖呮嫭 娓呭崟 1 涓殑 RacerShardSelectionStrategy錛夛紝灝嗕竴鍒囬兘鏁村悎鍒頒簡(jiǎn)涓璧鳳紝濡傛竻鍗?7 涓墍紺猴細(xì)


娓呭崟 7. 鍒涘緩 ShardStrategyFactory

				
private ShardStrategyFactory buildShardStrategyFactory() {
ShardStrategyFactory shardStrategyFactory = new ShardStrategyFactory() {
public ShardStrategy newShardStrategy(List<ShardId> shardIds) {
ShardSelectionStrategy pss = new RacerShardSelectionStrategy();
ShardResolutionStrategy prs = new AllShardsShardResolutionStrategy(shardIds);
ShardAccessStrategy pas = new SequentialShardAccessStrategy();
return new ShardStrategyImpl(pss, prs, pas);
}
};
return shardStrategyFactory;
}

 

鏈鍚庯紝鎴戞墽琛屼簡(jiǎn)閭d釜鍚嶄負(fù) createSessionFactory 鐨勭粷濡欐柟娉曪紝鍦ㄦ湰紺轟緥涓垱寤轟簡(jiǎn)涓涓?ShardedSessionFactory錛屽娓呭崟 8 鎵紺猴細(xì)


娓呭崟 8. 鍒涘緩 ShardedSessionFactory

				
public SessionFactory createSessionFactory() {
Configuration prototypeConfig = this.getPrototypeConfig
(this.hibernateConfigurations.get(0), this.resourceConfigurations);

List<ShardConfiguration> shardConfigs = new ArrayList<ShardConfiguration>();
for (String hibconfig : this.hibernateConfigurations) {
shardConfigs.add(buildShardConfig(hibconfig));
}

ShardStrategyFactory shardStrategyFactory = buildShardStrategyFactory();
ShardedConfiguration shardedConfig = new ShardedConfiguration(
prototypeConfig, shardConfigs,shardStrategyFactory);
return shardedConfig.buildShardedSessionFactory();
}

 

浣跨敤 Spring 榪炴帴鍩熷璞?/a>

鐜板湪鍙互娣卞懠鍚鎬竴涓嬩簡(jiǎn)錛屽洜涓烘垜浠┈涓婂氨鎴愬姛浜?jiǎn)銆傚埌鐩墠涓烘錛屾垜宸茬粡鍒涘緩涓涓彲浠ュ悎鐞嗛厤緗?ShardedSessionFactory 鐨勭敓鎴愬櫒綾伙紝鍏跺疄灝辨槸瀹炵幇 Hibernate 鏃犲涓嶅湪鐨?SessionFactory 綾誨瀷銆?code>ShardedSessionFactory 瀹屾垚浜?jiǎn)鍒囧垎涓墍鏈夌殑紲炲銆傚畠鍒╃敤鎴戝湪 娓呭崟 1 涓墍閮ㄧ講鐨勫垏鍒嗛夋嫨絳栫暐錛屽茍浠庢垜閰嶇疆鐨勪袱涓垏鍒嗕腑璇誨啓鏁版嵁銆傦紙娓呭崟 6 鏄劇ず浜?jiǎn)鍒囧?0 鍜屽垏鍒?1 鐨勯厤緗嚑涔庣浉鍚屻傦級(jí)

鐜板湪鎴戦渶瑕佸仛鐨勫氨鏄繛鎺ユ垜鐨勫煙瀵硅薄錛屽湪鏈ず渚嬩腑錛屽洜涓哄畠浠緷璧栦簬 Hibernate錛岄渶瑕佷竴涓?SessionFactory 綾誨瀷榪涜宸ヤ綔銆傛垜灝嗕粎浣跨敤鎴戠殑 ShardedSessionFactoryBuilder 鎻愪緵涓縐?SessionFactory 綾誨瀷錛屽娓呭崟 9 涓墍紺猴細(xì)


娓呭崟 9. 鍦?Spring 涓繛鎺?POJO

				
<bean id="mySessionFactory"
factory-bean="shardedSessionFactoryBuilder"
factory-method="createSessionFactory">
</bean>

<bean id="race_dao" class="org.disco.racer.domain.RaceDAOImpl">
<property name="sessionFactory">
<ref bean="mySessionFactory"/>
</property>
</bean>

 

濡傛?zhèn)ㄥ?娓呭崟 9 涓墍鐪嬪埌鐨勶紝鎴戦鍏堝湪 Spring 涓垱寤轟簡(jiǎn)涓涓被浼煎伐鍘傜殑 bean錛涗篃灝辨槸璇達(dá)紝鎴戠殑 RaceDAOImpl 綾誨瀷鏈変竴涓悕涓?sessionFactory 鐨勫睘鎬э紝鏄?SessionFactory 綾誨瀷銆備箣鍚庯紝mySessionFactory 寮曠敤閫氳繃鍦?ShardedSessionFactoryBuilder 涓婅皟鐢?createSessionFactory 鏂規(guī)硶鍒涘緩浜?jiǎn)涓涓?SessionFactory 紺轟緥錛屽 娓呭崟 4 涓墍紺恒?/p>

褰撴垜涓烘垜鐨?Race 瀵硅薄紺轟緥浣跨敤 Spring錛堟垜涓昏灝嗗叾浣滀負(fù)涓涓法鍨嬪伐鍘備嬌鐢紝浠ヨ繑鍥為閰嶇疆鐨勫璞★級(jí)鏃訛紝涓鍒囦簨鎯呭氨閮芥悶瀹氫簡(jiǎn)銆傝櫧鐒舵病鏈夊睍紺猴紝RaceDAOImpl 綾誨瀷鏄竴涓埄鐢?Hibernate 妯℃澘榪涜鏁版嵁瀛樺偍鍜屾绱㈢殑瀵硅薄銆傛垜鐨?Race 綾誨瀷鍖呭惈涓涓?RaceDAOImpl 紺轟緥錛屽畠?yōu)畣鎵鏈変笌鏁版嵁鍟嗗簵鐩稿叧鐨勬椿鍔ㄩ兘鎺ㄨ繜鑷蟲銆傚緢榛樺錛屼笉鏄悧錛?/p>

璇鋒敞鎰忥紝鎴戠殑 DAO 涓?Hibernate Shards 鍦ㄤ唬鐮佹柟闈㈠茍娌℃湁緇戝畾錛岃屾槸閫氳繃閰嶇疆榪涜浜?jiǎn)缁戝畾銆傞厤緗紙濡?娓呭崟 5 涓殑錛夊皢瀹冧滑緇戝畾鍦ㄤ竴涓壒瀹氬垏鍒?UUID 鐢熸垚鏂規(guī)涓紝涔熷氨鏄浜?jiǎn)鎴戝彲浠ュ湪闇瑕佸垏鍒嗘椂浠庡凡鏈?Hibernate 瀹炵幇涓噸鏂頒嬌鐢ㄥ煙瀵硅薄銆?/p>

鍒囧垎錛氫嬌鐢?easyb 鐨勬祴璇曢┍鍔?/a>

鎺ヤ笅鏉ワ紝鎴戦渶瑕侀獙璇佹垜鐨勫垏鍒嗗疄鐜板彲浠ュ伐浣溿傛垜鏈変袱涓暟鎹簱騫墮氳繃璺濈榪涜鍒囧垎錛屾墍浠ュ綋鎴戝垱寤轟竴鍦洪┈鎷夋澗鏃訛紙10 鑻遍噷浠ヤ笂鐨勬瘮璧涳級(jí)錛岃 Race 紺轟緥搴斿湪鍒囧垎 1 涓壘鍒般備竴涓皬鍨嬬殑姣旇禌錛屽 5 鍏噷鐨勬瘮璧涳紙3.1 鑻遍噷錛夛紝灝嗗湪鍒囧垎 0 涓壘鍒般傚垱寤轟竴鍦?Race 鍚庯紝鎴戝彲浠ユ鏌ュ崟涓暟鎹簱鐨勮褰曘?/p>

鍦ㄦ竻鍗?10 涓紝鎴戝凡緇忓垱寤轟簡(jiǎn)涓鍦洪┈鎷夋澗錛岀劧鍚庣戶緇獙璇佽褰曠‘瀹炴槸鍦ㄥ垏鍒?1 涓岄潪鍒囧垎 0 涓備嬌浜嬫儏鏇村姞鏈夎叮錛堝拰綆鍗曪級(jí)鐨勬槸錛屾垜浣跨敤浜? easyb錛岃繖鏄竴涓熀浜?Groovy 鐨勮涓洪┍鍔ㄥ紑鍙戞灦鏋勶紝鍒╃敤鑷劧璇█楠岃瘉銆俥asyb 涔熷彲浠ヨ交鏉懼鐞?Java 浠g爜銆傚嵆渚夸笉浜?jiǎn)瑙? Groovy 鎴?easyb錛屾?zhèn)ㄤ篃鍙互閫氳繃鏌ョ湅娓呭崟 10 涓殑浠g爜錛岀湅鍒頒竴鍒囧鏈熻繘琛屻傦紙璇鋒敞鎰忥紝鎴戝府鍔╁垱寤轟簡(jiǎn) easyb錛屽茍涓斿湪 developerWorks 涓榪欎釜璇濋鍙戣〃榪囨枃绔犮傦級(jí)


娓呭崟 10. 涓涓獙璇佸垏鍒嗘紜х殑 easyb 鏁呬簨涓竴孌墊憳褰?/strong>

				
scenario "races greater than 10.0 miles should be in shard 1 or db02", {
given "a newly created race that is over 10.0 miles", {
new Race("Leesburg Marathon", new Date(), 26.2,
"Race the beautiful streets of Leesburg!").create()
}
then "everything should work fine w/respect to Hibernate", {
rce = Race.findByName("Leesburg Marathon")
rce.distance.shouldBe 26.2
}
and "the race should be stored in shard 1 or db02", {
sql = Sql.newInstance(db02url, name, psswrd, driver)
sql.eachRow("select race_id, distance, name from race where name=?",
["Leesburg Marathon"]) { row ->
row.distance.shouldBe 26.2
}
sql.close()
}
and "the race should NOT be stored in shard 0 or db01", {
sql = Sql.newInstance(db01url, name, psswrd, driver)
sql.eachRow("select race_id, distance, name from race where name=?",
["Leesburg Marathon"]) { row ->
fail "shard 0 contains a marathon!"
}
sql.close()
}
}

 

褰撶劧錛屾垜鐨勫伐浣滆繕娌℃湁瀹?— 鎴戣繕闇瑕佸垱寤轟竴涓煭紼嬫瘮璧涳紝騫墮獙璇佸叾浣嶄簬鍒囧垎 0 涓岄潪鍒囧垎 1 涓傛?zhèn)ㄥ彲浠ュ湪鏈枃鎻愪緵鐨?浠g爜涓嬭澆 涓湅鍒拌楠岃瘉鎿嶄綔錛?/p>

鍒囧垎鐨勫埄寮?/a>

鍒囧垎鍙互澧炲姞搴旂敤紼嬪簭鐨勮鍐欓熷害錛屽挨鍏舵槸濡傛灉鎮(zhèn)ㄧ殑搴旂敤紼嬪簭鍖呭惈澶ч噺鏁版嵁 — 濡傛暟 TB — 鎴栬呮?zhèn)ㄧ殑鍩熷浜庢棤闄愬埗鍙戝睍涓Q屽 Google 鎴?Facebook銆?/p>

鍦ㄨ繘琛屽垏鍒嗕箣鍓嶏紝涓瀹氳紜畾搴旂敤紼嬪簭鐨勮妯″拰澧為暱瀵瑰叾鏈夊埄銆傚垏鍒嗙殑鎴愭湰錛堟垨鑰呰緙虹偣錛夊寘鎷濡備綍瀛樺偍鍜屾绱㈡暟鎹殑鐗瑰畾搴旂敤紼嬪簭閫昏緫榪涜緙栫爜鐨勬垚鏈傝繘琛屽垏鍒嗗悗錛屾?zhèn)ㄥ澶殲畱灏戦兘琚攣瀹氬湪鎮(zhèn)ㄧ殑鍒囧垎妯″瀷涓Q屽洜涓洪噸鏂板垏鍒嗗茍闈炴槗浜嬨?/p>

濡傛灉鑳藉姝g‘瀹炵幇錛屽垏鍒嗗彲浠ョ敤浜庤В鍐充紶緇?RDBMS 瑙勬ā鍜岄熷害闂銆傚垏鍒嗗浜庣粦瀹氫簬鍏崇郴鍩虹鏋舵瀯銆佹棤娉曠戶緇崌綰х‖浠朵互婊¤凍澶ч噺鍙幾緙╂暟鎹瓨鍌ㄨ姹傜殑緇勭粐鏉ヨ鏄竴涓潪甯告垚鏈珮鏁堢殑鍐崇瓥銆?/p>



webjlwang 2011-06-07 18:10 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲精品福利你懂| 国产aⅴ无码专区亚洲av麻豆| 水蜜桃亚洲一二三四在线| 国产精品福利在线观看免费不卡| 亚洲不卡无码av中文字幕| 免费观看又污又黄在线观看| 精品一区二区三区无码免费视频| 亚洲av无码专区国产乱码在线观看| 一级成人a免费视频| 国产性爱在线观看亚洲黄色一级片| 亚洲韩国精品无码一区二区三区| WWW国产成人免费观看视频| 亚洲精品无码mv在线观看网站| 三级网站在线免费观看| 亚洲成人在线电影| 动漫黄网站免费永久在线观看| 亚洲日韩AV一区二区三区中文 | 无遮挡a级毛片免费看| 亚洲另类少妇17p| baoyu116.永久免费视频| 亚洲免费在线播放| 久久这里只有精品国产免费10| 亚洲国产成人久久精品软件 | 亚洲第一视频网站| 免费观看AV片在线播放| 久久亚洲精品无码网站| 1000部免费啪啪十八未年禁止观看 | 曰批视频免费30分钟成人| 亚洲日韩国产一区二区三区在线 | 在线永久看片免费的视频| 亚洲国产三级在线观看| 在线免费观看亚洲| 小说区亚洲自拍另类| 国产aⅴ无码专区亚洲av| 99久久免费国产精品特黄| 一道本不卡免费视频| 亚洲精品在线免费看| 亚洲成aⅴ人片久青草影院| 91香蕉国产线在线观看免费| 亚洲乱亚洲乱妇24p| 亚洲gv白嫩小受在线观看|