Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½´æ´¢ºÍÒ»ÖÂÐÔhash
 
×÷Õߣºliuc0317 À´Ô´£ºCSDN ·¢²¼ÓÚ 2016-1-4
  2794  次浏览      31
 

±¾ÎÄÎÒ½«¶ÔÒ»ÖÂÐÔËã·¨×÷½éÉÜ£¬Í¬Ê±Ì¸Ì¸×Ô¼º¶ÔÒ»ÖÂÐÔhashºÍÒ»°ãÒâÒåÉϵÄhashËã·¨µÄÇø±ð

hashÊÇʲô

hash¼´hashËã·¨£¬ÓÖ³ÆÎªÉ¢ÁÐËã·¨£¬°Ù¶È°Ù¿ÆµÄ¶¨ÒåÊÇ

¹þÏ£Ëã·¨½«ÈÎÒⳤ¶ÈµÄ¶þ½øÖÆÖµÓ³ÉäΪ½Ï¶ÌµÄ¹Ì¶¨³¤¶ÈµÄ¶þ½øÖÆÖµ£¬Õâ¸öСµÄ¶þ½øÖÆÖµ³ÆÎª¹þÏ£Öµ¡£¹þÏ£ÖµÊÇÒ»¶ÎÊý¾ÝΨһÇÒ¼«Æä½ô´ÕµÄÊýÖµ±íʾÐÎʽ¡£

1.Õâ¾ä»°Óм¸¸öºÜÖØÒªµÄµØ·½£¬Ê×ÏÈÊÇÈÎÒⳤ¶È¶þ½øÖÆ£¬ÔÚjavaÖУ¬¿ÉÒÔ´ú±íËùÓжÔÏó£¨ÐòÁл¯£©

2.¹Ì¶¨³¤¶È£¬Ê¹µÃhashmapµÈ¿ÉÒÔ°´ÕոߵÍλ½øÐÐλ²Ù×÷£¬Í¬Ê±Äܹ»ÌṩͳһµÄ·½Ê½£¨ÓÐÖÖЭÒéµÄ¸Ð¾õ£©

3.Êý¾ÝΨһµÄÊýÖµ£¬Ê¹µÃhashcode¿ÉÒÔ×÷Ϊ²éÕÒµÄÒÀ¾Ý£¨¿ìËÙ²éÕҵĸù±¾£©

Ϊʲôhash

˵ΪʲôÊ×ÏÈҪ˵˵Èç¹ûûÓлáÔõôÑù¡£

csdnÓÐÕâÑùһƪÎÄÕ½²µÄºÜÓÐÒâ˼£¬ÎÒÃÇÓÐÒ»¶ÑÖí£¬Ôõô¸ù¾ÝÌåÖØÕÒµ½¶ÔÓ¦µÄһͷ¡£Èç¹ûûÓÐhashµÄ˼Ï룬ÎÒÃÇ»á±È½ÏÿͷÖí£¬µ«ÊÇÈç¹ûÓÐ1000Í·ÄãÒ²ÕâÑù×öô¡£ÒýÈëhash£¬Ã¿Í·ÖíµÄÖØÁ¿hashµ½Ò»¸öhashcode£¬hashcode»áÓ³Éäµ½¶ÔÓ¦µÄÖíȦ£¬ÎÒÃÇÖ»Òª±È½Ïÿ¸öÖíȦµÄÖí¾ÍÐÐÁË£¬¶ø×îÀíÏëµÄÇé¿ö¾ÍÊÇÿ¸öÖíȦµÄÖí¶¼Ò»Ñù¶à£¨×¢£ºÃ¿¸öÖíȦһ¸öÊǺ㬵«ÊǿռäÏûºÄ¾Þ´ó£©

£¨http://blog.csdn.net/ok7758521ok/article/details/4003476£©

¶øjavaÖУ¬hashÒ²ÊDzÉÓÃÕâÑùµÄ·½Ê½£¬Í¨¹ýhashcodeÓëͰÊýȡģµÄ·½Ê½£¨µ±È»Ê±¼äÊÇͨ¹ýλ²Ù×÷£¬ÐÔÄܸü¸ß£©×ÔȻӳÉäµ½¾ßÌåµÄͰÖС£

¹ØÓÚ·Ö²¼Ê½´æ´¢

µ±hashÓöÉÏ·Ö²¼Ê½£¬µ¥Ì¨»ú×ÓµÄhashmap´æ´¢ÒѾ­²»ÄÜÂú×ãÎÒÃǵÄkey-valueÐèÇó£¬Ôõô°ì£¬ÎÒÃÇÐèÒª°Ñ´æ´¢ÄÚÈÝ·Ö²¼µ½²»Í¬µÄʵÌå»úÉÏ£¬ÕâʱÐèÒªÒ»ÖÖ°ÑkeyÓ³Éäµ½²»Í¬»úÆ÷µÄ·½·¨£¬ÎÒÃÇÏëÆðÁËhash£¬¿ÉÒÔ°ÑʵÌå»úµ±×öÊÇͰ£¬²ÉÓúÍhashmapʵÏÖÒ»ÑùµÄ˼·£¬Í¨¹ýºÍʵÌå»úµÄÊýÁ¿È¡Ä££¬×ÔȻӳÉäµ½²»Í¬µÄ»úÆ÷¡£

ok£¬¸ã¶¨£¬·Ö²¼Ê½È·Êµ¿ÉÒÔʵÏÖ¡£µ«ÏÖÔÚÎÊÌâÀ´ÁË£¬Èç¹ûÆäÖÐһ̨»ú×Ó¹ÒÁË£¬»òÕßÓÖ¼ÓÁËһ̨»ú×ÓÔõô°ì£¬Õâʱ³öÏÖÁ½ÖÖÇé¿ö£º

1.²»×öÈκθı䣬ÄÇô¹ÒÁ˵ÄÊý¾Ý½«ÎÞ·¨µÃµ½»Ö¸´£¬ÐÂÔöµÄ»ú×ÓÒ²ÎÞ·¨µÃµ½ÀûÓÃ

2.rehash ÕâÖÖÇé¿ö£¬Í°µÄÊýÁ¿½«»á¸Ä±ä£¬ËùÓеÄÖµ½«ÖØÐÂÓ³É䣬×îÖÕÊý¾Ý»áµÃµ½´æ´¢£¬ÕâÓÐÁ½¸öÎÊÌ⣬rehashµÄʱ¿Ì£¬ËùÓÐkey½«ÖØÐÂÓ³É䣬Õâʱ£¬¶ÔÓÚ´ó²¢·¢µÄÇéÐΣ¬ÊÇÔÖÄѵģ¬ËùÓÐÇëÇ󽫲»¾­¹ýÈκλº´æ£¬·þÎñÆ÷ÃæÁÙ±ÀÀ£µÄ·çÏÕ£¬ÔÙÕߣ¬ÀϵÄÊý¾ÝÒÀÈ»»¹ÔÚ£¬²¢ÇÒ²»»á±»Óõ½£¬ÀË·Ñ´æ´¢¿Õ¼ä¡£

ÄÇô£¬Ôõô°ì

ÒýÈëÒ»ÖÂÐÔhash

consistent hashing ÊÇÕâÑùÒ»ÖÖ hash Ëã·¨£¬¼òµ¥µÄ˵£¬ÔÚÒÆ³ý / Ìí¼ÓÒ»¸ö ½Úµã£¨»úÆ÷£¬ip£©Ê±£¬ËüÄܹ»¾¡¿ÉÄÜСµÄ¸Ä±äÒÑ´æÔÚ key Ó³Éä¹ØÏµ£¬¾¡¿ÉÄܵÄÂú×ãµ¥µ÷ÐÔ£¨£©µÄÒªÇó¡£

hash»Ø»·

ÈκεÄhashÖµ¶¼Êǹ̶¨³¤¶ÈµÄ£¬Òò´Ë¿ÉÒÔͨ¹ýÒ»¸ö»Ø»·À´³ÐÔØËùÓеÄhashÖµ£¨ÎªÊ²Ã´Óû·ºóÃæ»á˵£©

Ó³Éä

hash×î×ÜÒªµÄÒ»²½¾ÍÊǰѶÔÏóÓ³Éäµ½¶ÔÓ¦µÄͰ£¬¶øÓëͨ³£µÄhash×ö·¨Ïà±È£¬Ò»ÖÂÐÔhash»á±È½ÏÌØÊ⣬һÖÂÐÔhash²»»á½«keyÖ±½ÓÓ³É䵽Ͱ£¬¶ø½«keyºÍͰ·Ö±ðÓ³Éäµ½»Ø»·µÄ¶ÔÓ¦hashÖµ½Úµã

Ó³Éäkey

Ó³ÉäͰ

½ÓÏÂÀ´ÊÇ×îÖØÒªµÄÒ»²½£¬°ÑkeyÓ³Éäµ½¶ÔÓ¦µÄͰ

ѰͰ

ÏÖÔÚ cache ºÍ¶ÔÏó¶¼ÒѾ­Í¨¹ýͬһ¸ö hash Ëã·¨Ó³Éäµ½ hash ÊýÖµ¿Õ¼äÖÐÁË£¬½ÓÏÂÀ´Òª¿¼ÂǵľÍÊÇÈçºÎ½«¶ÔÏóÓ³Éäµ½ cache ÉÏÃæÁË¡£

ÔÚÕâ¸ö»·ÐοռäÖУ¬Èç¹ûÑØ×Å˳ʱÕë·½Ïò´Ó¶ÔÏóµÄ key Öµ³ö·¢£¬Ö±µ½Óö¼ûÒ»¸ö cache £¬ÄÇô¾Í½«¸Ã¶ÔÏó´æ´¢ÔÚÕâ¸ö cache ÉÏ£¬ÒòΪ¶ÔÏóºÍ cache µÄ hash ÖµÊǹ̶¨µÄ£¬Òò´ËÕâ¸ö cache ±ØÈ»ÊÇΨһºÍÈ·¶¨µÄ¡£ÕâÑù²»¾ÍÕÒµ½Á˶ÔÏóºÍ cache µÄÓ³Éä·½·¨ÁËÂ𣿣¡

ÒÀÈ»¼ÌÐøÉÏÃæµÄÀý×Ó£¨²Î¼ûͼ 3 £©£¬ÄÇô¸ù¾ÝÉÏÃæµÄ·½·¨£¬¶ÔÏó object1 ½«±»´æ´¢µ½ cache A ÉÏ£» object2ºÍ object3 ¶ÔÓ¦µ½ cache C £» object4 ¶ÔÓ¦µ½ cache B £»

ºÃ´¦

ÎÒÃǽ²ÁËÕâô¶àÒ»ÖÂÐÔhashµÄËã·¨£¬ÄÇôËû¾¿¾¹´øÀ´ÁËʲô£¬ÎÒÃÇ·ÖÌí¼ÓºÍɾ³ýµÄÇé¿ö¿¼ÂÇ

Ìí¼Ó

ÎÒÃÇÌí¼ÓÒ»¸öеĽڵãD£¬°´ÕÕ˳ʱÕëµÄ·½Ê½£¬Ô­ÏÈÓ³Éäµ½CµÄobject2»áÓ³Éäµ½D£¬¶øobject3Ôò»¹ÊÇÓ³Éäµ½C£¬ÕâÑùÌí¼ÓÖ»»áÓ°Ïìµ½object2£¬ÊÂʵÉÏÊÇBºÍDÖ®¼äµÄ¶ÔÏó£¬ÕâÖÖÓ°ÏìÏà±È´«Í³µÄ·½Ê½£¬Ó°ÏìÊǺÜСµÄ

ɾ³ý

ÓëÌí¼ÓÀàËÆ£¬É¾³ýÒ²Ö»»áÓ°ÏìAºÍBÖ®¼äµÄ¶ÔÏó

ÐéÄâ½Úµã

¿¼Á¿ Hash Ëã·¨µÄÁíÒ»¸öÖ¸±êÊÇÆ½ºâÐÔ (Balance) £¬¶¨ÒåÈçÏ£º

ƽºâÐÔ

ƽºâÐÔÊÇÖ¸¹þÏ£µÄ½á¹ûÄܹ»¾¡¿ÉÄÜ·Ö²¼µ½ËùÓеĻº³åÖÐÈ¥£¬ÕâÑù¿ÉÒÔʹµÃËùÓеĻº³å¿Õ¼ä¶¼µÃµ½ÀûÓá£

hash Ëã·¨²¢²»ÊDZ£Ö¤¾ø¶ÔµÄƽºâ£¬Èç¹û cache ½ÏÉٵϰ£¬¶ÔÏó²¢²»Äܱ»¾ùÔȵÄÓ³Éäµ½ cache ÉÏ£¬±ÈÈçÔÚÉÏÃæµÄÀý×ÓÖУ¬½ö²¿Êð cache A ºÍ cache C µÄÇé¿öÏ£¬ÔÚ 4 ¸ö¶ÔÏóÖУ¬ cache A ½ö´æ´¢ÁË object1 £¬¶ø cache C Ôò´æ´¢ÁË object2 ¡¢ object3 ºÍ object4 £»·Ö²¼ÊǺܲ»¾ùºâµÄ¡£

ΪÁ˽â¾öÕâÖÖÇé¿ö£¬ consistent hashing ÒýÈëÁË¡°ÐéÄâ½Úµã¡±µÄ¸ÅÄËü¿ÉÒÔÈç϶¨Ò壺

¡°ÐéÄâ½Úµã¡±£¨ virtual node £©ÊÇʵ¼Ê½ÚµãÔÚ hash ¿Õ¼äµÄ¸´ÖÆÆ·£¨ replica £©£¬Ò»Êµ¼Ê¸ö½Úµã¶ÔÓ¦ÁËÈô¸É¸ö¡°ÐéÄâ½Úµã¡±£¬Õâ¸ö¶ÔÓ¦¸öÊýÒ²³ÉΪ¡°¸´ÖƸöÊý¡±£¬¡°ÐéÄâ½Úµã¡±ÔÚ hash ¿Õ¼äÖÐÒÔ hash ÖµÅÅÁС£

ÈÔÒÔ½ö²¿Êð cache A ºÍ cache C µÄÇé¿öΪÀý£¬ÔÚͼ 4 ÖÐÎÒÃÇÒѾ­¿´µ½£¬ cache ·Ö²¼²¢²»¾ùÔÈ¡£ÏÖÔÚÎÒÃÇÒýÈëÐéÄâ½Úµã£¬²¢ÉèÖá°¸´ÖƸöÊý¡±Îª 2 £¬Õâ¾ÍÒâζ×ÅÒ»¹²»á´æÔÚ 4 ¸ö¡°ÐéÄâ½Úµã¡±£¬ cache A1, cache A2 ´ú±íÁË cache A £» cache C1, cache C2 ´ú±íÁË cache C £»¼ÙÉèÒ»ÖֱȽÏÀíÏëµÄÇé¿ö£¬²Î¼ûͼ 6 ¡£

ͼ 6 ÒýÈë¡°ÐéÄâ½Úµã¡±ºóµÄÓ³Éä¹ØÏµ

´Ëʱ£¬¶ÔÏ󵽡°ÐéÄâ½Úµã¡±µÄÓ³Éä¹ØÏµÎª£º

objec1->cache A2 £» objec2->cache A1 £» objec3->cache C1 £» objec4->cache C2 £»

Òò´Ë¶ÔÏó object1 ºÍ object2 ¶¼±»Ó³Éäµ½ÁË cache A ÉÏ£¬¶ø object3 ºÍ object4 Ó³Éäµ½ÁË cache C ÉÏ£»Æ½ºâÐÔÓÐÁ˺ܴóÌá¸ß¡£

ÒýÈë¡°ÐéÄâ½Úµã¡±ºó£¬Ó³Éä¹ØÏµ¾Í´Ó { ¶ÔÏó -> ½Úµã } ת»»µ½ÁË { ¶ÔÏó -> ÐéÄâ½Úµã } ¡£²éѯÎïÌåËùÔÚ cacheʱµÄÓ³Éä¹ØÏµÈçͼ 7 Ëùʾ¡£

ͼ 7 ²éѯ¶ÔÏóËùÔÚ cache

¡°ÐéÄâ½Úµã¡±µÄ hash ¼ÆËã¿ÉÒÔ²ÉÓöÔÓ¦½ÚµãµÄ IP µØÖ·¼ÓÊý×Öºó׺µÄ·½Ê½¡£ÀýÈç¼ÙÉè cache A µÄ IP µØÖ·Îª202.168.14.241 ¡£

ÒýÈë¡°ÐéÄâ½Úµã¡±Ç°£¬¼ÆËã cache A µÄ hash Öµ£º

Hash(¡°202.168.14.241¡±);

ÒýÈë¡°ÐéÄâ½Úµã¡±ºó£¬¼ÆËã¡°ÐéÄâ½Ú¡±µã cache A1 ºÍ cache A2 µÄ hash Öµ£º

Hash(¡°202.168.14.241#1¡±); // cache A1

Hash(¡°202.168.14.241#2¡±); // cache A2

   
2794 ´Îä¯ÀÀ       31
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þ
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS

ÃæÏòÓ¦Óõļܹ¹Éè¼ÆÊµ¼ù
µ¥Ôª²âÊÔ+ÖØ¹¹+Éè¼ÆÄ£Ê½
Èí¼þ¼Ü¹¹Ê¦¡ª¸ß¼¶Êµ¼ù
Èí¼þ¼Ü¹¹Éè¼Æ·½·¨¡¢°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù
SOAÌåϵ½á¹¹Êµ¼ù

Èñ°²¿Æ¼¼ Èí¼þ¼Ü¹¹Éè¼Æ·½·¨
³É¶¼ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£Æû³µ ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
±±¾© Èí¼þ¼Ü¹¹Éè¼Æ
ÉϺ£ Èí¼þ¼Ü¹¹Éè¼Æ°¸ÀýÓëʵ¼ù
±±¾© ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ÉîÛÚ ¼Ü¹¹Éè¼Æ·½·¨°¸ÀýÓëʵ¼ù
ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ¡ª¸ß¼¶Êµ¼ù