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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
360×ÔÑзֲ¼Ê½´æ´¢ÏµÍ³BadaµÄ¼Ü¹¹Éè¼ÆºÍÓ¦ÓÃ
 
×÷Õߣº³Â×ÚÖ¾ À´Ô´£º¸ß¿ÉÓüܹ¹Î¢ÐźŠ·¢²¼ÓÚ:2017-8-25
  4075  次浏览      28
 

±¾´Î·ÖÏíÖ÷Ìâ

Ö÷ÒªÏò´ó¼Ò½éÉÜÒ»ÏÂ360×ÔÖ÷Ñз¢µÄ·Ö²¼Ê½´æ´¢ÏµÍ³Nosql-Bada£¬×÷ΪÉè¼ÆÕßÎÒÒ»Ö±¾õµÃÉè¼Æ¹ý³Ì¾ÍÊÇÔÚ×öһЩÕÛÖÔ£¬ËùÒԴ󲿷ֵÄÄÚÈÝÊÇÎÒÃÇ¿ª·¢ÊµÏÖBada¹ý³ÌÖеÄһЩ¾­ÑéºÍ¿Ó, Ò²ÓкܶàµÄȨºâ, Ï£ÍûºÍ´ó¼ÒÒ»Æð·ÖÏí, Óв»¶ÔµÄµØ·½»¶Ó­Ö¸³ö¡£

ËäÈ»ÏîĿĿǰ»¹Î´¿ªÔ´, µ«ÊÇÎÒÃǵÄһЩ×é¼þ, ÓÃÓÚÒ첽ͬ²½Êý¾ÝµÄMario¿âµÈ, ¾ùÒѾ­¿ªÔ´£¬ºóÐøBadaÒ²»á¿ªÔ´¡£ÕâÊÇ360¹Ù·½µÄGithubÕ˺Åhttps://github.com/Qihoo360

Ö÷ÒªÓ¦Óó¡¾°

ÎÒÃǵĶ¨Î»ÊǺ£Á¿Êý¾ÝµÄ³Ö¾Ã»¯´æ´¢, ΪÏßÉϵÄÈÈÃÅÓ¦Ó÷þÎñ¡£²»¹ýÎÒÃÇĿǰûÓнÓÈë¸úÇ®Ïà¹ØµÄÒµÎñ, ÒòΪÎÒÃǵÄϵͳ±Ï¾¹ÊÇ×îÖÕÒ»ÖÂÐÔµÄϵͳ¡£

ÎÒÃÇÇãÏòʹÓÃBadaµÄÓû§Êý¾ÝvalueµÄ´óСÔÚ10kÒÔÄÚ, ÄÇôÎÒÃǵÄÑÓ³ÙÄܹ»×öµ½1ms×óÓÒ¡£ÎÒÃÇΪÁ˶ÁÈ¡ÐÔÄÜÓÐÒ»¶¨µÄÓÅÊÆ, Ò»°ãÒªÇó»úÆ÷¶¼¹ÒÔØSSDÅÌ¡£Èç¹ûÓÃÓÚ´æ´¢ÀäÊý¾Ý, ÎÒÃǻὨÒéÓû§´æÊý¾Ýµ½¹«Ë¾µÄÆäËû´æ´¢²úÆ·, ±ÈÈçhbase,cassandraµÈµÈ¡£

Ŀǰ¹«Ë¾ÄÚ²¿ÔÆÅÌ, ÒÆ¶¯ËÑË÷, LBS, Onebox, µ¼º½Ó°ÊÓ, °×Ãûµ¥µÈ¶à¸öÒµÎñ¾ùÔÚʹÓá£

360×ÔÑзֲ¼Ê½´æ´¢ÏµÍ³BadaµÄ¼Ü¹¹Éè¼ÆºÍÓ¦ÓÃ

ÔÆÅ̵ij¡¾°ÊÇ£ºÍ¨¹ýBada²éѯÎļþËùÔڵĴ洢λÖá£Õâ¸öÒµÎñÊý¾ÝÁ¿Ç§ÒÚ¼¶±ð, ÿÌìµÄ·ÃÎÊÁ¿½ü°ÙÒÚ¡£

LBSÕâ¸öÒµÎñÊǽ«ËùÓеÄPOIµÄÐÅÏ¢´æ´¢ÔÚBadaÖÐ, ÒµÎñÐèÒªÔÚ5¸ö»ú·¿½øÐÐÊý¾Ýͬ²½¡£Ã¿ÌìµÄÇëÇóÁ¿Ê®ÒÚ¼¶±ð¡£

ÕûÌå¼Ü¹¹

Bada SDK ÊÇÎÒÃÇÌṩ¸øÓû§SDK, 360 QConf ÅäÖùÜÀí·þÎñ ´ó¼Ò֮ǰҲÁ˽â¹ý, ÎÒÃÇÊÇQConfµÄÖØ¶ÈÓû§¡£Óû§Í¨¹ýSDK´ÓQConfÖлñµÃ´æ»îµÄBada½Úµã, È»ºó½øÐзÃÎÊ¡£

Data ServerÊÇÎÒÃǵķþÎñ½Úµã£¬ÆäÉè¼ÆÊÇѧϰ×ÔAmazon Dynamo(²»¹ýºÃÏñDynamo ±¾ÉíÒ²±»ºÜ¶àÈËÅç), ÿһ¸ö½Úµã¶¼ÊǶԵȽṹ, ÿһ¸ö½Úµã´æ´¢ÁËËùÓеÄÔªÐÅÏ¢¡£ÎªÊ²Ã´Õâô×ö?

ĿǰÖ÷Á÷µÄÉè¼ÆÒ»°ãÊÇÁ½ÖÖ£º

BigTable Ϊ´ú±íµÄ, ÓÐMetaServer, DataServerµÄÉè¼Æ, MetaServer´æ´¢ÔªÊý¾ÝÐÅÏ¢, DataServer´æ´¢Êµ¼ÊµÄÊý¾Ý¡£°üÀ¨ BigTable, HBase, °Ù¶ÈµÄMolaµÈµÈ¡£

Dynamo Ϊ´ú±íµÄ, ¶ÔµÈ½á¹¹Éè¼Æ. ÿһ¸ö½Úµã¶¼ÊÇÒ»ÑùµÄ½á¹¹, ÿһ¸ö½Úµã¶¼±£´æÁËÊý¾ÝµÄÔªÐÅÏ¢ÒÔ¼°Êý¾Ý. °üÀ¨ Cassandra, Riak µÈµÈ¡£

Bada µÄÑ¡Ôñ

