ͻ񻣼
¸ß¿ÉÓÃÐÔ¼´HA£¨High Availability£©Ö¸µÄÊÇͨ¹ý¾¡Á¿Ëõ¶ÌÒòÈÕ³£Î¬»¤²Ù×÷£¨¼Æ»®£©ºÍÍ»·¢µÄϵͳ±ÀÀ££¨·Ç¼Æ»®£©Ëùµ¼ÖµÄÍ£»úʱ¼ä£¬ÒÔÌá¸ßϵͳºÍÓ¦ÓõĿÉÓÃÐÔ¡£
>>¸ß¿ÉÓü¯ÈºµÄ½â¾ö·½°¸
¸ß¿ÉÓÃÐÔ¼´HA£¨High Availability£©Ö¸µÄÊÇͨ¹ý¾¡Á¿Ëõ¶ÌÒòÈÕ³£Î¬»¤²Ù×÷£¨¼Æ»®£©ºÍÍ»·¢µÄϵͳ±ÀÀ££¨·Ç¼Æ»®£©Ëùµ¼ÖµÄÍ£»úʱ¼ä£¬ÒÔÌá¸ßϵͳºÍÓ¦ÓõĿÉÓÃÐÔ¡£
¼ÆËã»úϵͳµÄ¸ß¿ÉÓÃÔÚ²»Í¬µÄ²ãÃæÉÏÓв»Í¬µÄ±íÏÖ£º
£¨1£©ÍøÂç¸ß¿ÉÓÃ
ÓÉÓÚÍøÂç´æ´¢µÄ¿ìËÙ·¢Õ¹£¬ÍøÂçÈßÓ༼Êõ±»²»¶ÏÌáÉý£¬Ìá¸ßITϵͳµÄ¸ß¿ÉÓÃÐԵĹؼüÓ¦ÓþÍÊÇÍøÂç¸ß¿ÉÓÃÐÔ£¬ÍøÂç¸ß¿ÉÓÃÐÔÓëÍøÂç¸ß¿É¿¿ÐÔÊÇÓÐÇø±ðµÄ£¬ÍøÂç¸ß¿ÉÓÃÐÔÊÇͨ¹ýÆ¥ÅäÈßÓàµÄÍøÂçÉ豸ʵÏÖÍøÂçÉ豸µÄÈßÓ࣬´ïµ½¸ß¿ÉÓõÄÄ¿µÄ¡£
±ÈÈçÈßÓàµÄ½»»»»ú£¬ÈßÓàµÄ·ÓÉÆ÷µÈ
£¨2£©·þÎñÆ÷¸ß¿ÉÓÃ
·þÎñÆ÷¸ß¿ÉÓÃÖ÷ҪʹÓõÄÊÇ·þÎñÆ÷¼¯ÈºÈí¼þ»ò¸ß¿ÉÓÃÈí¼þÀ´ÊµÏÖ¡£
£¨3£©´æ´¢¸ß¿ÉÓÃ
ʹÓÃÈí¼þ»òÓ²¼þ¼¼ÊõʵÏÖ´æ´¢µÄ¸ß¶È¿ÉÓÃÐÔ¡£ÆäÖ÷Òª¼¼ÊõÖ¸±êÊÇ´æ´¢Çл»¹¦ÄÜ£¬Êý¾Ý¸´Öƹ¦ÄÜ£¬Êý¾Ý¿ìÕÕ¹¦Äܵȡ£µ±Ò»Ì¨´æ´¢³öÏÖ¹ÊÕÏʱ£¬Áíһ̨±¸ÓõĴ洢¿ÉÒÔ¿ìËÙÇл»£¬´ïÒ»´æ´¢²»Í£»úµÄÄ¿µÄ¡£
>>MongoDBµÄ¸ß¿ÉÓü¯ÈºÅäÖÃ
¸ß¿ÉÓü¯Èº£¬¼´High Availability Cluster£¬¼ò³ÆHA Cluster¡£
¼¯Èº£¨cluster£©¾ÍÊÇÒ»×鼯Ëã»ú£¬ËüÃÇ×÷Ϊһ¸öÕûÌåÏòÓû§Ìṩһ×éÍøÂç×ÊÔ´¡£
ÕâЩµ¥¸öµÄ¼ÆËã»úϵͳ ¾ÍÊǼ¯ÈºµÄ½Úµã£¨node£©¡£
´î½¨¸ß¿ÉÓü¯ÈºÐèÒªºÏÀíµÄÅäÖöą̀¼ÆËã»úÖ®¼äµÄ½ÇÉ«£¬Êý¾Ý»Ö¸´£¬Ò»ÖÂÐԵȣ¬Ö÷ÒªÓÐÒÔϼ¸ÖÖ·½Ê½£º
£¨1£©Ö÷´Ó·½Ê½ £¨·Ç¶Ô³Æ·½Ê½£©
Ö÷»ú¹¤×÷£¬±¸»ú´¦ÓÚ¼à¿Ø×¼±¸×´¿ö£»µ±Ö÷»úå´»úʱ£¬±¸»ú½Ó¹ÜÖ÷»úµÄÒ»Çй¤×÷£¬´ýÖ÷»ú»Ö¸´Õý³£ºó£¬°´Ê¹ÓÃÕßµÄÉ趨ÒÔ×Ô¶¯»òÊÖ¶¯·½Ê½½«·þÎñÇл»µ½Ö÷»úÉÏÔËÐУ¬Êý¾ÝµÄÒ»ÖÂÐÔͨ¹ý¹²Ïí´æ´¢ÏµÍ³½â¾ö¡£
£¨2£©Ë«»úË«¹¤·½Ê½£¨»¥±¸»¥Ô®£©
Á½Ì¨Ö÷»úͬʱÔËÐи÷×ԵķþÎñ¹¤×÷ÇÒÏ໥¼à²âÇé¿ö£¬µ±ÈÎһ̨Ö÷»úå´»úʱ£¬Áíһ̨Ö÷»úÁ¢¼´½Ó¹ÜËüµÄÒ»Çй¤×÷£¬±£Ö¤¹¤×÷ʵʱ£¬Ó¦Ó÷þÎñϵͳµÄ¹Ø¼üÊý¾Ý´æ·ÅÔÚ¹²Ïí´æ´¢ÏµÍ³ÖС£
£¨3£©¼¯Èº¹¤×÷·½Ê½£¨¶à·þÎñÆ÷»¥±¸·½Ê½£©
¶ą̀Ö÷»úÒ»Æð¹¤×÷£¬¸÷×ÔÔËÐÐÒ»¸ö»ò¼¸¸ö·þÎñ£¬¸÷Ϊ·þÎñ¶¨ÒåÒ»¸ö»ò¶à¸ö±¸ÓÃÖ÷»ú£¬µ±Ä³¸öÖ÷»ú¹ÊÕÏʱ£¬ÔËÐÐÔÚÆäÉϵķþÎñ¾Í¿ÉÒÔ±»ÆäËüÖ÷»ú½Ó¹Ü¡£
MongoDB¼¯ÈºÅäÖõÄʵ¼ùÒ²×ñÑÁËÕ⼸¸ö·½°¸£¬Ö÷ÒªÓÐÖ÷´Ó½á¹¹£¬¸±±¾¼¯·½Ê½ºÍSharding·ÖƬ·½Ê½¡£
>>Master-SlaveÖ÷´Ó½á¹¹

