È¥ÄêµÄ˫ʮһ¹ýºó£¬InfoQÔø¾²É·Ã¹ý¾©¶«ÔÆÆ½Ì¨Ê×ϯ¼Ü¹¹Ê¦Áõº£·æ¡£Áõº£·æ£¬2013Äê¼ÓÈ뾩¶«£¬µ£ÈÎÔÆÆ½Ì¨Ê×ϯ¼Ü¹¹Ê¦¡¢ÏµÍ³¼¼Êõ²¿¸ºÔðÈË£¬Ö÷³Ö½¨Éè´æ´¢¡¢Öмä¼þ¡¢µ¯ÐÔ¼ÆËãµÈ˽ÓÐÔÆ¼¼ÊõÌåϵ¡£
3ÔÂ31ÈÕ£¬ÔÚ»ªÎªICTѲչ±±¾©Õ¾µÄ»î¶¯ÖУ¬Áõº£·æ·ÖÏíÁË¡¶¾©¶«»ù´¡ÔÆ·þÎñ¼¼ÊõÑݽø¡·¡£
»ù´¡ÔÆ·þÎñÖ§³Åמ©¶«ºÜ¶àÒµÎñµÄ·¢Õ¹¡£Ëü¿ÉÒÔ·ÖΪÈý¸ö²ã´Î£¬°üÀ¨µ×²ãµÄ´æ´¢·þÎñ£¬ºËÐĵÄÖмä¼þÒÔ¼°ÉϲãµÄµ¯ÐÔ¼ÆËãÔÆ£¬Í¨¹ýAPIÒÔ·þÎñµÄÐÎʽ֧³ÅÆäËûÒµÎñµ¥Ôª¡£ÏÂÃæÎÒÃÇ·Ö±ðÀ´¿´Ò»Ï¡£

´æ´¢ÏµÍ³Ãæ¶ÔµÄÌôÕ½ÓëÓ¦¶ÔÖ®µÀ
´æ´¢ÊÇ»¥ÁªÍø¹«Ë¾×î»ù´¡µÄ¶«Î÷¡£ÕâÒ²ÊÇ¿ª·¢ÍŶӻ¨¾«Á¦×î¶à£¬³ÖÐøµü´úµÄÒ»¸ö¼¼Êõ·½Ïò¡£
ÌôÕ½1£º·Ç½á¹¹»¯´æ´¢
¾©¶«Ã¿ÌìÓÐǧÍò¼¶µÄÉ̼ÒÉÏ´«Í¼Æ¬£¬Óû§ä¯ÀÀÍêͼƬºó»á²úÉú½»Ò×¶©µ¥£¬ÐèÒªºÜ¶àÎı¾À´ÃèÊöÕâЩ¶©µ¥¡£ÁíÍ⾩¶«ÓÐ×Ô¼ºµÄ¿â·¿£¬ÈκÎÒ»·Ý¶©µ¥¾¹ý²ð·Ö£¬¾¹ý¿â·¿µÄÁ÷ת£¬Ã¿Ò»·Ö¶©µ¥ÓÖ»á²úÉú¼¸Ê®·Ý·Ç½á¹¹»¯µÄÊý¾Ý£¬Éæ¼°ÉÌÆ·µÄÈë¿â¡¢³ö¿â¡¢µ÷²¦µÈ¡£ÉÌÆ·Ë͵½¿Í»§ÊÖÖÐÖ®ºó£¬»¹ÓÐÇ©µ¥ÐÅÏ¢¡¢ÒøÐÐСƱ£¬Î´À´ÕâЩÐÅÏ¢µÄµç×Ó»¯¡¢ºÍÒøÐжÔÕË£¬ÓÖÊǺܶà·Ç½á¹¹»¯µÄÊý¾Ý¡£