ÆäʵÎÒ¾õµÃÁ½¸ö½á¹¹¶¼ÊǺÏÊʵġ£ÎªÁ˲¿Êð, À©Õ¹µÈ·½±ã£¬ÎÒÃDz»Ï£Íû²¿ÊðµÄʱºòÐèÒª·Ö¿ª²¿ÊðMeta½Úµã, Data½Úµã¡£¼ÆËã»úÐÐÒµ, ¼ÓÒ»²ã¿ÉÒÔ½â¾ö´ó²¿·ÖÎÊÌâ, Òò´ËÎÒÃǾõµÃ¶ÔµÈÍøÂçµÄÉè¼Æ¸üÓÐÌôÕ½ÐÔ¡£¸öÈ˹۵ã, ÔÚÊý¾ÝÁ¿¸ü´óµÄÇé¿öÏÂ, Meta ½Úµã¼«ÓпÉÄܳÉΪƿ¾±¡£µ±È»DynamoµÄ½á¹¹¿Ï¶¨Ò²ÓÐ×ÔÉíµÄȱµã, ±ÈÈçÈçºÎ±£Ö¤ÔªÊý¾ÝµÄÒ»ÖÂÐÔµÈÎÊÌâ¡£

Data ServerÖ÷Ҫģ¿é

Network Proxy£º ÓÃÓÚ½ÓÊÕ¿Í»§¶ËµÄÇëÇó, ÎÒÃǵÄЭÒéÊǶ¨ÖƵÄprotobuf ЭÒé, Network ProxyÄ£¿é¸ºÔð½âÎöЭÒé, È»ºóÇëÇóת·¢µ½¶ÔÓ¦µÄ½Úµã

Meta Info£º ÓÃÓÚ´æ´¢¹«¹²µÄÔªÐÅÏ¢, ÔªÐÅÏ¢°üÀ¨Ã¿Ò»¸ö·ÖƬ´æ´¢ÔÚÄĸö½Úµã

DB Engine£º ÎÒÃǵ×ϵÄÒýÇæÊÇ»ùÓÚLevelDBµÄ¶¨ÖÆ»¯¿ª·¢, °üÀ¨Ö§³Öcas, ¹ýÆÚʱ¼ä, ¶àÊý¾Ý½á¹¹µÈµÈ

Êý¾Ý·Ö²¼²ßÂÔ

¿ÉÒÔ¿´µ½ÎÒÃÇĿǰʹÓõÄÊÇÓÐÖ÷´ÓµÄ¸±±¾²ßÂÔ, ͼÖеÄPrimary ÊÇÖ÷½Úµã, Secondary ÊǴӽڵ㡣ΪʲôÕâô×ö?

Ê×ÏÈΪʲô²»Ê¹ÓÃec±àÂë(erasure code ¾ÀɾÂë), ÒòΪec±àÂëÖ÷ÒªÓÃÓÚ±£´æÆ«ÀäÊý¾Ý, ec±àÂëÓöµ½µÄÎÊÌâÊÇÈç¹ûijһ¸ö¸±±¾¹ÒµôÒÔºó, ÏëÒª»Ö¸´¸±±¾µÄ¹ý³Ì±ØÐëÓëÆäËû¶à¸ö½Úµã½øÐÐͨÐÅÀ´»Ö¸´Êý¾Ý, »áÕճɴóÁ¿µÄÍøÂ翪Ïú. Òò´ËÕâÀï3¸±±¾¸üºÏÊÊ¡£

³£¼ûµÄ·Ö²¼Ê½ÏµÍ³µÄ¶à¸±±¾²ßÂÔÖ÷Òª·Ö³ÉÁ½Àࣺ

ÒÔCassandra, Dynamo ΪÖ÷µÄ, ûÓÐÖ÷´Ó½á¹¹µÄÉè¼Æ, ¶ÁдµÄʱºòÂú×ãquorum W + R > N, Òò´ËдÈëµÄʱºòдÈë2¸ö¸±±¾³É¹¦²ÅÄÜ·µ»Ø¡£¶ÁµÄʱºòÐèÒª¶Á¸±±¾È»ºó·µ»Ø×îеġ£ÕâÀïµÄ×îпÉÒÔÊÇʱ¼ä´Á»òÕßÂß¼­Ê±¼ä¡£

ÒÔMongoDB, BadaΪÖ÷µÄ, ÓÐÖ÷´Ó½á¹¹µÄÉè¼Æ, ÄÇô¶ÁдµÄʱºò, ¿Í»§¶Ë·ÃÎʵͼÊÇÖ÷¸±±¾, ͨ¹ýbinlog/oplog À´½«Êý¾Ýͬ²½¸ø´Ó¸±±¾¡£

Á½ÖÖÉè¼Æ¶¼Ö»ÄÜÂú×ã×îÖÕÒ»ÖÂÐÔ¡£ÄÇôÎÒÃÇÔÙ´ÓCAPÀíÂÛÉÏ¿´, ÄÇô¶¼ÊÇÔÚÄÄЩά¶È×öÁËȨºâ?

´ÓÐÔÄÜÉÏÀ´¿´,ÓÐÖ÷´ÓµÄÉè¼ÆºÜÃ÷ÏÔÐÔÄÜ»áÓÉÓÚÎÞÖ÷´ÓµÄ, ÒòΪÓÐÖ÷´ÓµÄÉè¼ÆÖ»ÐèÒª·ÃÎÊÒ»¸ö¸±±¾¾Í¿ÉÒÔ·µ»Ø, ¶øÎÞÖ÷´ÓµÄÖÁÉÙÁ½¸ö¸±±¾·µ»Ø²Å¿ÉÒÔ¡£

´ÓÒ»ÖÂÐÔÀ´¿´£¬ÓÐÖ÷´ÓµÄÉè¼ÆÈç¹û¹ÒµôÒ»¸ö½Úµã, Èç¹ûÕâ¸ö½ÚµãÊÇÖ÷, ÄÇô¾Í»áÔì³ÉÓÉÓÚÊý¾Ýͬ²½µÄ²»¼°Ê±, Õâ¶Îʱ¼äдÈëµÄÊý¾Ý¶ª¡£Èç¹û¹ÒµôµÄÊÇ´Ó½Úµã, ÄÇôÔò¶ÔÊý¾ÝûÓÐÈκεÄÓ°Ïì¡£Ö»ÒªÕâ¸ö½ÚµãÔÚ½ÓÏÂÀ´µÄʱ¼äÄÚÄܹ»ÆðÀ´¼´¿É¡£ÎÞÖ÷´ÓµÄÉè¼ÆÈç¹û¹ÒµôÒ»¸ö½Úµã, ÀíÂÛÉ϶Խá¹ûÊÇÎÞÓ°ÏìµÄ, ÒòΪ·µ»ØµÄʱºò»á±È½Ï×îеĽá¹û¡£ÓÐÖ÷´ÓµÄ½á¹¹ÓÉÓÚдÈë¶¼ÔÚÒ»¸ö½Úµã, Òò´Ë²»´æÔÚ³åÍ»¡£¶øÎÞÖ÷´ÓµÄ½á¹¹ÓÉÓÚдÈëµÄÊÇÈÎÒâµÄÁ½¸ö¸±±¾, »á´æÔÚ¶Ôͬһ¸ökeyµÄÐÞ¸ÄÔÚ²»Í¬µÄ¸±±¾, µ¼Ö¿ͻ§¶Ë¶ÁÈ¡µÄʱºòÊÇÁ½¸ö²»Ò»Öµİ汾, Õâ¸öʱºò¾ÍÐèҪȥ½â¾ö³åÍ», ³£¼ûµÄ·½°¸¾ÍÉæ¼°µ½vector clock, ʱ¼ä´ÁµÈµÈ¡£²»¹ý, ×ÜÌåÀ´¿´ÎÞÖ÷´ÓµÄÉè¼ÆÒ»ÖÂÐÔÓ¦¸ÃÓÅÓÚÓÐÖ÷´ÓµÄÉè¼Æ¡£