Ö÷´Ó¼Ü¹¹Ò»°ãÓÃÓÚ±¸·Ý»òÕß×ö¶Áд·ÖÀë¡£Ò»°ãÓÐÒ»Ö÷Ò»´ÓÉè¼ÆºÍÒ»Ö÷¶à´ÓÉè¼Æ¡£
ÓÉÁ½ÖÖ½ÇÉ«¹¹³É£º
£¨1£©Ö÷(Master)
¿É¶Á¿Éд£¬µ±Êý¾ÝÓÐÐ޸ĵÄʱºò£¬»á½«oplogͬ²½µ½ËùÓÐÁ¬½ÓµÄsalveÉÏÈ¥¡£
£¨2£©´Ó(Slave)
Ö»¶Á²»¿Éд£¬×Ô¶¯´ÓMasterͬ²½Êý¾Ý¡£
ÌØ±ðµÄ£¬¶ÔÓÚMongodbÀ´Ëµ£¬²¢²»ÍƼöʹÓÃMaster-Slave¼Ü¹¹£¬ÒòΪMaster-SlaveÆäÖÐMasterå´»úºó²»ÄÜ×Ô¶¯»Ö¸´£¬ÍƼöʹÓÃReplica
Set£¬ºóÃæ»áÓнéÉÜ£¬³ý·ÇReplicaµÄ½ÚµãÊý³¬¹ý50£¬²ÅÐèҪʹÓÃMaster-Slave¼Ü¹¹£¬Õý³£Çé¿öÊDz»¿ÉÄÜÓÃÄÇô¶à½ÚµãµÄ¡£
»¹ÓÐÒ»µã£¬Master-Slave²»Ö§³ÖÁ´Ê½½á¹¹£¬SlaveÖ»ÄÜÖ±½ÓÁ¬½ÓMaster¡£RedisµÄMaster-SlaveÖ§³ÖÁ´Ê½½á¹¹£¬Slave¿ÉÒÔÁ¬½ÓSlave£¬³ÉΪSlaveµÄSlave¡£
>>Relica Set¸±±¾¼¯·½Ê½
MongodbµÄReplica Set¼´¸±±¾¼¯·½Ê½Ö÷ÒªÓÐÁ½¸öÄ¿µÄ£¬Ò»¸öÊÇÊý¾ÝÈßÓà×ö¹ÊÕϻָ´Ê¹Ó㬵±·¢ÉúÓ²¼þ¹ÊÕÏ»òÕ߯äËüÔÒòÔì³ÉµÄå´»úʱ£¬¿ÉÒÔʹÓø±±¾½øÐлָ´¡£
ÁíÒ»¸öÊÇ×ö¶Áд·ÖÀ룬¶ÁµÄÇëÇó·ÖÁ÷µ½¸±±¾ÉÏ£¬¼õÇáÖ÷£¨Primary£©µÄ¶ÁѹÁ¦¡£
1.PrimaryºÍSecondary´î½¨µÄReplica Set