·Ç½á¹¹»¯µÄÊý¾ÝÔ½À´Ô½¶à£¬ÈçºÎ´æ´¢ÕâЩÊý¾Ý£¿É̼ҵÄͼƬ¡¢½»Ò׵Ķ©µ¥¡¢¿â·¿µÄ¼Ç¼¡¢µç×ÓÇ©ÊÕµÄÐÅÏ¢£¬ÕâЩÊý¾Ý¶¼ÊǷdz£¹Ø¼üµÄ£¬¶øÇÒÕâЩÊý¾ÝÓÐÒ»¸öÌØµã£¬Á¿±È½Ï´ó£¬µ«Ã¿·ÝÊý¾ÝÒ»°ã¶¼±È½ÏС¡£
JFS:Jingdong Filesystem
¾©¶«Õë¶Ô·Ç½á¹¹»¯Êý¾Ý¿ª·¢ÁË´ó¹æÄ£·Ö²¼Ê½´æ´¢ÏµÍ³JFS£¨Jingdong Filesystem£©£¬Ö§³ÖBLOBs/files/blocks¡£ÏÖÔÚÕâ¸öϵͳÒѾµ½ÁË3.0°æ±¾£¬¿ÉÒÔͳһ¹ÜÀíСµÄ¶ÔÏó¡¢´óµÄÎļþÒÔ¼°Ë½ÓÐÔÆÖпɳ־û¯µÄ¿éÉ豸¡£
¼¼Êõ·½Ã棬ÒòΪÊý¾Ý²»ÄܶªÊ§£¬ËùÒÔ´ÓÒ»¿ªÊ¼¾Í½²¾¿Ç¿Ò»Öµĸ´ÖÆ£¬Ê¹ÓÃÁËPaxos¸´ÖÆ£»ÔÚ´æ´¢ÒýÇæÒÔ¼°¸÷ÖÖÊý¾ÝÄ£ÐÍÉϲÉÓÃÁËͳһµÄ´æ´¢¹ÜÀí£»Ëæ×ŹæÄ£µÄÔö´ó£¬µ½Á˼¸PBÊý¾ÝµÄʱºò£¬²ÉÓÃÁËReed-solomonÂëÀ´½µµÍ´æ´¢³É±¾£»ÔªÊý¾ÝµÄ¹ÜÀíºÍHadoopµÄ¼¯³É·½Ã棬ĿǰҲÓв»´íµÄ½øÕ¹ºÍÂ䵨µÄÓ¦Óá£
Ŀǰ¸ÃϵͳÒѾÔÚÖ§³Å¾©¶«É̳ǵÄÈçÏ·þÎñ£º
ͼƬ·þÎñ
¶©µ¥ÂÄÔ¼
ÎïÁ÷Êý¾Ý½»»»
µç×ÓÇ©ÊÕ
ÄÚ²¿ÔÆ´æ´¢·þÎñ
ÐéÄâ»úÓëÈÝÆ÷¾í´æ´¢
ÌôÕ½2£ºÔ½À´Ô½¶àµÄ»º´æ
Ϊ±£Ö¤¿ìËÙÏìÓ¦£¬ºÜ¶àÊý¾Ý¶¼»á·Åµ½ÄÚ´æÀ±ÈÈçÉÌÆ·µÄ¼Û¸ñ£¬ËÑË÷ÍÆ¼öµÄ½á¹ûµÈ¡£Ô½À´Ô½¶àµÄ»º´æ£¬Ô½À´Ô½¶àµÄ´óÄÚ´æ»úÆ÷£¬²»Í¬µÄÒµÎñ£¬ÈçºÎ¹ÜÀíËüÃÇÒ²ÊǺܴóµÄÌôÕ½¡£×îÔ磬ºÜ¶àС¹æÄ£µÄ¹«Ë¾¿ÉÄÜ»á²ÉÓÃMemcached¡¢RedisµÈ£¬µ«µ±µ½Á˺ܴó¹æÄ£µÄʱºò£¬¼¼ÊõÒ²»á·¢ÉúÖʱ䡣
Jimdb£º·Ö²¼Ê½»º´æÓë¸ßËÙNoSQL
JimdbÊǾ©¶«Ñз¢µÄÆóÒµ¼¶NoSQL·þÎñ£¬Äܹ»Í³Ò»×ö·Ö²¼Ê½µÄ»º´æ£¬Ò²ÄÜ×ö¸ßËٵļüÖµ´æ´¢£¬ÍêÈ«¼æÈÝRedisµÄÐÒé¡£ÓëRedisÏà±È£¬ËüÓÐÈçÏÂÌØÐÔ£º
¾«È·¹ÊÕϼì²âÓë×Ô¶¯Çл»
RAM/SSD»ìºÏ´æ´¢
ÔÚÏߺáÏòÀ©ÈÝ
Òì²½¡¢Í¬²½¡¢¾Ö²¿¸´ÖÆ
È«×Ô¶¯»¯½ÓÈëÓë¹ÜÀí
ÆäÖС°È«×Ô¶¯»¯½ÓÈëÓë¹ÜÀí¡±ÕâÒ»µãÊÇ×î½ü°ëÄêµÄÖ÷Òª¹¤×÷£¬Ä¿µÄÊǽµµÍά»¤³É±¾¡£
JimdbÔÚ¾©¶«²¿ÊðÁË3000¶ą̀»úÆ÷£¬¶¼ÊÇ´óÄÚ´æ+¹Ì̬ӲÅ̵ģ¬Ö§³ÅÁ˾©¶«µÄÉÌÆ·ÏêÇéÒ³¡¢ËÑË÷¡¢ÍƼö¡¢¹ã¸æµã»÷µÈºÜºËÐÄÊý¾ÝµÄ¿ìËÙ·ÃÎÊ¡£
ÏÂÒ»´úд洢ƽ̨
Áõº£·æµÄÍŶÓ×î½üÔÚ×öµÄÊÂÇéÊÇ£¬¸ü¶à¿¼ÂǶàÊý¾ÝÖÐÐĵĸ´ÖÆ£¬ÈÃÊý¾Ý¸ü¼Ó¿É¿¿£¬²¢ÇÒÏ£Íû×öͳһµÄ´æ´¢·þÎñ£¬ÊµÏÖOne
Jingdong One Stroage£¬ÓÃÒ»¸öϵͳ³éÏó³öÎļþ¡¢¶ÔÏó¡¢±íÉõÖÁ»º´æ£¬Äܹ»ÔÚ·Ö²¼Ê½µÄ¶à¸öÊý¾ÝÖÐÐÄʵÏÖͳһµÄ¸´ÖÆ´æ´¢µ×²ãµÄÊý¾Ý£¬ÔÚÖ÷IDC×ö»º´æ£¬ÉõÖÁÈ«Á¿ÄÚ´æ¼ÓËÙ£»ÏòÉÏÖ§³ÖÔÚÏß·þÎñ¡¢Hadoop£¬Ö§³Ö˽ÓÐÔÆÄÚ²¿µÄÈÝÆ÷¾íµÄ¹ÜÀíµÈ¡£

Öмä¼þ£ºÏûÏ¢¶ÓÁÐÓëSOA
µ×²ã´æ´¢µÄÉÏÃæ¾ÍÊǸ÷ÖÖÖмä¼þ¡£
ÌôÕ½£ºÔ½À´Ô½¶àµÄÏûÏ¢´«µÝ
¾©¶«¸úºÜ¶à»¥ÁªÍø¹«Ë¾²»Ò»ÑùµÄµØ·½ÊÇ£¬³ýÁ˱±¾©ºÍ½ËյĺËÐÄ»ú·¿£¬ÔÚÈ«¹ú¸÷µØ»¹ÓкܶàÉÌÆ·µÄ¿â·¿£¬Ã¿¸ö¿â·¿»áÓм¸Ê®Ì¨·þÎñÆ÷£¬Ï൱ÓÚÒ»¸öСÐ͵ÄÊý¾ÝÖÐÐÄ£¬ÏûÏ¢¶ÓÁв»½öÒª´®ÁªºËÐÄ»ú·¿ÀïµÄÒµÎñ£¬»¹ÒªÇý¶¯¿â·¿ÀïµÄ¶©µ¥Éú²ú»·½Ú£¬¸úÒµÎñ´æÔÚºÜÇ¿µÄÒÀÀµ¹ØÏµ¡£´Ó¶©µ¥¹ÜµÀ£¬µ½ºËÐÄ»ú·¿£¬ÔÙµ½²Ö´¢¿â·¿£¬ÆÕ±éÊÇÓÃÏûÏ¢¶ÓÁÐÇý¶¯ÒµÎñÁ÷³ÌµÄ¡£ÈÕ¾ùÏûÏ¢Êý³¬¹ý°ÙÒÚ¡£
JMQ£ºJingdong Message Queues
Ãæ¶ÔÒµÎñÌôÕ½£¬¾©¶«µÄÏûÏ¢¶ÓÁÐϵͳ¾¹ýÁËÈý´úÑݽø£¬ÓÚÈ¥Äê˫ʮһ֮ǰÉÏÏßÁËJMQ²¢Íê³ÉÇл»¡£
JMQÓÐÈçÏÂÌØµã£º
»ú·¿¶Ïµç²»¶ªÏûÏ¢
ÒòΪ¿â·¿µÄÍøÂç»·¾³ÊDz»Îȶ¨µÄ£¬ËùÒÔ±ØÐë±£Ö¤²»¶ªÏûÏ¢¡£
×éÌá½»¼¼Êõ
ÒýÈëÁËÊý¾Ý¿âÖоµäµÄgroup commit¼¼Êõ£¬Ìá¸ßͬ²½Ë¢´ÅÅ̵ÄдµÄÐÔÄÜ¡£
͸Ã÷ѹËõ
Áé»î¸´ÖÆ

ÌôÕ½£ºÔ½À´Ô½¶àµÄÔÚÏß·þÎñ
µçÉÌϵͳÄÚÓкܶà·þÎñ¡£ÕâЩ·þÎñÄÚ²¿»á»¥Ïàµ÷Ó㬶ÔÍâÒ²Òª¿ª·ÅһЩ½Ó¿Ú£¬¹©É̼һòÕߺÏ×÷»ï°éʹÓá£
JSF£ºJingdong Service Framework
¾©¶«ÔÚÕâ·½ÃæµÄ½â¾ö·½°¸ÊÇJSF¡£¿ÉÒÔ×öµ½ÔËÐÐʱ·þÎñÖÊÁ¿·ÖÎö£¬ÌṩÁËÍêÉÆµÄ·þÎñÖÎÀí¹¦ÄÜ¡£Ä¿Ç°ÔÚ¾©¶«ÒѾ½ÓÈëÁ˼¸Íǫ̀·þÎñÆ÷£¬¸üºÃµØÖ§³ÖÁËÄÚ²¿µÄSOA»¯ÒÔ¼°¶ÔÍâµÄ·þÎñ¿ª·Å¡£
µ¯ÐÔ¼ÆËã
µ¯ÐÔ¼ÆËãÔÆÊÇĿǰµÄÖ÷Òª¹¤×÷¡£
ÌôÕ½£ºÔ½À´Ô½¶àµÄ»úÆ÷
ÈκÎÒ»¸ö¸ßËÙ·¢Õ¹µÄ»¥ÁªÍø¹«Ë¾£¬»úÆ÷ÊýÁ¿¶¼ÊÇÔڳɱ¶Ôö¼ÓµÄ¡£Ëæ×ÅÒµÎñ¹æÄ£µÄÔö³¤£¬»úÆ÷µÄÊýÁ¿Ò²ÔÚ²»¶ÏÔö¼Ó¡£ÏÖÔÚ¾ÍÒªÃæ¶ÔÕâÑùµÄ³¡¾°£ºÓкܶàÊý¾ÝÖÐÐÄ£¬¶øÃ¿¸öÊý¾ÝÖÐÐÄÄڵĻúÆ÷Óֻᱻ»®·Ö¸ø²»Í¬µÄÒµÎñ£¬±ÈÈçÓеĻúÆ÷´¦Àí½»Ò×£¬ÓеĴ¦Àí¶©µ¥ÂÄÔ¼£¬ÓеĴ¦ÀíËÑË÷£¬ÓеĴ¦ÀíͼƬµÈµÈ£¬Ãæ¶ÔÕâô¶à»úÆ÷£¬Ó¦¸ÃÔõÑù¹ÜÀí£¬ÈÃÑз¢ÍŶӵÄЧÂʸü¸ßÄØ£¿
µ¯ÐÔ¼ÆËãÔÆ
¸ÃÏîÄ¿µÄÔ¸¾°ÊÇÔÚIDCµÄ×ÊÔ´ºÍÒµÎñϵͳ֮¼ä½¨Á¢Ò»¸öÇÅÁº£¬ÈÃÒµÎñÓë»úÆ÷ÍêÈ«½âñ×öµ½ÕæÕý×Ô¶¯»¯Î¬»¤£¬Ëõ¶Ì²úÆ·¿ª·¢µ½ÉÏÏßµÄÁ÷³Ì£¬Èù¤³ÌʦµÄ¾«Á¦¸ü¶à·ÅÔÚ²úÆ·µÄÉè¼ÆºÍÑз¢ÉÏ£¬¶ø²»±Ø¹Ø×¢ÈçºÎÉêÇë×ÊÔ´¡¢ÈçºÎÉÏÏߣ»Ìá¸ß×ÊÔ´ÀûÓÃÂʺͷþÎñÖÊÁ¿£¬ÈÃÑз¢ÍŶӵÄÉú»î¸üÃÀºÃ¡£
´Ó¹«Ë¾ÕûÌåÀ´¿´£¬Ï£ÍûÄܹ»Ìá¸ß×ÊÔ´µÄÀûÓÃÂÊ¡£ÒòΪºÜ¶à»úÆ÷ÊÇ·ÖÉ¢µÄ£¬Óɸ÷¸öÒµÎñÍŶÓʹÓ㬱ØÈ»Óкܶà»úÆ÷ÊÇ¿ÕÏеģ¬Í³Ò»¹ÜÀí±ØÈ»ÄÜÌá¸ß×ÊÔ´µÄÀûÓÃÂÊ¡£
µ¯ÐÔ¼ÆËãÔÆµÄÕûÌå¼Ü¹¹ÈçÏÂͼËùʾ£¬·Ö²ðÁ½²ã·þÎñ¡£µ×²ãÊÇ»ù´¡·þÎñ£¬ÊµÏÖÈí¼þ¶¨ÒåÊý¾ÝÖÐÐÄ¡£Í¨¹ýOpenStackºÍDockerµÄ½áºÏ£¬ÊµÏÖÈÝÆ÷»¯¡£JFSʵÏÖ¿É¿¿µÄ´æ´¢¡£ÉϲãÊÇÆ½Ì¨·þÎñ£¬Ï£Íûͨ¹ý¼¯³É²¿Êð£¬ÊµÏÖ×ÊÔ´µÄͳһ·ÖÅ䣬ҵÎñ²»ÓùØ×¢×Ô¼ºµ½µ×²¿Êðµ½ÄĄ̈»úÆ÷ÉÏ£¬²¢ÓÉÆ½Ì¨¸ù¾ÝÒµÎñÁ¿ÊµÏÖ×Ô¶¯ÉìËõ¡£

ÏÖÔÚÕâ¸öϵͳÒѾÔÚ²¿·ÖÒµÎñÖÐÂ䵨£¬´ó¹æÄ£Â䵨»áÔÚ½ñÄêÄêÍê³É¡£¾ßÌå¶øÑÔ£¬ÏñÉÌÆ·ÏêÇéÒ³¡¢Í¼Æ¬ÏµÍ³£¬¾ÍÊǵ¯ÐÔ¼ÆËãÔÆÖ§³ÅµÄ£¬Óû§µÄÿһ´Îä¯ÀÀ£¬¶¼ÓÐÕâ¸öϵͳÔÚ×ö¹±Ï×£¬Äܹ»°´·ÃÎÊÁ÷Á¿×Ô¶¯µ÷¶È×ÊÔ´¡£ÔÚÁ÷Á¿¸ß·åµÄʱºò£¬ÕâÁ½¸ö·þÎñ»á×Ô¶¯À©ÈÝ¡£
×öΪ×ܽᣬÁõº£·æ×ܽáÁËÁ½µã£º
1. ÒµÎñ·¢Õ¹Íƶ¯»ù´¡¼Ü¹¹µÄÑݽø£»
2. ¼¼ÊõµÄ¹Ø¼üÊÇÍŶӡ£ |