´Ó·ÖÇøÈÝ´íÀ´¿´, Á½±ß¶¼±ØÐëÓÐÒ»°ëÒÔÉÏµÄ½Úµã´æ»î²ÅÄܹ»¶ÔÍâÌṩ·þÎñ, ÒòΪÓÐÖ÷´ÓµÄÉè¼ÆÖбØÐë»ñµÃ³¬¹ýÒ»°ë½ÚµãµÄͶƱ²ÅÄܳÉΪÖ÷½Úµã¡£¶øÎÞÖ÷´ÓµÄ½á¹¹, ³£¼ûÔÚW = 2, R = 2µÄÇé¿öÏÂ, ±ØÐë2¸ö¸±±¾ÒÔÉϲÅÄܶÔÍâÌṩ·þÎñ¡£

´Ó¿É¿¿ÐÔÀ´¿´,ÓÐÖ÷´ÓµÄÉè¼ÆÒòΪֻ·ÃÎÊÒ»¸ö¸±±¾, ÐÔÄÜÓÅÓÚÎÞÖ÷´ÓµÄÉè¼Æ¡£¶øÇÒÎÞÖ÷´ÓµÄÉè¼ÆÖÐ, ÒòΪ¶Ôµ¥ÌõÊý¾Ý±ØÐëÓÐÁ½´Î¶ÁÈ¡, Òò´Ë¶ÔϵͳµÄ·ÃÎÊѹÁ¦Ò²»á±ÈÎÞÖ÷´ÓµÄÀ´µÄ¶à¡£µ±È»ÓÐÖ÷´ÓµÄÉè¼ÆÈÝÒ×Ôì³ÉÖ÷ÂäÔÚͬһ¸ö»úÆ÷ÉÏ, Ôì³É¸ºÔز»¾ùµÄÇé¿ö, µ«ÊÇÕâÀïÖ»Òª½«Ö÷ƽ¾ùµ½ËùÓеĻúÆ÷, ¾Í¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£µ«ÊÇÓÐÖ÷´ÓµÄÉè¼ÆÔÚÇл»Ö÷´ÓµÄʱºò, ±ØÈ»ÓÐÒ»¶Îʱ¼äÎÞ·¨¶ÔÍâÌṩ·þÎñ, ¶øÎÞÖ÷´ÓµÄÉè¼ÆÔò²»´æÔÚÕâÑùµÄÎÊÌâ¡£×ÜÌåÀ´Ëµ, ±ÊÕßÈÏΪ´Ó¿É¿¿ÐԵĽǶÈÀ´Ëµ, ÓÐÖ÷´ÓµÄÉè¼ÆÓ¦¸Ã±ÈÎÞÖ÷´ÓÀ´µÄ¿É¿¿¡£

ÎÒÃÇʹÓõÄÊÇÓÐÖ÷´Ó½á¹¹µÄÉè¼Æ, Ô­Òò:

BadaÖ÷ÒªµÄÓ¦Óó¡¾°¶ÔÐÔÄܵÄÒªÇó±È½Ï¸ß, ´ó²¿·ÖµÄÇëÇóÐèÒªÔÚ1ms×óÓÒµÄʱ¼ä·µ»Ø, Òò´ËÓÐÖ÷´ÓµÄÉè¼Æ, ÐÔÄܸüÂú×ãÐèÇó

ÏßÉÏ·þÎñµÄ¿É¿¿ÐÔÊÇÎÒÃÇÁíÍâÒ»¸ö¿¼ÂǵÄÒòËØ

¾ßÌåµÄ·ÖÎö¹ý³Ì¿ÉÒÔ¿´ http://baotiao.github.io/2015/03/Bada-design-replicaset/

Êý¾Ý·ÖƬ²ßÂÔ,ÎÒÃǽÐÁ½´ÎÓ³Éä.

key -> PartitionId(hash)

PartitionId -> Node(MetaData)

±ÈÈçÉÏÃæÕâÕÅͼÖÐÎÒÃÇ¿ÉÒÔ¿´³ö, ÎÒÃǽ«ËùÓÐÊý¾Ý·Ö³É10¸öPartition, È»ºóÿһ¸ö»úÆ÷´æÓÐÖ÷½ÚµãºÍ´Ó½Úµã. ÎÒÃǻᾡ¿ÉÄܵı£Ö¤Ã¿Ò»¸ö»úÆ÷ÉÏÃæµÄÖ÷½ÚµãÊÇÒ»Ñù¶àµÄ, ÕâÑùÄܹ»×öµ½Ã¿Ò»¸ö½ÚµãµÄ¸ºÔض¼ÊǾùºâµÄ¡£

ÇëÇóÁ÷³Ì

µ±ÇëÇóµÄÊý¾ÝPrimaryÕýºÃÊǵ±Ç°Õâ¸ö½Úµã

µ±ÇëÇóµÄÊý¾ÝPrimary ²»Êǵ±Ç°½Úµã

¶à»ú·¿¼Ü¹¹

360µÄ»ú·¿ÊDZȽ϶àµÄ, ¶øÇÒijЩ»ú·¿Ö®¼äµÄÍøÂç½Ï²î¡£ÒµÎñ²¿ÊðÒ»¸ö·þÎñµÄʱºò, ºó¶ËµÄDBÒ²ÐèÒª²¿ÊðÔÚ¶à¸ö»ú·¿ÉÏ, Òò´ËÕâ¸ö³£³£ÊÇÒµÎñµÄÍ´µã¡£Òò´ËÎÒÃÇÉè¼ÆÖ®³õ¾Í¿¼ÂǶà»ú·¿µÄ¼Ü¹¹¡£

ÎÒÃǵĶà»ú·¿¼Ü¹¹Äܱ£Ö¤

Óû§²»ÓùÜÀí¶à¸ö»ú·¿, ÈÎÒâÒ»¸ö»ú·¿Êý¾ÝдÈë, ÆäËû»ú·¿Äܹ»¶ÁÈ¡

ÔÚ»ú·¿´æÔÚÎÊÌâµÄʱºò, ÎÒÃÇ¿ÉÒÔÁ¢¿ÌÇл»»ú·¿µÄÁ÷Á¿

Ìṩÿһ¸ö»ú·¿Ö®¼äÊý¾ÝµÄͳ¼ÆºÍCheck

ÕûÌåʵÏÖ

Õâ¸öÊÇĿǰLBSÒµÎñµÄ³¡¾°

¿ÉÒÔ¿´³öÎÒÃÇÕâÀïÓÐÒ»¸öרÃŵĶÓÁÐÓÃÓÚͬ²½»ú·¿Ö®¼äµÄÊý¾Ý¡£Õâ¸öQBus ÊÇÎÒÃÇÍŶÓÄÚ²¿»ùÓÚkafka¿ª·¢µÄÏûÏ¢¶ÓÁзþÎñ¡£

ĿǰÖ÷Á÷µÄ»ú·¿Í¬²½·½·¨Ò²ÊÇÁ½ÖÖ£º

½Úµã¸ºÔð»ú·¿Êý¾ÝµÄͬ²½, ±ÈÈçCassandra, CouchBase, Riak

ÓÉÍⲿµÄ¶ÓÁÐÀ´Í¬²½»ú·¿Ö®¼äµÄÊý¾Ý, ±ÈÈç Yahoo pnuts

Cassandra ×ö·¨

ÔÚдÈëµÄʱºò, ÿһ¸ö»ú·¿µÄЭµ÷Õß¡£±ÈÈçÕâ¸öͼÀïÃæ10Õâ¸ö½Úµã¡£»á°ÑдÈë·¢Ë͸øÆäËü»ú·¿µÄijһ¸ö½Úµã, Õâ¸öʱºòClientÕâ±ßÊÕµ½µÄÖ»ÊǸù¾ÝÅäÖõÄÒ»ÖÂÐÔ¼¶±ð¾Í¿ÉÒÔ·µ»Ø, ±ÈÈçÕâÀïÅäÖõÄÖ»Òª1¸ö·µ»Ø¼´¿É, ÄÇôClientдÈë³É¹¦10Õâ¸ö½ÚµãÒÔºó,¼´¿É·µ»Ø¡£ÖÁÓÚÓëÆäËû»ú·¿Í¬²½ÊÇ10Õâ¸ö½ÚµãµÄÊÂÇé, ÕâÑù×Ó¿Í»§¶ËµÄдÈë¾Í¿ÉÒÔÔÚ±¾µØÐ´Èë, ²»Óùܶà»ú·¿µÄlatency¡£

ÕâÀïÎÒÃÇ¿ÉÒÔ¿´µ½ÊÇEventual Consistency. ÄÇôCassandraÊÇÈçºÎ×öµ½³åÍ»ÐÞ¸´µÄÄØ. ÕâÀïCassandra ¶ÁµÄʱºòÓÐÒ»¸öRead Repair »úÖÆ, ¾ÍÊǶÁÈ¡µÄʱºò¶ÁÈ¡±¾µØ¶à¸ö¸±±¾. Èç¹û¸±±¾²»Ò»ÖÂ, ÄÇô¾Íѡʱ¼ä´Á×îеÄÖØÐÂдÈë. ÈÃÊý¾ÝÖØÐÂͬ²½, ÕâÀïCassandraÖ»ÊÇ˵ÐÞ¸´±¾µØ¶à¸±±¾Êý¾Ý²»Ò»Öµķ½·¨, ͬÑùµÄ·½·¨ÎÒÃÇÒ²¿ÉÒÔÓÃÔÚ¶à¸öIDCÀïÃæ, ¿ÉÒÔͬʱÅܶà¸öÈÎÎñcheck²»Í¬»ú·¿µÄÊý¾Ý, È»ºóÐÞ¸´ËûÃÇ¡£

CouchBase ×ö·¨

Continuous ReplicationÌṩÅäÖõIJ»Í¬ServerÖ®¼äͬ²½µÄStreamµÄ¸öÊý£¬Ò²¾ÍÊDz»Í¬µÄ»ú·¿Ö®¼äÁ¬½ÓµÄÊýÄ¿ÊÇ¿ÉÅäÖõġ£½â¾ö³åÍ»°ì·¨.CouchBaseÌṩµÄÊÇ×îÖÕÒ»ÖÂÐԵķ½·¨£¬²»Í¬µÄ°æ±¾Ö®¼äÊ×Ïȸù¾ÝÐ޸ĵĴÎÊý, È»ºóÊÇÐÞ¸Äʱ¼äµÈÐÅÏ¢¡£

ÎÒÃÇ×îºó¿¼ÂǵÄÊÇʹÓÃÍŶÓÄÚ²¿µÄQBus×÷ΪÎÒÃÇͨÐŵĶÓÁÐ, Ö÷Òª¿¼ÂÇ

ʡȥÁË×Ô¼ºÊµÏÖ¶ÓÁеÄÂé·³

Îȶ¨ÔËÐÐÓÚÏßÉÏ, ÓÐרÃŵÄͬÊÂά»¤. ¼õÉٵĺܶàÎÊÌâ

Bada ĿǰÏßÉÏ3ÖÖ¶à»ú·¿µÄʹÓó¡¾°

µ¥»ú·¿Ð´Èë, ÈÎÒâ»ú·¿¶ÁÈ¡

¿ç»ú·¿Ð´Èë, ÈÎÒâ»ú·¿¶ÁÈ¡

ÈÎÒâ»ú·¿Ð´Èë, ÈÎÒâ»ú·¿¶ÁÈ¡

ÎÒÃǵÄʵÏÖ·½°¸Ò²ÊÇͨ¹ýQConfÀ´ÊµÏÖ¡£¿Í»§¶Ë·ÃÎʵÄʱºò, ´ÓQConfÖжÁȡĿǰÐèÒª·ÃÎʵĻú·¿, ĬÈÏÊÇ·ÃÎʱ¾»ú·¿, Èç¹ûÐèÒª¿ç»ú·¿·ÃÎÊ, ½«QConfÖеÄÅäÖÃÖÆ¶¨³ÉÐèÒª·ÃÎʵĻú·¿¾Í¿ÉÒÔÁË¡£

¶à»ú·¿Ð´ÈëµÄ³åÍ»½â¾ö·½°¸

ʱ¼ä´Á×îÐÂ

ÈÎÒâ»ú·¿Ð´ÈëÊý¾Ý, ¸ù¾Ýʱ¼ä´ÁÀ´½øÐгåÍ»½â¾ö¡£

