ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ãæ½éÉÜÁËServerCnxn£¬ÏÂÃ濪ʼѧϰNIOServerCnxn¡£ ¶þ¡¢NIOServerCnxnÔ´Âë·ÖÎö 2.1 ÀàµÄ¼Ì³Ð¹Øϵ ˵Ã÷£ºNIOServerCnxn¼Ì³ÐÁËServerCnxn³éÏóÀ࣬ʹÓÃNIOÀ´´¦ÀíÓë¿Í»§¶ËÖ®¼äµÄͨÐÅ£¬Ê¹Óõ¥Ï̴߳¦Àí¡£ 2.2 ÀàµÄÄÚ²¿Àà 1. Send ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾ·ÖÎöÁËÇëÇó´¦ÀíÁ´ÖеĶàÊýÀ࣬½Ó׿ÌÐø·ÖÎöZookeeperÖеÄÍøÂçͨÐÅÄ£¿é¡£ ¶þ¡¢×ÜÌå¿òͼ ¶ÔÓÚÍøÂçͨÐÅÄ£¿é£¬Æä×ÜÌå¿òͼÈçÏÂËùʾ ˵Ã÷£º Stats£¬a56爆大奖在线娱乐ServerCnxnÉϵÄͳ¼ÆÊý¾Ý¡£ Watcher£¬a56爆大奖在线娱乐ʱ¼ä´¦ÀíÆ÷¡£ ServerCnxn£¬a56爆大奖在线娱乐·þÎñÆ÷Á¬½Ó£¬a56爆大奖在线娱乐Ò»¸ö´Ó¿Í»§¶Ëµ½·þ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ãæ·ÖÎöÁËSyncReqeustProcessor£¬½Ó×Å·ÖÎöÇëÇó´¦ÀíÁ´ÖÐ×îºóµÄÒ»¸ö´¦ÀíÆ÷FinalRequestProcessor¡£ ¶þ¡¢FinalRequestProcessorÔ´Âë·ÖÎö 2.1 ÀàµÄ¼Ì³Ð¹Øϵ ˵Ã÷£ºFinalRequestProcessorֻʵÏÖÁËRequestProc ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ ÔÚ·ÖÎöÁËPrepRequestProcessor´¦ÀíÆ÷ºó£¬½Ó×ÅÀ´·ÖÎöSyncRequestProcessor£¬¸Ã´¦ÀíÆ÷½«ÇëÇó´æÈë´ÅÅÌ£¬Æ佫ÇëÇóÅúÁ¿µÄ´æÈë´ÅÅÌÒÔÌá¸ßЧÂÊ£¬ÇëÇóÔÚдÈë´ÅÅÌ֮ǰÊDz»»á±»×ª·¢µ½Ï¸ö´¦ÀíÆ÷µÄ¡£ ¶þ¡¢SyncRequestProcessorÔ´Âë·ÖÎö 2.1 ÀàµÄ¼Ì³Ð¹Øϵ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæѧϰÁË¿ØÖƽṹ£¬ÏÂÃæѧϰScalaµÄClassºÍProperties¡£ ¶þ¡¢Class&Properties ¾¡¹ÜScalaºÍJavaºÜÀàËÆ£¬µ«ÊǶÔÀàµÄ¶¨Òå¡¢À๹Ô캯Êý¡¢×ֶοɼûÐÔ¿ØÖƵÈÔò²»Ïàͬ£¬Java¸üΪÈß³¤£¬Scala¾«Á¶¡£±¾Õ½«Í¨¹ýScalaµÄ¹¹Ô캯Êý¹¤×÷ÔÀíÀ´Àí½âScalaµÄ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæѧϰÁËÇëÇó´¦ÀíÁ´µÄRequestProcessor¸¸À࣬½Ó×ÅѧϰPrepRequestProcessor£¬Æäͨ³£ÊÇÇëÇó´¦ÀíÁ´µÄµÚÒ»¸ö´¦ÀíÆ÷¡£ ¶þ¡¢PrepRequestProcessorÔ´Âë·ÖÎö 2.1 ÀàµÄ¼Ì³Ð¹Øϵ ˵Ã÷£º¿ÉÒÔ¿´µ½PrepRequestProcessor¼Ì³ÐÁËThre ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾ·ÖÎöÁËWatcher»úÖƵÄÖ÷Òª´úÂ룬ÏÖÔÚ½Ó×Å·ÖÎöZookeeperÖеÄÇëÇó´¦ÀíÁ´£¬ÆäÊÇZookeeperµÄÖ÷ÒªÌصãÖ®Ò»¡£ ¶þ¡¢×ÜÌå¿òͼ ¶ÔÓÚÇëÇó´¦ÀíÁ´¶øÑÔ£¬ËùÓÐÇëÇó´¦ÀíÆ÷µÄ¸¸½Ó¿ÚΪRequestProcessor£¬Æä¿ò¼ÜͼÈçÏ ˵Ã÷£º AckRequestProcessor£¬½«Ç°Ò» ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæѧϰÁËScalaµÄNumbers£¬½Ó×ÅѧϰScalaµÄControl Structures(¿ØÖƽṹ)¡£ ¶þ¡¢Control Structures ScalaÖеĿØÖƽṹÓëJavaÖеÄÆÄΪÀàËÆ£¬µ«Ò²ÓÐËù²»Í¬£¬ÀýÈ磬if/then/else¿ØÖƽṹÓëJavaµÄÀàËÆ£¬µ«ÊÇÆä¿ÉÒÔ·µ»ØÖµ£¬ËäÈ» ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾ·ÖÎöÁËWatcher»úÖÆÖеĴó¶àÊýÀ࣬±¾Æª¶ÔÓÚZKWatchManagerµÄÍⲿÀàZookeeper½øÐзÖÎö¡£ ¶þ¡¢ZooKeeperÔ´Âë·ÖÎö 2.1 ÀàµÄÄÚ²¿Àà ZooKeeperµÄÄÚ²¿Àà¿ò¼ÜͼÈçÏÂͼËùʾ ˵Ã÷£º · ZKWatchManager£¬ZookeeperµÄWatche ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾѧϰÁËScalaÖеÄString£¬½Ó×ÅѧϰScalaµÄNumbers¡£ ¶þ¡¢Numbers ÔÚScalaÖУ¬ËùÓеÄÊý×ÖÀàÐÍ£¬ÈçByte£¬Char£¬Double£¬Float£¬Int£¬Long£¬Short¶¼ÊǶÔÏó£¬ÕâÆßÖÖÊý×ÖÀàÐͼ̳ÐAnyValÌØÖÊ£¬ÕâÆßÖÖÊý×ÖÀàÐÍÓëÆäÔÚJavaÖÐÓÐÏàͬ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ ´óÊý¾ÝÁìÓòµÄSpark¡¢Kafka¡¢SummingbirdµÈ¶¼ÊÇÓÉScalaÓïÑÔ±àд¶ø³É£¬Ïà±ÈJava¶øÑÔ£¬Scala¸ü¾«Á¶¡£ÓÉÓÚ±ÊÕß´ÓÊ´óÊý¾ÝÏà¹ØµÄ¹¤×÷£¬a56爆大奖在线娱乐ÓбØÒªºÃºÃѧϰScalaÓïÑÔ£¬Ö®Ç°Ò²Ñ§Ï°¹ý£¬µ«ÊÇûÓмǼ£¬a56爆大奖在线娱乐¾Í»áÍü¼Ç£¬¸Ð¾õScalaȷʵ±ÈJava·½±ã¾«Á¶ºÜ¶à£¬ÏÂÃæÒÔScala ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾ·ÖÎöÁËWatcher»úÖÆÖеĵÚÒ»²¿·Ö£¬¼´ÔÚorg.apache.zookeeperϵÄÏà¹ØÀ࣬½Ó×ÅÀ´·ÖÎöorg.apache.zookeeper.serverϵÄWatchManagerÀà¡£ ¶þ¡¢WatchManagerÔ´Âë·ÖÎö 2.1 ÀàµÄÊôÐÔ ËµÃ÷£ºWatcherManager ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾ·ÖÎöÁËZookeeper³Ö¾Ã»°Ïà¹ØµÄÀ࣬ÏÂÃæ½Ó×Å·ÖÎöZookeeperÖеÄWatcher»úÖÆËùÉæ¼°µ½µÄÀà¡£ ¶þ¡¢×ÜÌå¿òͼ ¶ÔÓÚWatcher»úÖƶøÑÔ£¬Ö÷ÒªÉæ¼°µÄÀàÖ÷ÒªÈçÏ¡£ ˵Ã÷£º Watcher£¬½Ó¿ÚÀàÐÍ£¬Æ䶨ÒåÁËprocess·½·¨£¬Ðè×ÓÀàʵÏÖ¡£ Event£¬½Ó¿ÚÀàÐÍ£¬Watch ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ãæ·ÖÎöÁËFileSnap£¬½Ó׿ÌÐø·ÖÎöFileTxnSnapLogÔ´Â룬Æä·â×°ÁËTxnLogºÍSnapShot£¬ÆäÔڳ־û¯¹ý³ÌÖÐÊÇÒ»¸ö°ïÖúÀà¡£ ¶þ¡¢FileTxnSnapLogÔ´Âë·ÖÎö 2.1 ÀàµÄÊôÐÔ ËµÃ÷£ºÀàµÄÊôÐÔÖаüº¬ÁËTxnLogºÍSnapShot½Ó¿Ú£¬¼´¶ÔFileTxnSnap ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Æª²©ÎÄÒѾ·ÖÎöÁËFileTxnLogµÄÔ´Â룬ÏÖÔÚ½Ó×Å·ÖÎö³Ö¾Ã»¯ÖеÄFileSnap£¬ÆäÖ÷ÒªÌṩÁË¿ìÕÕÏàÓ¦µÄ½Ó¿Ú¡£ ¶þ¡¢SnapShotÔ´Âë·ÖÎö SnapShotÊÇFileTxnLogµÄ¸¸À࣬½Ó¿ÚÀàÐÍ£¬Æä·½·¨ÈçÏ ˵Ã÷£º¿ÉÒÔ¿´µ½SnapShotÖ»¶¨ÒåÁËËĸö·½·¨£¬·´ÐòÁл¯¡¢ÐòÁл¯¡¢²éÕÒ×îÐ嵀 ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ò»ÆªÒѾ·ÖÎöÁËÐòÁл¯£¬Õâƪ½Ó×Å·ÖÎöZookeeperµÄ³Ö¾Ã»¯¹ý³ÌÔ´Â룬³Ö¾Ã»¯¶ÔÓÚÊý¾ÝµÄ´æ´¢ÖÁ¹ØÖØÒª£¬ÏÂÃæ½øÐÐÏêϸ·ÖÎö¡£ ¶þ¡¢³Ö¾Ã»¯×ÜÌå¿ò¼Ü ³Ö¾Ã»¯µÄÀàÖ÷ÒªÔÚ°üorg.apache.zookeeper.server.persistenceÏ£¬´Ë´a56爆大奖在线娱乐²Ö÷ÒªÊǶÔÆäϵÄÀà½øÐзÖÎö£¬Æä°üÏÂ×ÜÌåµÄÀà½á ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ ÔÚÍê³ÉÁËÇ°ÃæµÄÀíÂÛѧϰºó£¬ÏÖÔÚ¿ÉÒÔ´ÓÔ´Âë½Ç¶ÈÀ´½âÎöZookeeperµÄϸ½Ú£¬Ê×ÏȱÊÕßÏë´ÓÐòÁл¯ÈëÊÖ£¬ÒòΪÔÚÍøÂçͨÐÅ¡¢Êý¾Ý´æ´¢Öж¼Óõ½ÁËÐòÁл¯£¬ÏÂÃ濪ʼ·ÖÎö¡£ ¶þ¡¢ÐòÁл¯ ÐòÁл¯Ö÷ÒªÔÚzookeeper.jute°üÖУ¬ÆäÖÐÉæ¼°µÄÖ÷Òª½Ó¿ÚÈçÏ · InputArchive · OutputAr ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢¾íÊ×Óï »ØÏëÈ¥Äê´ËʱµÄ2015Äê×ܽᣬËêÔ²»ÈÄÈË£¬Ò»ÄêµÄʱ¼äÓÖÕâÑùÁï×ßÁË¡£Ò»ÄêµÄʱ¼ä£¬ºÜ³¤£¬³¤µ½¿ÉÒÔ·¢ÉúºÜ¶àÊÂÇ飻ºÜ¶Ì£¬¶Ìµ½ºÃ¶àÊÂÇ鶼»¹Ã»À´µÃ¼°·¢Éú¡£ ¶þ¡¢»Ø¹Ë 2.1 ¿ÆÑÐ 2015Ä궨µÄ½ñÄêÕùÈ¡Íê³ÉһƪÂÛÎÄ£¬Õâ¸öÄ¿±êÔÝʱ»¹Ã»ÓÐÍê³É¡£½ñÄê֮ǰÒѾдÍêÁËһƪÂÛÎÄ£¬µ«Êǵ¼Ê¦¿´Á˺ó¾õµÃÖÊÁ¿Ì«²î¡¢Á¢Òâ ÔĶÁÈ«ÎÄ
ͻ񻣼
ZookeeperµÄĿ¼ÕûÀíÈçÏ 1. ¡¾·Ö²¼Ê½¡¿·Ö²¼Ê½¼Ü¹¹ 2. ¡¾·Ö²¼Ê½¡¿Ò»ÖÂÐÔÐÒé 3. ¡¾·Ö²¼Ê½¡¿ChubbyÓëPaxos 4. ¡¾·Ö²¼Ê½¡¿ZookeeperÓëPaxos 5. ¡¾·Ö²¼Ê½¡¿ZookeeperʹÓÃ--ÃüÁîÐÐ 6. ¡¾·Ö²¼Ê½¡¿ZookeeperʹÓÃ--Java API 7. ¡¾·Ö ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ãæ·ÖÎöÁËZookeeper¶ÔÇëÇóµÄ´¦Àí£¬±¾Æª²©ÎĽÓ×Å·ÖÎöZookeeperÖÐÈçºÎ¶Ôµ×²ãÊý¾Ý½øÐд洢£¬Êý¾Ý´æ´¢±»·ÖΪÄÚ´æÊý¾Ý´æ´¢ÓÚ´ÅÅÌÊý¾Ý´æ´¢¡£ ¶þ¡¢Êý¾ÝÓë´æ´¢ 2.1 ÄÚ´æÊý¾Ý ZookeeperµÄÊý¾ÝÄ£ÐÍÊÇÊ÷½á¹¹£¬ÔÚÄÚ´æÊý¾Ý¿âÖУ¬´æ´¢ÁËÕû¿ÃÊ÷µÄÄÚÈÝ£¬°üÀ¨ËùÓеĽڵã·¾¶¡¢½ÚµãÊý¾Ý¡¢ACL ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ ÔÚÇ°ÃæѧϰÁËZookeeperÖзþÎñÆ÷µÄÈýÖÖ½ÇÉ«¼°ÆäÖ®¼äµÄͨÐÅ£¬½Ó×Åѧϰ¶ÔÓÚ¿Í»§¶ËµÄÒ»´ÎÇëÇó£¬ZookeeperÊÇÈçºÎ½øÐд¦ÀíµÄ¡£ ¶þ¡¢ÇëÇó´¦Àí 2.1 »á»°´´½¨ÇëÇó Zookeeper·þÎñ¶Ë¶ÔÓڻỰ´´½¨µÄ´¦Àí£¬´óÌå¿ÉÒÔ·ÖΪÇëÇó½ÓÊÕ¡¢»á»°´´½¨¡¢Ô¤´¦Àí¡¢ÊÂÎñ´¦Àí¡¢ÊÂÎñÓ¦ÓúͻỰÏìÓ¦Áù´ó»·½Ú£¬ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ò»ÆªÒѾÏêϸµÄ½²½âÁËZookeeperµÄLeaderÑ¡¾Ù¹ý³Ì£¬ÏÂÃæ½Ó×ÅѧϰZookeeperÖзþÎñÆ÷µÄ¸÷¸ö½ÇÉ«¼°Æäϸ½Ú¡£ ¶þ¡¢·þÎñÆ÷½ÇÉ« 2.1 Leader Leader·þÎñÆ÷ÊÇZookeeper¼¯Èº¹¤×÷µÄºËÐÄ£¬ÆäÖ÷Òª¹¤×÷ÈçÏ (1) ÊÂÎñÇëÇóµÄΨһµ÷¶ÈºÍ´¦ÀíÕߣ¬±£Ö¤¼¯ÈºÊÂÎñ´¦ÀíµÄ˳Ðò ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæѧϰÁËZookeeper·þÎñ¶ËµÄÏà¹Øϸ½Ú£¬ÆäÖжÔÓÚ¼¯ÈºÆô¶¯¶øÑÔ£¬ºÜÖØÒªµÄÒ»²¿·Ö¾ÍÊÇLeaderÑ¡¾Ù£¬½ÓמͿªÊ¼ÉîÈëѧϰLeaderÑ¡¾Ù¡£ ¶þ¡¢LeaderÑ¡¾Ù 2.1 LeaderÑ¡¾Ù¸ÅÊö LeaderÑ¡¾ÙÊDZ£Ö¤·Ö²¼Ê½Êý¾ÝÒ»ÖÂÐԵĹؼüËùÔÚ¡£µ±Zookeeper¼¯ÈºÖеÄһ̨·þÎñÆ÷³öÏÖÒÔÏ ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°ÃæÒѾÁ˽âÁËZookeeper»á»°Ïà¹Ø֪ʶµã£¬½Ó×ÅÀ´Ñ§Ï°Zookeeper·þÎñ¶ËÏà¹Øϸ½Ú¡£ ¶þ¡¢·þÎñ¶Ë ·þÎñ¶ËÕûÌå¼Ü¹¹ÈçÏ Zookeeper·þÎñÆ÷µÄÆô¶¯£¬´óÖ¿ÉÒÔ·ÖΪÒÔÏÂÎå¸ö²½Öè 1. ÅäÖÃÎļþ½âÎö¡£ 2. ³õʼ»¯Êý¾Ý¹ÜÀíÆ÷¡£ 3. ³õʼ»¯ÍøÂçI/O¹ÜÀíÆ÷¡£ 4. Êý¾Ý»Ö¸´¡£ 5. ¶Ô ÔĶÁÈ«ÎÄ
ͻ񻣼
Ò»¡¢Ç°ÑÔ Ç°Ãæ·ÖÎöÁËZookeeper¿Í»§¶ËµÄϸ½Ú£¬½Ó׿ÌÐøѧϰZookeeperÖеÄÒ»¸ö·Ç³£ÖØÒªµÄ¸ÅÄ»á»°¡£ ¶þ¡¢»á»° ¿Í»§¶ËÓë·þÎñ¶ËÖ®¼äÈκν»»¥²Ù×÷¶¼Óë»á»°Ï¢Ï¢Ïà¹Ø£¬ÈçÁÙʱ½ÚµãµÄÉúÃüÖÜÆÚ¡¢¿Í»§¶ËÇëÇóµÄ˳ÐòÖ´ÐС¢Watcher֪ͨ»úÖƵȡ£ZookeeperµÄÁ¬½ÓÓë»á»°¾ÍÊÇ¿Í»§¶Ëͨ¹ýʵÀý»¯Zook ÔĶÁÈ«ÎÄ