Replica SetÊÇmongodµÄʵÀý¼¯ºÏ£¬ËüÃÇÓÐ×ÅͬÑùµÄÊý¾ÝÄÚÈÝ¡£°üº¬ÈýÀà½ÇÉ«£º
£¨1£©Ö÷½Úµã£¨Primary£©
½ÓÊÕËùÓеÄдÇëÇó£¬È»ºó°ÑÐÞ¸Äͬ²½µ½ËùÓÐSecondary¡£Ò»¸öReplica SetÖ»ÄÜÓÐÒ»¸öPrimary½Úµã£¬µ±Primary¹Òµôºó£¬ÆäËûSecondary»òÕßArbiter½Úµã»áÖØÐÂÑ¡¾Ù³öÀ´Ò»¸öÖ÷½Úµã¡£Ä¬È϶ÁÇëÇóÒ²ÊÇ·¢µ½Primary½Úµã´¦ÀíµÄ£¬ÐèҪת·¢µ½SecondaryÐèÒª¿Í»§¶ËÐÞ¸ÄÒ»ÏÂÁ¬½ÓÅäÖá£
£¨2£©¸±±¾½Úµã£¨Secondary£©
ÓëÖ÷½Úµã±£³ÖͬÑùµÄÊý¾Ý¼¯¡£µ±Ö÷½Úµã¹ÒµôµÄʱºò£¬²ÎÓëÑ¡Ö÷¡£
£¨3£©ÖÙ²ÃÕߣ¨Arbiter£©
²»±£ÓÐÊý¾Ý£¬²»²ÎÓëÑ¡Ö÷£¬Ö»½øÐÐÑ¡Ö÷ͶƱ¡£Ê¹ÓÃArbiter¿ÉÒÔ¼õÇáÊý¾Ý´æ´¢µÄÓ²¼þÐèÇó£¬ArbiterÅÜÆðÀ´¼¸ºõûʲô´óµÄÓ²¼þ×ÊÔ´ÐèÇ󣬵«ÖØÒªµÄÒ»µãÊÇ£¬ÔÚÉú²ú»·¾³ÏÂËüºÍÆäËûÊý¾Ý½Úµã²»Òª²¿ÊðÔÚͬһ̨»úÆ÷ÉÏ¡£
×¢Ò⣬һ¸ö×Ô¶¯failoverµÄReplica Set½ÚµãÊý±ØÐëÎªÆæÊý£¬Ä¿µÄÊÇÑ¡Ö÷ͶƱµÄʱºòÒªÓÐÒ»¸ö´ó¶àÊý²ÅÄܽøÐÐÑ¡Ö÷¾ö²ß¡£
£¨4£©Ñ¡Ö÷¹ý³Ì
ÆäÖÐSecondaryå´»ú£¬²»ÊÜÓ°Ï죬ÈôPrimaryå´»ú£¬»á½øÐÐÖØÐÂÑ¡Ö÷£º

2.ʹÓÃArbiter´î½¨Replica Set
żÊý¸öÊý¾Ý½Úµã£¬¼ÓÒ»¸öArbiter¹¹³ÉµÄReplica Set·½Ê½£º

>>Sharding·ÖƬ¼¼Êõ
µ±Êý¾ÝÁ¿±È½Ï´óµÄʱºò£¬ÎÒÃÇÐèÒª°ÑÊý¾Ý·ÖƬÔËÐÐÔÚ²»Í¬µÄ»úÆ÷ÖУ¬ÒÔ½µµÍCPU¡¢ÄÚ´æºÍIOµÄѹÁ¦£¬Sharding¾ÍÊÇÊý¾Ý¿â·ÖƬ¼¼Êõ¡£
MongoDB·ÖƬ¼¼ÊõÀàËÆMySQLµÄˮƽÇзֺʹ¹Ö±Çз֣¬Êý¾Ý¿âÖ÷ÒªÓÉÁ½ÖÖ·½Ê½×öSharding£º´¹Ö±À©Õ¹ºÍºáÏòÇз֡£
´¹Ö±À©Õ¹µÄ·½Ê½¾ÍÊǽøÐм¯ÈºÀ©Õ¹£¬Ìí¼Ó¸ü¶àµÄCPU£¬Äڴ棬´ÅÅ̿ռäµÈ¡£
ºáÏòÇзÖÔòÊÇͨ¹ýÊý¾Ý·ÖƬµÄ·½Ê½£¬Í¨¹ý¼¯ÈºÍ³Ò»Ìṩ·þÎñ£º

£¨1£©MongoDBµÄSharding¼Ü¹¹

£¨2£©MongoDB·ÖƬ¼Ü¹¹ÖеĽÇÉ«
A.Êý¾Ý·ÖƬ£¨Shards£©
ÓÃÀ´±£´æÊý¾Ý£¬±£Ö¤Êý¾ÝµÄ¸ß¿ÉÓÃÐÔºÍÒ»ÖÂÐÔ¡£¿ÉÒÔÊÇÒ»¸öµ¥¶ÀµÄmongodʵÀý£¬Ò²¿ÉÒÔÊÇÒ»¸ö¸±±¾¼¯¡£
ÔÚÉú²ú»·¾³ÏÂShardÒ»°ãÊÇÒ»¸öReplica Set£¬ÒÔ·ÀÖ¹¸ÃÊý¾ÝƬµÄµ¥µã¹ÊÕÏ¡£ËùÓÐShardÖÐÓÐÒ»¸öPrimaryShard£¬ÀïÃæ°üº¬Î´½øÐл®·ÖµÄÊý¾Ý¼¯ºÏ£º

B.²éѯ·ÓÉ£¨Query Routers£©
·ÓɾÍÊÇmongosµÄʵÀý£¬¿Í»§¶ËÖ±½ÓÁ¬½Ómongos£¬ÓÉmongos°Ñ¶ÁдÇëÇó·Óɵ½Ö¸¶¨µÄShardÉÏÈ¥¡£
Ò»¸öSharding¼¯Èº£¬¿ÉÒÔÓÐÒ»¸ömongos£¬Ò²¿ÉÒÔÓжàmongosÒÔ¼õÇá¿Í»§¶ËÇëÇóµÄѹÁ¦¡£
C.ÅäÖ÷þÎñÆ÷£¨Config servers£©
±£´æ¼¯ÈºµÄÔªÊý¾Ý£¨metadata£©£¬°üº¬¸÷¸öShardµÄ·ÓɹæÔò¡£
|