Yahoo Pnuts Primary Key

ÕâÀïÎÒÃǶÔÿһ¸öKey ÓÐÒ»¸öPrimary IDC, Ò²¾ÍÊÇÕâ¸öKeyµÄÐÞ¸Äɾ³ýµÈ²Ù×÷¶¼Ö»»áÔÚµ±Ç°Õâ¸öIDCÍê³É, È»ºó¶ÁÈ¡¿ÉÒÔÓжà¸öIDCÈ¥¶ÁÈ¡. ÄÇôÒòΪ¶ÔÓÚͬһ¸öKeyµÄÐÞ¸Ä, ÎÒÃǶ¼ÔÚͬһ¸öIDCÉÏ. ÎÒÃÇͨ¹ý¸øÃ¿Ò»¸öKey¼ÓÉÏÒ»¸öVersionÐÅÏ¢, ÀàËÆMemcachedµÄcas²Ù×÷, ÄÇôÎÒÃǾͿÉÒÔ±£Ö¤×öµ½Ö§³Öµ¥ÌõÊý¾ÝµÄÊÂÎñ¡£Èç¹ûÕâÌõÊý¾ÝµÄPrimary IDCÊÇÔÚ±¾»ú·¿, ÄÇô²åÈë²Ù×÷ºÜ¿ì¡£

Èç¹ûÕâÌõÊý¾ÝµÄPrimary IDC²»ÊDZ¾»ú·¿, ÄÇô¾ÍÓÐÒ»¸öCross IDCµÄÐ޸IJÙ×÷, ÑÓ³Ù½«»á±È½Ï¸ß¡£²»¹ýÎÒÃÇ¿¼ÂÇÒ»ÏÂÎÒÃǴ󲿷ֵÄÓ¦Óó¡¾°,±ÈÈç΢²©, 90%µÄÊý¾ÝµÄÐÞ¸ÄÓ¦¸Ã»áÔÚͬһ¸ö»ú·¿¡£±ÈÈçÒ»¸öÓû§ÓÐÒ»¸öprofileÐÅÏ¢, ÄÇôºÍÐÞ¸ÄÕâ¸öÐÅÏ¢µÄ»ù±¾¶¼ÊÇÕâ¸öÓû§±¾ÈË, 90%µÄÇé¿öÏÂÓ¦¸Ã¾ÍÊÇÔÚͬһ¸öµØµã¸Ä, µ±È»Ð´ÈëÒ²»áÔÚͬһ¸ö»ú·¿. ËùÒԴ󲿷ֵÄÐÞ¸ÄÓ¦¸ÃÊÇͬһ¸ö»ú·¿µÄÐ޸ġ£µ«ÊÇ·ÃÎÊ¿ÉÄÜÀ´×Ô¸÷¸öµØ·½£¬µ±È»ÎªÁË×öÓÅ»¯, ÓÐЩÊý¾Ý¿ÉÄÜÔÚÒ»¸öµØ·½Ð޸ĹýÁËÒÔºó, ¶à´ÎÔÚÆäËûµØ·½ÐÞ¸Ä, ÄÇôÎÒÃǾͿÉÒÔÐÞ¸ÄÕâ¸öKeyµÄPrimary IDCµ½ÁíÍâÕâ¸ö»ú·¿¡£

Vector Lock

Vector LockµÄºËÐÄ˼Ïë¾ÍÊÇClient¶ÔÕâ¸öÊý¾ÝµÄÁ˽âÊÇÔ¶Ô¶³¬¹ý·þÎñ¶ËµÄ, ÒòΪ¶ÔÓÚ·þÎñ¶Ë¶øÑÔ, Õâ¸öKey ¶ÔÓ¦µÄValue ¶ÔÓÚServer ¶ËÖ»ÊÇÒ»¸ö×Ö·û´®¡£¶øClient¶ËÄܹ»¾ßÌåÁ˽âÕâ¸öValueËù´ú±íµÄº¬Òå, ¶ÔÕâ¸öValue½øÐнâÎö¡£ÄÇô¶ÔÓÚÕâ¸öÀý×Ó£¬µ±ÕâÁ½¸ö²»Ò»ÑùµÄValueдÈëµ½Á½¸ö¸±±¾ÖеÄʱºò, Client½øÐÐÒ»´Î¶ÁÈ¡²Ù×÷¶ÁÈ¡Á˶à¸ö¸±±¾¡£

Client·¢ÏÖ¶Áµ½µÄÁ½¸ö¸±±¾µÄ½á¹ûÊÇÓгåÍ»µÄ, ÕâÀïÎÒÃǼÙÉèԭʼµÄKeyµÄVector LockÐÅÏ¢ÊÇ[X:1], ÄÇôµÚÒ»´ÎÐ޸ľÍÊÇ[X:1,Y:1], ÁíÒ»¸ö¿Í»§¶ËÊÇ»ùÓÚ[X:1]µÄVector LockÐ޸ĵÄ, ËùÒÔËüµÄVector LockÐÅÏ¢¾ÍÓ¦¸ÃÊÇ[X:1,Z:1]¡£Õâ¸öʱºòÎÒÃÇÖ»Òª¼ì²éÕâ¸öVector LockÐÅÏ¢¾Í¿ÉÒÔ¿ÉÒÔ·¢ÏÖËûÃdzåÍ», Õâ¸ö¾ÍÊǾͽ»¸ø¿Í»§¶ËÈ¥´¦ÀíÕâ¸ö³åÍ».²¢°Ñ½á¹ûÖØÐÂUpdate¼´¿É¡£

ÎÒÃÇÏßÉÏĿǰ֧³ÖµÄÊÇʱ¼ä´Á×îÐÂ, ÒÔ¼°Primary KeyµÄ·½°¸. ´ó²¿·ÖʹÓõÄÊÇʱ¼ä´Á×îÐÂÀ´½øÐгåÍ»½â¾ö¡£

¶àÊý¾Ý½á¹¹Ö§³Ö

ÎÒÃÇ¿ª·¢ÁËÒ»Ì×»ùÓÚleveldbµÄ¶àÊý¾Ý½á¹¹µÄÒýÇæ¡£Ä¿Ç°Ö§³Ö Hash, List, Set, ZsetµÈ½á¹¹¡£

Ö÷ÒªÊÇÓÉÓÚÓû§Ï°¹ßÁËRedisÌṩµÄ¶àÊý¾Ý½á¹¹, Äܹ»Âú×ãÓÃÓÚ¿ìËÙ¿ª·¢ÒµÎñµÄ¹ý³Ì, Òò´ËÎÒÃÇÒ²ÌṩÁ˶àÊý¾Ý½á¹¹µÄÖ§³Ö¡£

Ϊʲô²»Ê¹ÓÃZooKeeper

ZooKeeper ºÍ mnesia¶Ô±È, ZooKeeper ÊÇÒ»¸ö·þÎñ, ¶ø mnesiaÊÇÒ»¸ö¿â, Òò´ËÈç¹ûʹÓÃZooKeeperµÄ»°, ÎÒÃÇÐèÒª¶îÍâµÄά»¤Ò»Ì×·þÎñ¡£¶ø mnesia¿ÉÒÔÖ±½Ó¼¯³ÉÔÚ´úÂëÀïÃæ£¬Ê¹Óøü·½±ã¡£

mnesiaºÍ Erlang ¼¯³ÉµÄ¸üºÃ£¬mnesia±¾Éí¾ÍÊÇÓÃErlang À´¿ª·¢¡£

Bada ºÍ MongoDB¶Ô±È

360µÄMongoDB ֮ǰҲÊÇÎÒÃÇÍŶÓÔÚά»¤, ÔÚʹÓÃMongoDBµÄ¹ý³ÌÖÐ, ÎÒÃÇÒ²Óöµ½Ò»Ð©ÎÊÌâ, ±ÈÈçMongoDB µÄÀ©Èݷdz£²»·½±ã, À©ÈÝÐèÒªºÜ³¤µÄʱ¼ä, ÒòΪMongoDB À©ÈݵĹý³ÌÊǽ«Ò»ÌõÒ»ÌõµÄÊý¾ÝдÈëµÄ. ÎÒÃÇ¿ª·¢µÄʱºò¿¼Âǵ½ÕâЩÎÊÌâ, Òò´ËBada ʹÓõÄÊÇleveldb, µ±ÐèÒªÀ©ÈݵÄʱºò, Ö»Òª½«Ä³Ò»¸ö·ÖƬÏÂÃæµÄÊý¾ÝÎļþ¿½±´¹ýÈ¥¼´¿É. ǰÌáÊdzõʼ»¯µÄʱºò·ÖƬÉèÖõÄ×ã¹»´ó, ÎÒÃÇÏÖʵĬÈ쵀ᅮ¬ÊÇ1000ÒÔÉÏ¡£

MongoDB µÄÊý¾ÝÅòÕͶȱȽϴó, ÒòΪMongoDB ±Ï¾¹ÊÇÎĵµÐÍÊý¾Ý¿â, ¿Ï¶¨»á±£³ÖһЩÈßÓàÐÅÏ¢. ÎÒÃǵ×ÏÂʹÓÃleveldb, leveldb ±¾ÉíµÄѹËõ¹¦ÄÜ»ùÓÚsnappy ѹËõ. »¹ÊÇ×öµÄ±È½ÏºÃ. ÏßÉÏʵ¼ÊµÄ´ÅÅ̿ռä´óСÏà¶ÔÓÚMongoDB 4:1

Bada ºÍ Cassandra ¶Ô±È

CassandraµÄ¶¨Î»ºÍBadaÊDz»Ò»ÑùµÄ, ÎÒÃÇÃæÏòµÄÊÇÏßÉÏÆµ·±·ÃÎʵÄÈÈÊý¾Ý, Òò´ËÎÒÃÇÆ«ÏòÓڴ洢СvalueÊý¾Ý, ÈÈÊý¾Ý, ¶Ôlatency µÄÒªÇó»á¿Á¿Ì¡£

±ÈÈçÔÚÔÆÅ̵ij¡¾°, ÎÒÃÇ´æ´¢µÄ¾ÍÊÇÎļþµÄË÷ÒýÐÅÏ¢, ¶øCassandra´æ´¢µÄÊǾßÌåµÄCassandraµÄÊý¾Ý, Ò²Òò´ËÎÒÃÇÏßÉϲ¿ÊðBadaµÄ»úÆ÷ÊǹÒÔØSSDÅ̵ġ£

Bada ºÍ Redis ¶Ô±È

Bada µÄÐÔÄܱÈRedis µÍ, µ«ÊÇĿǰredis cluster »¹Ã»·¢Õ¹ÍêÉÆ. ÎÒÃǹ«Ë¾µÄDBAÒ²ÔÚ¸ú½øRedis clusterÖ®ÖÐ. ËùÒÔµ±Êý¾ÝÁ¿±È½Ï´óµÄʱºò, Redis¿ÉÄܾͲ»ÊÊÓÃÓÚÕâô´óÁ¿µÄÊý¾Ý´æ´¢¡£

Bada µÄ¶àÊý¾Ý½á¹¹Ö§³Ö²»ÈçRedisÀ´µÃÍêÉÆ. Òò´ËÎÒÃÇÒ²ÔÚÖð²½µÄÖ§³ÖBadaµÄ¶àÊý¾Ý½á¹¹¡£

Redis ±Ï¾¹ÊÇÄÚ´æÐ͵ķþÎñ. Òò´Ë¼ÙÈçÓû§ÊÇÆ«ÏòÓÚ´æ´¢³Ö¾Ã»¯Êý¾Ý, ¿ÉÄÜRedis²»Ì«ºÏÊÊ¡£

һЩ·Ç¼¼ÊõµÄ¾­Ñé

¼¼ÊõÊÇΪҵÎñ·þÎñ, °üÀ¨ÎÒÃÇBadaÔÚ¹«Ë¾ÄÚ²¿ÍƹãµÄ¹ý³ÌÖÐÒ²·¢ÏÖ, ÎÒÃǺܶàÒµÎñºÜÍ·ÌÛµÄÎÊÌâÔÚÓÚ360µÄ»ú·¿½Ï¶à, ÿһ¸öСҵÎñ¶¼ÐèҪά»¤ÔÚ¶à¸ö»ú·¿, Òò´ËΪÁ˽µµÍÓû§µÄ¿ª·¢ÊÔ´í³É±¾, ÎÒÃǽ«Äܱê×¼»¯µÄÊÂÇé¶¼×öÁË¡£°üÀ¨ÎÒÃÇ×éµÄ¶¨Î»Ò²ÊÇרעµ×²ã¼¼Êõ, ¼ÓËÙ²úÆ·ÍŶӿª·¢Ð§ÂÊ, ¾¡¿ÉÄܽµµÍÒµÎñ¶Ô·þÎñ¶Ë¼¯Èº¼Ü¹¹µÄ¹Ø×¢¡£

Q&A£º

Q1:¿Í»§¶Ë·ÃÎÊBadaʱ£¬Ôõôȷ±£Êý¾ÝµÄ¾ùºâ?´ÓqconfÄõ½µÄÊÇÒ»¸öipÁбí°É?

Êǵġ£´ÓQConf ÖлñµÃÊÇËæ»úµÄÒ»¸ö½ÚµãµÄip£¬ËùÒÔ¶Ôÿһ¸ö½ÚµãµÄ·ÃÎÊ»ù±¾µÄ¾ùºâµÄ¡£·þÎñ¶ËÕâ±ß, ÒòΪÎÒÃÇÊÇÓÐÖ÷´Ó½á¹¹µÄ¡£µ«ÊÇÎÒÃǵÄÖ÷´ÓÊÇ·ÖÆ¬¼¶±ðµÄÖ÷´Ó£¬ÕâµãºÍredis cluster ²»Ò»Ñù¡£±ÈÈç Redis cluster ÓÐMaster ½Úµã, slave½Úµã£¬Ò»°ãÇé¿öslave ½Úµã²»½ÓÊÜÈκεÄÏßÉÏ·ÃÎÊ£¬µ«ÊÇ´ÓÏÂÃæµÄͼÖпÉÒÔ¿´µ½ Bada ÿһ¸ö½Úµã¶¼ÓÐÖ÷, ´Ó·ÖƬ¡£ ÒòΪÿһ¸ö½ÚµãµÄ·ÃÎÊ»ù±¾ÊǾùºâµÄ¡£

Q2:ÎÒÓÐÒ»¸öÎÊÌ⣬¶ÔÓÚkv´æ´¢£¬Ñ¡ÔñleveldbµÄ¶¯»úÊÇʲô?ÆäËûleveldb·ÖÖ§ÊÇ·ñ¿¼Âǹý?

¶ÔÓÚ´æ´¢µÄ¿¼ÂÇ, ÎÒÃÇ֮ǰ¶Ô Rocksdb ºÍ leveldb ×ö¹ý¶Ô±È.ÔÚÊý¾ÝÁ¿Ð¡µÄÇé¿öÏÂ, leveldb µÄÐÔÄÜºÍ Rocksdb ÐÔÄܲ¶à. Êý¾ÝÁ¿´óµÄʱºò Rocksdb »áÓÐÐÔÄÜÓÅÊÆ. ÒòΪÎÒÃÇ֮ǰ¶Ôleveldb ×öÁËÐÞ¸Ä. ËùÒÔºóÐøÎÒÃÇ»áÇ¨ÒÆ¹ýÈ¥¡£ÕâÀïÎÒÃǵĶÁд¶¼×ßµÄÊÇ Master ½Úµã. Ö»Óе±Ö÷½Úµã¹ÒµôÒÔºó, ²Å»á·ÃÎʴӽڵ㡣

Õâ¸ö½ØÍ¼ÊÇ֮ǰ¶Ô leveldb ºÍ rocksdb ÔÚÊý¾ÝÁ¿±È½ÏСµÄÇé¿öϵĶԱÈ

Q3:ÄÜ·ñ˵һÏÂÀ©ÈÝ£¬ÐÂÔö½Úµã£¬ÒÔ¼°Õª³ýʧЧ½ÚµãµÄ´¦Àí?

´ÓÉÏÃæÁ½ÕÅͼÖпÉÒÔ¿´³ö, ÎÒÃǻὫÐÂÔöµÄ½ÚµãÖÐ, ¾ùºâµÄ½«ÐµÄÖ÷½ÚµãÇ¨ÒÆµÄнڵãÉÏ¡£Ä¿Ç°À©ÈݵĹý³ÌÊÇÕâÑù ÎÒÃÇÏȰѵ±Ç°Õâ¸ö½Úµã¼ÓÈëµ½¼¯Èº¡£È»ºóͨ¹ý rebalance À´½øÐÐÆ½ºâ¡£ÎÒÃÇÒ»°ãÔ¤ÏÈ·ÖÅä1024 ¸ö·ÖÅä¡£Õâ¸öÓ¦¸ÃÒ²ÊÇÒµÄÚ³¡¾°µÄ×ö·¨, ֮ǰ¶ÔÌÚѶµÄCKV Ò²ÊÇÕâô×ö£¬Riak Ò²ÊÇÕâô×ö¡£

Q4:Ç¨ÒÆÊÇÖ±½Ó¶Ôleveldb¸´ÖÆ£¬ÑÓʱ»áÓжàÉÙ£¬ÔÚÇ¨ÒÆ¹ý³ÌÖеķÃÎÊÈçºÎ´¦ÀíÄØ?

Ç¨ÒÆÊÇÖ±½Ó¶Ô leveldb µÄÎļþ½øÐи´ÖÆ, Õâ¸öʱºòÐÔÄÜÊÇÈ¡¾öÓÚÍøÂçµÄ¿ªÏú¡£ÕâÒ²ÊÇÎÒÃDZÈmongoÀ©ÈÝ¿ìµÄµØ·½, mongo ÔÚÀ©ÈݵÄʱºòÐèÒª½«Êý¾ÝÒ»ÌõÒ»Ìõд¡£Ç¨ÒÆÖ®Ç°, ÎÒÃǻὫµ±Ç°Õâ¸ö½Úµã½øÐÐÇÐÖ÷²Ù×÷, ¾ÍÊǽ«ËùÓеÄÖ÷ÇÐ×ß¡£ÄÇôÕâ¸öʱºòÊDz»»áÓ°ÏìÏßÉÏ·ÃÎÊ£¬´øÀ´µÄ×î¶àµÄÓ°Ïì¾ÍÊÇÕâ¸ö½ÚµãµÄÍøÂçÓжîÍâµÄ¿ªÏú£¬µ«ÊÇÕâ¸ö½Úµã²»ÊÇÃæÏòÓû§µÄÇëÇóµÄ£¬ËùÒÔÓ°Ïì²»´ó¡£

Q5 :Ö÷ÇÐ×ßÒ²ÐèÒªÓÐÒ»¸öʱ¼ä°É?Õâ¸öʱ¼ä¶ÎÄÚ£¬Èç¹ûÒª·ÃÎÊÔ­À´Ö÷ÉϵÄÊý¾Ý£¬Ôõô´¦Àí?

ÕâÀïÊÇÕâÑùµÄÒ»¸ö¹ý³Ì, Ç¨ÒÆµÄʱºò±ÈÈçA ½Úµã¡£ ÄÇôA½ÚµãÉÏÓÐÖ÷·ÖƬ, ÄÇôÔÚÇ¨ÒÆÖ®Ç°£¬ÎÒÃÇ»áÏȽ«A½ÚµãÉϵÄÖ÷ÈøøÆäËû½Úµã¡£ÕâÀï¾ÍÉæ¼°µ½×·Binlog µÄÎÊÌ⣬Èç¹ûÕâ¸öʱºòÓû§ÓдóÁ¿µÄÊý¾ÝдÈë, »áµ¼ÖÂBinlog Ò»Ö±×·²»Æë¡£È·Êµ»áµ¼ÖÂÎÞ·¨Ç¨ÒÆ¡£

Q6:¹ØÓÚleveldbµÄÇ¨ÒÆ£¬ÄÜ·ñÏêϸ½éÉÜÒ»ÏÂ?

leveldb µÄÇ¨ÒÆºÜ¼òµ¥£¬¾ÍÊÇÖ±½Óͨ¹ýscp ¾Í¿ÉÒÔÁË¡£Õâ¸öÊÇleveldb ±¾ÉíµÄ¹¦ÄÜ£¬¾ÍÊÇͨ¹ýscp leveldb ¶ÔÓ¦µÄÊý¾ÝÎļþ¾Í¿ÉÒÔ¡£ÆäʵÎÒÃÇÔÚbinlog Õâ¿éÒ²×öÁËͦ¶àµÄÊÂÇé, ²»¹ý̫ϸÁËÓлú»áÏ´ν²¡£Ê¹ÓÃbinlog À´Í¬²½µÄ¸±±¾²ßÂÔÖ®ÖÐ, ³£¼ûµÄÎÊÌâ±ÈÈ磬·Ö²¼Ê½ÏµÍ³ÖÐÓÉÓÚÖ÷´ÓÇл»µ¼ÖµÄÊý¾Ý¶ªÊ§£¬È»ºóÎÒÃÇÒ²¿ª·¢ÁËbinlog merge À´¼õÉÙÕâÖÖÎÊÌâ´øÀ´µÄÓ°Ïì¡£

Q7:leveldbµÄ²¿·ÖÊý¾ÝÔÚÄÚ´æÖУ¬Õâ¸öÇ¨ÒÆµÄʱºòÔõô½â¾öµÄ?

Õâ¸öûÓÐÓ°Ïì¡£ÒòΪleveldb µÄmemtable µÄÊý¾ÝÔÚ´ÅÅÌÉÏÓжÔÓ¦µÄ.log Îļþ¡£leveldb Æô¶¯µÄʱºò»áĬÈ϶ÁÈ¡.logÎļþ, ½«ÀïÃæµÄÄÚÈݼÓÔØµ½ÄÚ´æÖС£

Q8 : ÎÒ»¹ÊÇû̫Ã÷°×£¬À©ÈݵÄʱºò£¬A½ÚµãÇе½ÆäËû½Úµã£¬ÊǰÑAµÄmetaÐÅÏ¢×öÇл»£¬È»ºóÔÙ¸´ÖÆÊý¾Ý£¬×îºóÔÙÓ³Éämeta?

À©ÈݵÄʱºòÊÇÕâÑùÒ»¸ö¹ý³Ì¡£ÏȽ«ÐÂÔöµÄ½Úµã¼ÓÈëµ½ÏÖÓеļ¯Èº£¬²»¹ýÕâ¸ö½Úµã²»¸ºÔðÈÎºÎµÄ·ÖÆ¬, Òò´ËûÓÐÈκÎÊý¾ÝÔÚÕâ¸ö½ÚµãÉÏ;È»ºóÎÒÃÇÇ¨ÒÆµÄ¹ý³ÌÊǽڵãÉϵÄÒ»¸ö¸öµÄ·ÖƬ½øÐÐÇ¨ÒÆ¡£±ÈÈçA Õâ¸ö½ÚµãÓÐ 10~20 Õ⼸¸ö·ÖƬ, ²¢ÇÒÕâ¸öʱºò 10~20 Õâ¸ö·ÖƬÊÇÖ÷, ÄÇôÒÀ´ÎÎÒÃÇÏȽ«AÕâ¸ö½ÚµãµÄ10~20±ä³É´Ó, Õâ¸öʱºòÐèÒªÐÞ¸ÄmetaÐÅÏ¢¡£È»ºó½ÓÏÂÀ´ÊǸ´ÖƶÔÓ¦µÄÊý¾ÝÎļþµ½Ð½ڵã, ¸´ÖƽáÊøÒÔºó, ÐÞ¸Ä10~20 Õ⼸¸ö·ÖƬµ½ÐµÄÖ÷ÉÏ.×îºóÐÞ¸Ämeta ÐÅÏ¢ ,ºÍ´ó²¿·Öϵͳ±È×î´óµÄ²»Í¬ÔÚÓÚ Bada µÄÖ÷´ÓÊÇ·ÖÆ¬¼¶±ðµÄÖ÷´Ó, ²»Êǽڵ㼶±ðµÄÖ÷´Ó.ÕâÑùÈκβÙ×÷Ôì³ÉµÄÓ°Ïì¶¼ÊǷdz£Ð¡. ²¢ÇÒ¿ÉÒÔ×öµ½Ã¿¸ö½ÚµãµÄ¸ºÔؾ¡¿ÉÄܵľùºâ¡£

Q9:mnesiaÓÃÀ´´æ´¢metaÐÅÏ¢Âð?

mnesia ¶ÔÓÚÎÒÃǵĶ¨Î»¾ÍÀàËÆÓÚZooKeeper¡£ÓÐÁ½¸öÓÃ;, Ò»¸öÊÇÑ¡Ö÷µÄ¹ý³ÌÌṩһ¸öÈ«¾ÖµÄËø, Ò»¸öÊDZ£´æÔªÐÅÏ¢¡£

Ϊʲô²»Ê¹ÓÃZooKeeper

ZooKeeper ºÍ mnesia ¶Ô±È, ZooKeeper ÊÇÒ»¸ö·þÎñ, ¶ømnesiaÊÇÒ»¸ö¿â, Òò´ËÈç¹ûʹÓÃZooKeeperµÄ»°, ÎÒÃÇÐèÒª¶îÍâµÄά»¤Ò»Ì×·þÎñ. ¶ømnesia¿ÉÒÔÖ±½Ó¼¯³ÉÔÚ´úÂëÀïÃæ. ʹÓøü·½±ã

mnesia ºÍ erlang ¼¯³ÉµÄ¸üºÃ. mnesia±¾Éí¾ÍÊÇÓÃErlang À´¿ª·¢

Q10:metaÐÅÏ¢ÊÇ´æ´¢ÔÚµ¥¶ÀµÄ»úÆ÷ÉÏ£¬¶ø²»ÊÇ·Ö²¼ÔÚ´æ´¢½ÚµãÉÏÂð?

²»ÊÇ, ´æ´¢ÔÚÿһ¸ö½ÚµãÉÏ. ÿһ¸ö½Úµã¶¼²¿ÓÐmnesia

Q11:¼ÈÈ»ÓÃmnesia£¬ÄÇÄãǰ¶Ë»úÆ÷Á¬ÔÚÒ»¸ö¼¯Èº?¹æÄ£¶à´ó?

ǰ¶ËÊǰ´ÕÕÒµÎñ»®·ÖµÄ,×î´óµÄÓÐ30¼¸¸ö½Úµã.

   
4075 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

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

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

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù