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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
RebornDB£ºÏÂÒ»´ú·Ö²¼Ê½Key-ValueÊý¾Ý¿â
 
×÷Õß Siddon Tang  À´Ô´:HighScalability  »ðÁú¹ûÈí¼þ  ·¢²¼ÓÚ 2015-7-15
  2875  次浏览      30
 
ÕªÒª£ºRebornDBÊÇÒ»¸ö»ùÓÚ´úÀíµÄ·Ö²¼Ê½Redis¼¯Èº½â¾ö·½°¸£¬ÓеãÏñtwemproxy¡£ËüÓÐÒ»¸öɱÊÖïµ£º¶¯Ì¬µÄÇзÖÊý¾Ý¼¯£¬¼´Í¸Ã÷µÄÖØÐÂÇзÖÊý¾Ý¶ø²»Ó°ÏìĿǰÕýÔÚÔËÐеķþÎñ¡£

ÏÖʵÊÀ½çÓÐÐí¶àµÄKey-ValueÊý¾Ý¿â£¬ËüÃǶ¼±»¹ã·ºÓ¦ÓÃÓںܶàϵͳ¡£±ÈÈ磬ÎÒÃÇÄܹ»ÓÃMemcachedÊý¾Ý¿â´æ´¢Ò»¸öMySQL²éѯ½á¹û¼¯¸øºóÐøÏàͬµÄ²éѯʹÓã¬ÓÃMongoDB´æ´¢ÎĵµÒԵõ½¸üºÃµÄ²éѯÐÔÄܵȵȡ£

Õë¶Ô²»Í¬µÄ³¡¾°£¬ÎÒÃÇÓ¦¸ÃÑ¡²»Í¬µÄKey-ValueÊý¾Ý¿â£¬Ã»ÓÐÒ»¸öKey-ValueÊý¾Ý¿âÊÊÓÃÓÚËùÓнâ¾ö·½°¸£¬µ«ÊÇÈç¹ûÄã½ö½öÏëÒªÒ»¸ö¼òµ¥¡¢Ò×ÓÚʹÓᢿìËÙ¡¢Ö§³Ö¶àÖÖÇ¿´óÊý¾Ý½á¹¹µÄKey-ValueÊý¾Ý¿â£¬Redis¿ÉÄÜÊÇÄã×÷Ϊ¿ªÊ¼µÄÒ»¸öºÜºÃµÄÑ¡Ôñ¡£

RedisÊÇÒ»¸öÏȽøµÄKey-Value»º´æºÍÊý¾Ý¿â£¬Ëü»ùÓÚBSDÐí¿ÉÖ¤¡£ËüµÄËٶȺܿ죬֧³ÖÐí¶àÊý¾ÝÀàÐÍ£¨String¡¢Hash¡¢List¡¢Set¡¢Sorted Set¡­¡­£©£¬Ê¹ÓÃRDB»òAOF³Ö¾Ã»¯ºÍ¸´ÖÆÀ´±£Ö¤Êý¾ÝµÄ°²È«ÐÔ£¬²¢ÇÒÖ§³Ö¶àÖÖÓïÑԵĿͻ§¶Ë¿â¡£

×îÖØÒªµÄÊÇÊг¡Ñ¡ÔñÁËRedis£¬ÓÐÐí¶à¹«Ë¾ÕýÔÚʹÓÃRedis²¢ÇÒËüÖ¤Ã÷ÁË×ÔÉíµÄ¼ÛÖµ¡£

ËäÈ»redisÊÇÏ൱²»´íµÄ£¬ËüÈÔÈ»ÓÐһЩȱµã£¬×î´óµÄȱµã¾ÍÊÇÄÚ´æÏÞÖÆ£¬Redis½«ËùÓÐÊý¾ÝפÁôÄڴ棬Õâ¾ÍÏÞÖÆÁËÕû¸öÊý¾Ý¼¯µÄ´óС£¬ÈÃÎÒÃDz»¿ÉÄܱ£´æ¸ü¶àµÄÊý¾Ý¡£

¹Ù·½µÄRedis¼¯ÈºÍ¨¹ý½«Êý¾Ý·Ö·¢µ½¶à¸öRedis·þÎñÆ÷À´½â¾öÕâ¸öÎÊÌ⣬µ«ÊÇÕâ¸ö·½·¨²¢Ã»ÓÐÔÚÐí¶àʵ¼Ê»·¾³Öб»Ö¤Ã÷¡£Í¬Ê±£¬ËüÐèÒªÎÒÃǸıä×Ô¼ºµÄ¿Í»§¶Ë¿âÀ´Ö§³Ö¡°MOVED¡±Öض¨ÏòºÍÆäËüÌØÊâÃüÁ¶øÕâÔÚÕýÔÚÔËÐеÄÉú²ú»·¾³Í¬ÑùÊDz»¿É½ÓÊܵġ£ËùÒÔ£¬Redis¼¯ÈºÏÖÔÚ¿´À´²¢²»ÊÇÒ»¸öºÃµÄ½â¾ö·½°¸¡£

QDB

ÎÒÃÇϲ»¶Redis£¬²¢ÇÒÏ£Íû³¬Ô½ËüµÄ¾ÖÏÞ£¬Òò´ËÎÒÃÇ´´½¨ÁËÒ»¸ö·þÎñ½Ð×öQDB£¬Ëü¼æÈÝRedis£¬½«Êý¾Ý±£´æÔÚ´ÅÅÌÀ´Ô½¹ýÄÚ´æ´óСµÄÏÞÖÆ²¢ÇÒ½«ÈȵãÊý¾Ý±£´æÔÚÄÚ´æÖÐÒÔÌá¸ßÐÔÄÜ¡£

½éÉÜ

QDBÊÇÒ»¸öÀàËÆRedisµÄ¿ìËÙKey-ValueÊý¾Ý¿â£¬ËüÓÐÒÔÏÂÓŵ㣺

  • ¼æÈÝRedis£ºÈç¹ûÄã¶ÔRedisºÜÊìϤ£¬Äã¾ÍÄÜÇáËÉʹÓÃQDB£¬ËüÖ§³Ö´ó¶àÊýµÄRedisÃüÁîºÍÊý¾Ý½á¹¹£¨String¡¢Hash¡¢List¡¢Set¡¢Sorted SetµÈ£©£»
  • ½«Êý¾Ý±£´æÔÚ´ÅÅÌ£º£¨³¬Ô½ÄÚ´æ´óСÏÞÖÆ£©¿ÉÒÔ½«ÈȵãÊý¾ÝÔÚÄÚ´æÖб£´æ£¬ÀûÓÃÁ˺ó¶Ë´æ´¢£»
  • Ö§³Ö¶àÖÖºó¶Ë´æ´¢£ºÄã¿ÉÒÔÑ¡ÔñRocksDB¡¢LevelDB»òÕßGoLevelDB£¨ÉÔºó£¬ÎÒÃǽ«ÓÃRocksDBs×÷ΪÀý×Ó½²½â£©£»
  • ºÍRedisË«Ïòͬ²½£ºÎÒÃÇ¿ÉÒÔ×÷Ϊһ¸ö´Ó½Úµã´ÓRedisͬ²½Êý¾Ý£¬Ò²¿ÉÒÔ×÷Ϊһ¸öÖ÷½Úµã¸´ÖÆÊý¾Ýµ½Redis¡£

ºó¶Ë´æ´¢

QDBʹÓÃLevelDB¡¢RocksDB¡¢GoLevelDB×÷Ϊºó¶Ë´æ´¢¡£ÕâЩ´æ´¢¶¼ÊÇ»ùÓÚÓÐןܺõĿìËÙ¶ÁдÐÔÄܵÄÈÕÖ¾½á¹¹µÄºÏ²¢Ê÷£¨LSMÊ÷£©£¬Í¬Ê±ËûÃǶ¼Ê¹Óò¼Â¡¹ýÂËÆ÷ºÍLRU»º´æ£¨LRU£º×îÉÙʹÓÃÒ³ÃæÖû»Ëã·¨£©À´Ìá¸ß¶ÁµÄÐÔÄÜ¡£

LevelDBÊÇÓÉGoogle¿ª·¢µÄ×îÔçµÄ°æ±¾£¬RocksDBÊÇÓÉFacebookά»¤µÄÒ»¸öÓÅ»¯°æ±¾£¬GoLevelDBÊÇÒ»¸ö´¿´âÓÃGOÓïÑÔʵÏÖµÄLevelDB¡£Èç¹ûÄã½ö½öÏëÒªÒ»¸ö¿ìËÙÊÔÑé²¢ÇÒ²»Ïë¹¹½¨ºÍ°²×°RocksDB»òÕßLevelDB£¬Äã¿ÉÒÔÖ±½ÓʹÓÃGoLevelDB£¬µ«ÊÇÎÒÃDz»ÍƼöÄ㽫ÆäʹÓÃÔÚÉú²ú»·¾³ÖУ¬ÒòΪËüµÄÐÔÄܱȽϲ

LevelDBºÍRocksDB¶ÔÓÚÄãµÄÉú²ú»·¾³À´Ëµ¶¼ÊǷdz£²»´íµÄ£¬µ«ÊǼøÓÚRocksDB¾ø¼ÑµÄÐÔÄÜ£¬ÎÒÃǸüϲ»¶RocksDB£¬Ö®ºóÎÒÃǽ«Ö»Ö§³ÖRocksDBºÍGoLevelDB£¬Ò»¸öÓÃÓÚÉú²ú»·¾³£¬ÁíÒ»¸öÓÃÓÚÊÔÑéºÍ²âÊÔ»·¾³ÖС£

RebirnDB

QDBÊǺܰôµÄ£¬ÎÒÃÇÄܹ»ÔÚÒ»¸ö»úÆ÷ÉÏ´æ´¢¾Þ´óµÄÊý¾Ý£¬²¢ÇÒ»ñµÃ½ÏºÃµÄ¶ÁдÐÔÄÜ£¬µ«ÊÇËæ×ÅÊý¾Ý¼¯µÄÔö³¤£¬ÎÒÃÇÈÔÈ»»áÃæÁÙÕâÑùµÄÎÊÌ⣬¼´£ºÎÒÃDz»Äܽ«ËùÓÐÊý¾Ý¶¼±£´æÔÚÒ»¸ö»úÆ÷ÉÏ¡£Í¬Ê±£¬QDB·þÎñÆ÷½«±ä³ÉÒ»¸öÆ¿¾±²¢ÇÒÃæÁÙµ¥µãʧ°ÜµÄ·çÏÕ¡£

ÏÖÔÚÎÒÃDZØÐëÒª¿¼ÂǼ¯Èº½â¾ö·½°¸ÁË¡£

½éÉÜ

RebornDBÊÇÒ»¸ö»ùÓÚ´úÀíµÄ·Ö²¼Ê½Redis¼¯Èº½â¾ö·½°¸¡£ËüÓеãÏñtwemproxy£¬Ò»¸ö¼¸ºõÊÇ×îÔçµÄ¡¢×îÖøÃûµÄ»ùÓÚ´úÀíµÄRedis¼¯Èº½â¾ö·½°¸¡£

µ«ÊÇtwemproxyÓÐËü×Ô¼ºµÄÎÊÌ⣬Ëü½ö½öÖ§³Ö¾²Ì¬µÄ¼¯ÈºÍØÆË£¬Òò´ËÎÒÃDz»Äܶ¯Ì¬µÄÌí¼Ó»òÕßɾ³ýredis½ÚµãÀ´ÖØÐÂÇзÖÊý¾Ý¡£Èç¹ûÎÒÃÇÔËÐÐ×ÅÐí¶àµÄtwemproxy²¢ÇÒÏ£ÍûÌí¼ÓÒ»¸öRedisºó¶Ë½Úµã£¬ÁíÒ»¸öÎÊÌâÊÇÈçºÎÈÃËùÓеÄtwemproxy°²È«µÄ¸üÐÂÅäÖ㬶øÕ⽫Ôö¼ÓIT²Ù×÷µÄ¸´ÔÓÐÔ¡£Í¬Ê±£¬Twitter£¨ÕýÔÚ¿ª·¢twemproxyµÄ¹«Ë¾£©Ä¿Ç°ÒѾ­·ÅÆú²¢²»ÔÙ½«ÆäÓ¦ÓÃÓÚÉú²ú»·¾³¡£

²»Í¬ÓÚtwemproxy£¬RebornDBÓÐÒ»¸öɱÊÖïµ£º¶¯Ì¬µÄÇзÖÊý¾Ý¼¯£¬Õ⽫·Ç³£ÓÐÓã¬ÌرðÊÇÔÚÄãµÄÊý¾Ý¼¯Ôö³¤ºÜ¿ì£¬Äã²»µÃ²»Ôö¼Ó¸ü¶àµÄ´æ´¢½ÚµãÀ´À©Õ¹¼¯ÈºµÄÇé¿öÏ¡£×ÜÖ®£¬RebornDB½«»á͸Ã÷µÄÖØÐÂÇзÖÊý¾Ý¶ø²»Ó°ÏìĿǰÕýÔÚÔËÐеķþÎñ¡£

¼Ü¹¹

ÎÒÃÇ¿ÉÒÔ½«RebornDBÏëÏó³ÉÒ»¸öºÚºÐ£¬ÏñÒ»¸öµ¥½ÚµãµÄRedis·þÎñÆ÷Ò»ÑùÓÃÈκÎÏÖÓеÄRedis¿Í»§¶ËÈ¥ºÍËüͨÐÅ¡£ÏÂÃæµÄͼƬչʾÁËRebornDBµÄ¼Ü¹¹¡£

RebornDBÓÐÒÔÏÂ×é¼þ£ºreborn-proxy, backend store, coordinator, reborn-config, and reborn-agent.

  • Reborn-proxy

reborn-proxyΪ¿Í»§¶ËÌṩµ¥Ò»µÄÍⲿ·þÎñ¡£ÈκÎredis¿Í»§¶Ë¶¼ÄÜÁ¬½Óµ½ÈÎÒ»reborn-proxy²¢ÔËÐÐÃüÁî¡£

reborn-proxyÓÃRESP½âÎöÀ´×Ô¿Í»§¶ËµÄÃüÁ½«Æä·Ö·¢ÖÁ¶ÔÓ¦µÄºó¶Ë´æ´¢£¬½ÓÊÕµ½ºó¶Ë´æ´¢µÄ´ð¸´²¢·µ»Ø¿Í»§¶Ë¡£

Reborn-proxyÊÇÎÞ״̬µÄ£¬Òâ˼ÊÇ˵Äã¿ÉÒÔºÜÈÝÒ×µÄˮƽÀ©Õ¹redis-proxyÀ´´¦Àí¸ü¶àµÄ·þÎñÇëÇó¡£
ÎÒÃÇ¿ÉÒÔÓÐÐí¶àµÄReborn-proxy£¬ÔÚ·Ö²¼Ê½ÏµÍ³Éè¼ÆµÄʱºòÔõôÈÿͻ§¶Ë·¢ÏÖËüÃÇÊÇÁíÒ»¸öÖ÷Ìâ,µ«ÊÇÎÒÃDz»»áÔÚÕâÀïÉîÈë̽ÌÖÕâ¸öÎÊÌ⣬һЩʵÓõķ½·¨ÊÇʹÓÃDNS£¬LVS£¬HAProxyµÈµÈ¡£

  • ºó¶Ë´æ´¢Æ÷£¨Backend store£©

ºó¶Ë´æ´¢Æ÷ÊÇreborn-server£¨Ò»¸öÐ޸ĵÄredis°æ±¾£©»òÕßQDB¡£ÎÒÃÇÒýÈëÒ»¸ö¸ÅÄî½Ð×ö×飨group£©À´¹ÜÀíÒ»¸ö»òÕß¶à¸öºó¶Ë´æ´¢¡£Ò»¸ö×飨group£©±ØÐëÓÐÒ»¸öÖ÷½ÚµãºÍÁã¸ö¡¢Ò»¸ö»òÕß¶à¸ö´Ó½ÚµãÐγɸ´ÖÆÍØÆË½á¹¹¡£

ÎÒÃǽ«Õû¸öÊý¾Ý¼¯·Ö³É1024¸öslots£¨ÎÒÃÇÓÃhash(key)24À´¾ö¶¨Õâ¸ökeyÊôÓÚÄĸöslot£©£¬²¢ÇÒ½«²»Í¬µÄslot±£´æµ½²»Í¬µÄ×é¡£Èç¹ûÄãÏëÖØÐÂÇзÖÊý¾Ý£¬Äã¿ÉÒÔÔö¼ÓÒ»¸öеÄ×é²¢ÈÃRebornDB´ÓÁíÒ»¸ö×éÇ¨ÒÆÒ»¸öslotµÄËùÓÐÊý¾Ýµ½ÐµÄ×é¡£

ÎÒÃÇÒ²¿ÉÒÔÈò»Í¬µÄ×é²ÉÓò»Í¬µÄºó¶Ë´æ´¢Æ÷¡£ÀýÈ磺ÎÒÃÇÏ£Íûgroup1À´±£´æÈȵãÊý¾Ý£¬group2À´±£´æ´óÁ¿µÄÀäÊý¾Ý£¬ÄÇôÎÒÃǾÍÄÜʹÓÃreborn-server¹¹³Égroup1£¬QDB¹¹³Égroup2.Reborn-server±ÈQDB¿ìºÜ¶à£¬Òò´ËÎÒÃÇÄܹ»±£Ö¤ÈȵãÊý¾ÝµÄ¶ÁдÐÔÄÜ¡£

  • Эµ÷Æ÷£¨Coordinator£©

ÎÒÃÇʹÓÃzookeeper»òÕßetcd×÷ΪЭµ÷·þÎñÆ÷£¬µ±ÎÒÃÇÐèÒª×öһЩд²Ù×÷µÄʱºò£¬ÀýÈçÖØÐÂÇз֣¬¹ÊÕÏ×ªÒÆµÈ£¬ËüÃÇ»áЭµ÷ËùÓеķþÎñ¡£

ËùÓÐRebornDBµÄÐÅÏ¢¶¼±»±£´æÔÚЭµ÷Æ÷ÖУ¬ÀýÈç¹Ø¼ü·ÓɹæÔò£¬reborn-proxy¿ÉÒÔ¸ù¾ÝËü½«ÃüÁîÕýÈ·µÄ·Ö·¢ÖÁºó¶Ë´æ´¢Æ÷¡£

  • Reborn-config

Reborn-configÊÇÒ»¸ö¹ÜÀí¹¤¾ß£¬ÎÒÃÇ¿ÉÒÔʹÓÃËüÔö¼Ó»òɾ³ý×飬ÀýÈçÔö¼Ó»òɾ³ý×éÖеĴ洢£¬´ÓÒ»¸ö×éÇ¨ÒÆÊý¾ÝÖÁÁíÒ»¸ö×éµÈµÈ¡£

Èç¹ûÎÒÃÇÏëÒª¸Ä±äRebornDB¼¯ÈºµÄÐÅÏ¢£¬¾Í±ØÐëʹÓÃReborn-config¡£ÀýÈ磺ÎÒÃDz»ÄÜÖ±½ÓʹÓá°SLAVE NO ONE¡±ÃüÁºó¶Ë´æ´¢Æ÷ÌáÉýΪÖ÷½Úµã£¬¶ø±ØÐëʹÓá°reborn-config server promote groupid server¡±ÎÒÃDZØÐë²»½ö½ö¸Ä±ä×éÄڵĸ´ÖÆÍØÆË½á¹¹£¬¶øÇÒÒª¸üÐÂЭµ÷Æ÷ÖеÄÐÅÏ¢£¬¶øÕâЩֻÓÐReborn-configÄܹ»×öµ½¡£

Reborn-configÒ²ÌṩÁËÒ»¸öÍøÕ¾·þÎñ£¬Òò´ËÄã¿ÉÒÔºÜÈÝÒ׵ĹÜÀíRebornDB£¬Èç¹ûÐèÒª¸ü¶àµÄ¿ØÖÆ£¬Äã¿ÉÒÔʹÓÃËüµÄHTTP RESTFUL API¡£

  • Reborn-agent

Reborn-agentÊÇÒ»¸ö¸ß¿ÉÓÃ×é¼þ¡£Äã¿ÉÒÔÓÃËüÆô¶¯ºÍÍ£Ö¹Ó¦Óã¨reborn-config, qdb-server, reborn-server, reborn-proxy£©¡£ÎÒÃǽ«ÔÚ½ÓÏÂÀ´µÄ¸ß¿ÉÓò¿·ÖÏêϸÌÖÂÛ¡£

ÖØÐÂÇз֣¨Resharding£©

RebornDBÖ§³Ö¶¯Ì¬µÄÖØÐÂÇзÖÊý¾Ý¡£ÎÒÃÇÊÇÔõô×öµ½µÄÄØ£¿

ÕýÈçÎÒÃÇÉÏÃæËµµÄ£¬ÎÒÃǽ«Õû¸öÊý¾Ý¼¯·Ö³É1024¸öslots£¬²¢ÇÒ½«²»Í¬µÄslot±£´æµ½²»Í¬µÄ×é¡£µ±ÎÒÃÇÐÂÔö¼ÓÒ»¸ö×éµÄʱºò£¬ÎÒÃǻὫһЩslots´Ó¾ÉµÄ×éÇ¨ÒÆµ½ÐÂ×éÖС£ÔÚÖØÐÂÇзֹý³ÌÖÐÎÒÃǽ«Ëü½Ð×öÇ¨ÒÆ¡£ÔÚRebornDBÖÐ×îСµÄÇ¨ÒÆµ¥ÔªÊÇslot¡£

ÈÃÎÒÃÇ´ÓÏÂÃæµÄÒ»¸ö¼òµ¥µÄÀý×Ó¿ªÊ¼£º

ÎÒÃÇÓÐÁ½¸ö×飬group1ÓÐÁ½¸öslot 1ºÍ2£¬group2ÓÐÈý¸öslot 3¡¢4¡¢5.ÏÖÔÚgroup2µÄ¹¤×÷Á¿±È½Ï´ó£¬ÎÒÃǽ«»áÔö¼Ógroup3²¢½«slot5Ç¨ÒÆ½øÈ¥¡£

ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁîÀ´½«slot5´Ógroup2Ç¨ÒÆÖÁgroup3¡£

reborn-config slot migrate 5 2 3

£¨ÒëÕß×¢£ºÔ­ÎÄΪreborn-config slot migrate 5 5 3ÓÐÎó£©

Õâ¸öÃüÁî¿´ÆðÀ´ºÜ¼òµ¥£¬µ«ÊÇÎÒÃÇÐèÒªÔÚÄÚ²¿×öºÜ¶à¹¤×÷À´±£Ö¤Ç¨ÒƵݲȫÐÔ¡£ÎÒÃDZØÐëʹÓÃÁ½½×¶ÎÌύЭÒ飨2PC£©À´¸æËßreborn-proxyÎÒÃǽ«°Ñslot5´Ógroup2Ç¨ÒÆÖÁgroup3¡£´ýËùÓÐreborn-proxyÈ·Èϲ¢ÇÒ´ð¸´Ö®ºó£¬ÎÒÃǽ«¿ªÊ¼Ç¨ÒƲÙ×÷¡£

Ç¨ÒÆµÄÁ÷³Ì±È½Ï¼òµ¥£º´Óslot5Öеõ½Ò»¸ökey£¬´Ógroup2Ç¨ÒÆËüµÄÊý¾ÝÖÁgroup3£¬È»ºóɾ³ýgroup2ÖеÄkey£¬Èç´ËÑ­»·¡£×îºógroup2ÖоÍûÓÐslot5µÄÊý¾Ý¶øËùÓÐslot5µÄÊý¾Ý¶¼ÔÚgroup3ÖС£

keyµÄÇ¨ÒÆÊÇÔ­×ÓÐԵģ¬Òò´ËÎÞÂÛÕâ¸ökey֮ǰÊÇ·ñÔÚgroup2»òÕßgroup3ÖУ¬ÎÒÃÇÄܹ»È·¶¨µÄÊÇÔÚÖ´ÐÐÇ¨ÒÆÃüÁîÖ®ºóËüÊÇÔÚgroup3Öеġ£

Èç¹ûÔÚgroup2ÖÐûÓÐÊý¾ÝÊÇÊôÓÚslot5µÄ£¬ÎÒÃǽ«Í£Ö¹Ç¨ÒÆ£¬ÍØÆË½á¹¹¿´ÆðÀ´ÊÇÏÂÃæÕâ¸öÑù×Ó£º

¸ß¿ÉÓÃÐÔ£¨High Availability£©

RebornDBʹÓÃreborn-agentÀ´ÌṩHA½â¾ö·½°¸¡£

reborn-agentÿʱÿ¿Ì¶¼ÔÚ¼ì²éËüÆô¶¯µÄÓ¦ÓÃÊÇ·ñÊǻµÄ£¬Èç¹ûreborn-agent·¢ÏÖÒ»¸öÓ¦ÓùҵôÁË£¬Ëü»áÖØÐÂÆô¶¯Õâ¸öÓ¦Óá£

Reborn-agentÓеãÏñÒ»¸ö¹ÜÀíÔ±£¬µ«ÊÇËüÓиü¶àµÄÌØµã¡£

Reborn-agentÌṩHTTP Restful API·½±ãÎÒÃÇÌí¼Ó»òɾ³ýÐèÒª±»¶¯Ì¬¼à¿ØµÄÓ¦ÓóÌÐò¡£ÀýÈ磺ÎÒÃÇÄܹ»Ê¹ÓÃHTTP ¡°/api/start_redis¡± APIÀ´Æô¶¯Ò»¸öеÄreborn-server£¬»òÕß¡°/api/start_proxy¡± APIÀ´Æô¶¯Ò»¸öеÄreborn-proxy£¬ÎÒÃÇÒ²Äܹ»Óá°/api/stop¡±À´Í£Ö¹Ò»¸öÕýÔÚÔËÐеÄÓ¦Óò¢ÇÒ´ÓĿǰµÄ¼à¿ØÁбíÖÐɾ³ýËü¡£

Reborn-agent²»½ö½öÓ¦ÓÃÓÚ±¾µØÓ¦ÓÃµÄ¼à¿Ø£¬Í¬ÑùÊÊÓÃÓÚºǫ́´æ´¢µÄHA¡£¶à¸öReborn-agent½«Ê×ÏÈͨ¹ýЭµ÷Æ÷Ñ¡ÔñÒ»¸öÖ÷reborn-agent£¬Ëü»á²»¶Ï¼ì²éºó¶Ë´æ´¢Æ÷ÊÇ·ñÊǻµÄ£¬Èç¹û·¢ÏÖºó¶Ë´æ´¢Æ÷å´»úÁË£¬Ëü¾Í»á½øÐйÊÕÏ×ªÒÆ¡£Èç¹ûå´»úµÄºó¶Ë´æ´¢Æ÷ÊÇÒ»¸ö´Ó½Úµã£¬reborn-agent½«Ö»»áÔÚЭµ÷Æ÷Öн«ËüÉèÖÃΪÀëÏߣ¬µ«ÊÇÈç¹ûËüÊÇÖ÷½Úµã£¬reborn-agent½«»á´ÓÏÖÓеĴӽڵãÖÐÑ¡ÔñÒ»¸ö×÷ΪÖ÷½Úµã²¢½øÐйÊÕÏ×ªÒÆ²Ù×÷¡£

¼´½«Òª×öµÄ......

¾¡¹ÜRebornDBÓÐÐí¶àºÜ°ôµÄÌØÐÔ£¬ÎÒÃÇÈÔÈ»ÐèÒª¸ü¶àµÄ¹¤×÷È¥½øÒ»²½ÌáÉýËü£¬ÎÒÃǺóÐø¿ÉÄÜ×öÕâЩÊÂÇ飺

  • ¸üºÃµÄÓû§ÌåÑ飺ÏÖÔÚÔËÐÐRebornDB²¢²»ÊÇÄÇôÈÝÒ×£¬ÎÒÃǽ«Òª×öһϵÁй¤×÷ÖîÈç³õʼ»¯slots¡¢Ìí¼Ó·þÎñµ½groupÖС¢·ÖÅäslots¸øÒ»¸ö×éµÈµÈ£¬ÔÚδÀ´µÄ¹¤×÷ÖУ¬ÈçºÎ½µµÍÓû§µÄʹÓÃÃż÷ÊÇÎÒÃDZØÐëÒª¿¼ÂǵÄÎÊÌ⣻
  • ¸´ÖÆÇ¨ÒÆ£ºÏÖÔÚÎÒÃÇÇ¨ÒÆÊÇÖð¸ökeyÇ¨ÒÆslot£¬Èç¹ûÒ»¸öslot°üº¬Ðí¶àÊý¾ÝµÄ»°ËٶȾͲ»ÊǺܿ죬ʹÓø´ÖÆÇ¨ÒÆ¿ÉÄÜ»áºÃºÜ¶à¡£ÔÚÉÏÃæµÄÀý×ÓÖУ¬group2Ê×ÏȲúÉúÒ»¸ö¿ìÕÕ£¬group3Äܹ»ÔÚÄǸöʱ¼äµãÈ¡µÃËùÓÐslot5µÄÊý¾Ý£¬Ö®ºógroup3½«´Ógroup2ÔöÁ¿Í¬²½±ä»¯µÄÊý¾Ý¡£µ±ÎÒÃÇ·¢ÏÖgroup3È¡µÃÁËgroup2ÖÐslot5ËùÓб仯µÄÊý¾ÝÖ®ºó£¬ÎÒÃǽ«½øÐÐÇл»£¬²¢´Ógroup2ÖÐɾ³ýslot5£»
  • ¾«ÃÀµÄÒDZí°å£ºÎªÁËÌṩ¸üºÃµÄÓû§ÌåÑ飬ÎÒÃÇÏ£Íûͨ¹ýÒDZí°å¿ØÖÆºÍ¼à¿ØÒ»ÇÐÊÂÎñ¡£»ùÓÚP2PµÄ¼¯Èº£ºÏÖÔÚRebornDBÊÇÒ»¸ö»ùÓÚ´úÀíµÄ¼¯Èº½â¾ö·½°¸£¬ÎÒÃÇ¿ÉÄÜÖØÐÂÉè¼ÆÕû¸ö¼Ü¹¹£¬Ö®ºó½«Ê¹ÓÃP2P£¬¾ÍÏñ¹Ù·½redis¼¯ÈºÒ»Ñù

×ܽá

¹¹½¨Ò»¸ö·Ö²¼Ê½Key-valueÊý¾Ý¿â²»ÊÇÒ»¼þÈÝÒ×µÄÊÂÇ飬ǰ·½µÄ·»¹ºÜ³¤£¬ÎÒÃÇÏÖÔÚÖ»ÊÇÂõ³öÁËһС²½¡£

Èç¹ûÄãÏëÒªÓÃÒ»¸öÏñredisµÄ¡¢´æ´¢¸ü¶àÊý¾Ý¡¢Ö§³ÖÔÚ·Ö²¼Ê½ÏµÍ³Öж¯Ì¬ÇзÖÊý¾ÝµÄKey-valueÊý¾Ý¿â£¬RebornDB½«ÊÇÒ»¸ö²»´íµÄÑ¡Ôñ¡£

 

   
2875 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí