锘??xml version="1.0" encoding="utf-8" standalone="yes"?>911精品国产亚洲日本美国韩国,色婷五月综激情亚洲综合,91丁香亚洲综合社区http://www.tkk7.com/webjlwang/zh-cnSun, 11 May 2025 03:58:49 GMTSun, 11 May 2025 03:58:49 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鑳屽悗鐨勮蔣浠訛紙杞級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鍙互鏍規嵁wsdl鏂囦歡鐢熸垚瀵瑰簲鐨勫鎴風銆佹湇鍔$java浠g爜錛岄潪甯告柟渚匡紝鍏蜂綋浣跨敤鏂瑰紡涓猴細<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 鐨勬暟鎹椂錛屾繪ц兘緇忓父浼氶檷浣庛傛樉鐒訛紝瀵規墍鏈夋暟鎹紪绱㈠紩涓嶄粎瀵逛簬璇昏屼笖瀵逛簬鍐欓兘寰堣楁椂銆傚洜涓?NoSQL 鏁版嵁鍟嗗簵灝ゅ叾閫傚悎瀛樺偍澶у瀷鏁版嵁錛堝 Google 鐨?Bigtable錛夛紝鏄劇劧 NoSQL 鏄竴縐嶉潪鍏崇郴鏁版嵁搴撴柟娉曘傚浜庡懼悜浜庝嬌鐢?ACID-ity 鍜屽疄浣撶粨鏋勫叧緋繪暟鎹簱鐨勫紑鍙戜漢鍛樺強闇瑕佽繖縐嶇粨鏋勭殑欏圭洰鏉ヨ錛屽垏鍒嗘槸涓涓護浜烘尟濂嬬殑鍙夋柟娉曘?/p>

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

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

鍒囧垎綆浠?/a>

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

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

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

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

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

鍒囧垎鍜岀瓥鐣?/a>

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

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

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

寰堟槑鏄撅紝鍦ㄥ緩绔嬫暟鎹簱鍓嶅繀欏誨叏闈㈣冭檻鍒囧垎絳栫暐銆備竴鏃﹂夋嫨浜嗕竴涓壒瀹氱殑鏂瑰悜涔嬪悗錛屾偍宸笉澶氬氨琚畠緇戝畾浜?— 榪涜鍒囧垎鍚庡緢闅鵑殢渚跨Щ鍔ㄦ暟鎹簡銆?/p>

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

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

瀵逛簬瀹㈡埛鏉ヨ錛屾偍鍙互鏍規嵁鎵鍦ㄥ湴錛堟媧層佷簹媧層侀潪媧茬瓑錛夊垏鍒嗭紝鎴栬呮偍涔熷彲浠ユ牴鎹叾浠栧厓绱犺繘琛屽垏鍒嗐傝繖鐢辨偍鍐沖畾銆備絾鏄紝鎮ㄧ殑鍒囧垎絳栫暐搴旇鍖呭惈灝? 鏁版嵁鍧囧寑鍒嗗竷鑷蟲墍鏈夊垏鍒嗙殑鏂規硶銆傚垏鍒嗙殑鎬諱綋姒傚康鏄皢澶у瀷鏁版嵁闆嗗垎鍓蹭負灝忓瀷鏁版嵁闆嗭紱鍥犳錛屽鏋滀竴涓壒瀹氱殑鐢靛瓙鍟嗗姟鍩熷寘鍚竴涓ぇ鍨嬬殑嬈ф床瀹㈡埛闆嗕互鍙婁竴涓浉瀵瑰皬 鐨勭編鍥藉鎴烽泦錛岄偅涔堝熀浜庡鎴鋒墍鍦ㄥ湴鐨勫垏鍒嗗彲鑳芥病鏈変粈涔堟剰涔夈?/p>

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

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

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

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

瀹炵幇 Hibernate Shards

Hibernate Shards 鍑犱箮鍙互涓庣幇鏈?Hibernate 欏圭洰鏃犵紳緇撳悎浣跨敤銆傚敮涓闂鏄?Hibernate Shards 闇瑕佷竴浜涚壒瀹氫俊鎭拰琛屼負銆傛瘮濡傦紝闇瑕佷竴涓垏鍒嗚闂瓥鐣ャ佷竴涓垏鍒嗛夋嫨絳栫暐鍜屼竴涓垏鍒嗗鐞嗙瓥鐣ャ傝繖浜涙槸鎮ㄥ繀欏誨疄鐜扮殑鎺ュ彛錛岃櫧鐒墮儴鍒嗘儏鍐典笅錛屾偍鍙互浣跨敤榛樿絳? 鐣ャ傛垜浠皢鍦ㄥ悗闈㈢殑閮ㄥ垎閫愪釜浜嗚В鍚勪釜鎺ュ彛銆?/p>

ShardAccessStrategy

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

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

ShardSelectionStrategy

褰撳垱寤轟竴涓柊瀵硅薄鏃訛紙渚嬪錛屽綋閫氳繃 Hibernate 鍒涘緩涓涓柊 Race 鎴?Runner 鏃訛級錛孒ibernate Shards 闇瑕佺煡閬撻渶灝嗗搴旂殑鏁版嵁鍐欏叆鑷沖摢浜涘垏鍒嗐傚洜姝わ紝鎮ㄥ繀欏誨疄鐜拌鎺ュ彛騫跺鍒囧垎閫昏緫榪涜緙栫爜銆傚鏋滄偍鎯寵繘琛岄粯璁ゅ疄鐜幫紝鏈変竴涓悕涓?RoundRobinShardSelectionStrategy 鐨勭瓥鐣ワ紝瀹冧嬌鐢ㄤ竴涓驚鐜瓥鐣ュ皢鏁版嵁杈撳叆鍒囧垎涓?/p>

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

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

 

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

濡傛灉鎸佷箙鍖栦竴涓?Runner 鎴栧叾浠栧璞★紝鎯呭喌浼氱◢寰鏉備竴浜涖傛垜宸茬粡緙栫爜浜嗕竴涓昏緫瑙勫垯錛屽叾涓湁涓変釜鍘熷垯錛?/p>

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

鐒跺悗錛屾偍灝卞彲浠ユ摝鎺夐澶寸殑鐑睏浜嗭紝鍥犱負澶ч儴鍒嗚壈闅劇殑宸ヤ綔宸茬粡鎼炲畾浜嗐傞殢鐫姣旇禌搴旂敤紼嬪簭鐨勫闀匡紝鎴戞墍浣跨敤鐨勯昏緫鍙兘浼氭樉寰椾笉澶熺伒媧伙紝浣嗘槸瀹冨畬鍏ㄥ彲浠ラ『鍒╁湴瀹屾垚榪欐婕旂ず錛?/p>

ShardResolutionStrategy

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

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

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

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

閰嶇疆 Hibernate Shards

Hibernate 鐨勫叾涓竴涓牳蹇冩帴鍙e璞℃槸瀹冪殑 SessionFactory銆侶ibernate 鐨勬墍鏈夌濂囬兘鏄湪鍏墮厤緗?Hibernate 搴旂敤紼嬪簭榪囩▼涓氳繃榪欎釜灝忓璞″疄鐜扮殑錛屼緥濡傦紝閫氳繃鍔犺澆鏄犲皠鏂囦歡鍜岄厤緗傚鏋滄偍浣跨敤浜嗘敞閲婃垨 Hibernate 鐝嶈吹鐨?.hbm 鏂囦歡錛岄偅涔堟偍榪橀渶瑕佷竴涓?SessionFactory 鏉ヨ Hibernate 鐭ラ亾鍝簺瀵硅薄鏄彲浠ユ寔涔呭寲鐨勶紝浠ュ強灝嗗畠浠寔涔呭寲鍒?鍝噷銆?/p>

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

鍒涘緩涓涓?Hibernate 閰嶇疆

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

 

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

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


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

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

 

Spring 閰嶇疆

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


娓呭崟 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>

 

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


娓呭崟 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錛屽畠錛堝鎮ㄦ兂璞$殑涓鏍鳳級灝嗗垏鍒?ID 淇℃伅宓屽叆鍒?UUID 涓傝繖灝辨槸鎴戠殑 POJO 鏄犲皠涓垏鍒嗙殑鍞竴鐙壒鏂歸潰銆?/p>

鍒囧垎閰嶇疆鏂囦歡

涓嬩竴姝ワ紝濡傛竻鍗?6 涓墍紺猴紝鎴戝凡緇忛厤緗簡涓涓垏鍒?— 鍦ㄦ湰紺轟緥涓紝闄ゅ垏鍒?ID 鍜岃繛鎺ヤ俊鎭錛屽垏鍒?0 鍜屽垏鍒?1 鐨勬枃浠舵槸涓鏍風殑銆?/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 灞炴у璺ㄥ垏鍒嗗叧緋昏繘琛屼簡媯鏌ャ傛牴鎹?Hibernate Shards 鏂囨。璁板綍錛岃灞炴ч潪甯歌楁椂錛屽湪鐢熸垚鐜涓簲璇ュ叧闂?/p>

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


娓呭崟 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;
}

 

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


娓呭崟 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>

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

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


娓呭崟 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>

 

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

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

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

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

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

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


娓呭崟 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 涓傛偍鍙互鍦ㄦ湰鏂囨彁渚涚殑 浠g爜涓嬭澆 涓湅鍒拌楠岃瘉鎿嶄綔錛?/p>

鍒囧垎鐨勫埄寮?/a>

鍒囧垎鍙互澧炲姞搴旂敤紼嬪簭鐨勮鍐欓熷害錛屽挨鍏舵槸濡傛灉鎮ㄧ殑搴旂敤紼嬪簭鍖呭惈澶ч噺鏁版嵁 — 濡傛暟 TB — 鎴栬呮偍鐨勫煙澶勪簬鏃犻檺鍒跺彂灞曚腑錛屽 Google 鎴?Facebook銆?/p>

鍦ㄨ繘琛屽垏鍒嗕箣鍓嶏紝涓瀹氳紜畾搴旂敤紼嬪簭鐨勮妯″拰澧為暱瀵瑰叾鏈夊埄銆傚垏鍒嗙殑鎴愭湰錛堟垨鑰呰緙虹偣錛夊寘鎷濡備綍瀛樺偍鍜屾绱㈡暟鎹殑鐗瑰畾搴旂敤紼嬪簭閫昏緫榪涜緙栫爜鐨勬垚鏈傝繘琛屽垏鍒嗗悗錛屾偍澶氬灝戝皯閮借閿佸畾鍦ㄦ偍鐨勫垏鍒嗘ā鍨嬩腑錛屽洜涓洪噸鏂板垏鍒嗗茍闈炴槗浜嬨?/p>

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



webjlwang 2011-06-07 18:10 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 久久久亚洲欧洲日产国码是AV| 亚洲日韩国产一区二区三区| 久久亚洲AV成人出白浆无码国产| 精品97国产免费人成视频| 日本中文一区二区三区亚洲 | 全部免费毛片在线播放| 国产偷国产偷亚洲清高动态图| 黄页网址在线免费观看| 亚洲国产精品视频| 久久av免费天堂小草播放| 亚洲精品乱码久久久久66| 爱丫爱丫影院在线观看免费 | 亚洲另类春色国产精品| 一二三四在线观看免费高清中文在线观看 | 有色视频在线观看免费高清在线直播| 免费在线观看黄色毛片| 国产精品永久免费视频| 国产成人精品日本亚洲网站| 四虎影视成人永久免费观看视频| 久久亚洲中文字幕精品有坂深雪| 日韩欧毛片免费视频| 亚洲AV成人无码网站| 亚洲美女高清一区二区三区| 国产成人无码区免费网站| 亚洲视频在线观看不卡| 欧洲美熟女乱又伦免费视频| jizz免费在线观看| 久久亚洲精精品中文字幕| 在线观看成人免费视频不卡| 美国毛片亚洲社区在线观看 | 午夜视频免费在线观看| 一区二区亚洲精品精华液| 亚洲精品视频在线看| 亚洲精品免费在线观看| 亚洲av中文无码字幕色不卡| 国产亚洲自拍一区| 美女网站免费福利视频| 国产精品玖玖美女张开腿让男人桶爽免费看 | 人禽伦免费交视频播放| 亚洲综合区图片小说区| 国产在线观看免费不卡|