¿ªÔ´Êý¾Ý¿âÍùÍù²»¾ß±¸ÉÌÒµÊý¾Ý¿âÒ»ÑùµÄ¸ß¶ËÄÜÁ¦£¬µ«ÊÇÈ´Òò¼òµ¥Ò×Óã¬ÎÞÐèlicense·ÑÓõÈÉîµÃ´ó¼Òϲ»¶£¬µ«ÔÚÔÆ·þÎñʱ´ú£¬´òÔìÒ»¿îͬʱ¾ß±¸ÁË¿ªÔ´Êý¾Ý¿âµÄÐԼ۱ȺÍÉÌÒµÊý¾Ý¿âµÄ°²È«ÐÔµÄÊý¾Ý¿â£¬¼¸ºõÊÇËùÓÐʹÓÃÕßÐÄÖеÄÃÎÏë¡£ÌÚÑ¶ÔÆÊý¾Ý¿âTDSQL»ùÓÚÕâÑùµÄ¿¼ÂÇ£¬ÊµÏÖÁËÔÆ»¯µÄÉó¼ÆÄÜÁ¦£¬ÏÂÃæ¾ÍÈÃÎÒÃÇÒ»ÆðÀ´¿´¿´¾ßÌåµÄ¼¼Êõϸ½Ú¡£
²úÆ·¼Ü¹¹

¸÷Ä£¿éÌØµã
1) proxy
Èý¸öÎÞ²î±ðproxy Ip£¬±£Ö¤Ò»¸ö»òÕßÁ½¸öproxy ¹ÊÕÏʱ£¬Ê£Óàproxy Ip Õý³£¹¤×÷Óû§ÎÞ¸ÐÖª¡£
ÅÔ·ÐÅÏ¢½øÈëkafkaʱ£¬¶ÔÊý¾Ý½øÐÐѹËõÉÏ´«Í¬Ê±kafka±ØÐë°ëÊý½ÚµãÏìÓ¦³É¹¦ºó²ÅËãÕýÈ·ÉÏ´«¡£
ÿ¸öÓû§ÊµÀý¶¼ÓÐ×Ô¼ºµ¥¶ÀµÄproxy£¬ÔÚÊý¾ÝÉÏ´«ÊDz»Í¬ÊµÀýÏûÏ¢²¢·¢ÉÏ´«µ½kafakµÄtopic,±£Ö¤Ã¿¸öÓû§ÐÅÏ¢¼°Ê±½øÈëÉó¼ÆÏûÏ¢¶ÓÁС£
2) Kafka
KafkaÊÇÒ»ÖÖ·Ö²¼Ê½µÄ£¬»ùÓÚ·¢²¼/¶©ÔĵÄÏûϢϵͳ¡£Ö÷ÒªÉè¼ÆÄ¿±êÈçÏ£º
ÒÔʱ¼ä¸´ÔÓ¶ÈΪO(1)µÄ·½Ê½ÌṩÏûÏ¢³Ö¾Ã»¯ÄÜÁ¦£¬¼´Ê¹¶ÔTB¼¶ÒÔÉÏÊý¾ÝÒ²Äܱ£Ö¤³£Êýʱ¼äµÄ·ÃÎÊÐÔÄÜ
¸ßÍÌÍÂÂÊ¡£¼´Ê¹Ôڷdz£Á®¼ÛµÄÉÌÓûúÆ÷ÉÏÒ²ÄÜ×öµ½µ¥»úÖ§³ÖÿÃë100KÌõÏûÏ¢µÄ´«Êä
Ö§³ÖKafka Server¼äµÄÏûÏ¢·ÖÇø£¬¼°·Ö²¼Ê½Ïû·Ñ£¬Í¬Ê±±£Ö¤Ã¿¸öpartitionÄÚµÄÏûϢ˳Ðò´«Êä
ͬʱ֧³ÖÀëÏßÊý¾Ý´¦ÀíºÍʵʱÊý¾Ý´¦Àí
Kafka½âÎö
Terminology
Broker£ºKafka¼¯Èº°üº¬Ò»¸ö»ò¶à¸ö·þÎñÆ÷£¬ÕâÖÖ·þÎñÆ÷±»³ÆÎªbroker
Topic£ºÃ¿Ìõ·¢²¼µ½Kafka¼¯ÈºµÄÏûÏ¢¶¼ÓÐÒ»¸öÀà±ð£¬Õâ¸öÀà±ð±»³ÆÎªtopic¡££¨ÎïÀíÉϲ»Í¬topicµÄÏûÏ¢·Ö¿ª´æ´¢£¬Âß¼ÉÏÒ»¸ötopicµÄÏûÏ¢ËäÈ»±£´æÓÚÒ»¸ö»ò¶à¸öbrokerÉϵ«Óû§Ö»ÐèÖ¸¶¨ÏûÏ¢µÄtopic¼´¿ÉÉú²ú»òÏû·ÑÊý¾Ý¶ø²»±Ø¹ØÐÄÊý¾Ý´æÓں䦣©
Partition£ºparitionÊÇÎïÀíÉϵĸÅÄÿ¸ötopic°üº¬Ò»¸ö»ò¶à¸öpartition£¬´´½¨topicʱ¿ÉÖ¸¶¨paritionÊýÁ¿¡£Ã¿¸öpartition¶ÔÓ¦ÓÚÒ»¸öÎļþ¼Ð£¬¸ÃÎļþ¼ÐÏ´洢¸ÃpartitionµÄÊý¾ÝºÍË÷ÒýÎļþ
Producer£º¸ºÔð·¢²¼ÏûÏ¢µ½Kafka broker
Consumer£ºÏû·ÑÏûÏ¢¡£Ã¿¸öconsumerÊôÓÚÒ»¸öÌØ¶¨µÄconsumer group£¨¿ÉΪÿ¸öconsumerÖ¸¶¨group
name£¬Èô²»Ö¸¶¨group nameÔòÊôÓÚĬÈϵÄgroup£©¡£Ê¹ÓÃconsumer high
level APIʱ£¬Í¬Ò»topicµÄÒ»ÌõÏûÏ¢Ö»Äܱ»Í¬Ò»¸öconsumer groupÄÚµÄÒ»¸öconsumerÏû·Ñ£¬µ«¶à¸öconsumer
group¿ÉͬʱÏû·ÑÕâÒ»ÏûÏ¢¡£
Kafka¿ò¼Ü
ÈçÉÏͼËùʾ£¬Ò»¸öµäÐ͵Äkafka¼¯ÈºÖаüº¬Èô¸Éproducer£¨¿ÉÒÔÊÇwebǰ¶Ë²úÉúµÄpage
view£¬»òÕßÊÇ·þÎñÆ÷ÈÕÖ¾£¬ÏµÍ³CPU¡¢memoryµÈ£©£¬Èô¸Ébroker£¨KafkaÖ§³ÖˮƽÀ©Õ¹£¬Ò»°ãbrokerÊýÁ¿Ô½¶à£¬¼¯ÈºÍÌÍÂÂÊÔ½¸ß£©£¬Èô¸Éconsumer
group£¬ÒÔ¼°Ò»¸öZookeeper¼¯Èº¡£Kafkaͨ¹ýZookeeper¹ÜÀí¼¯ÈºÅäÖã¬Ñ¡¾Ùleader£¬ÒÔ¼°ÔÚconsumer
group·¢Éú±ä»¯Ê±½øÐÐrebalance¡£producerʹÓÃpushģʽ½«ÏûÏ¢·¢²¼µ½broker£¬consumerʹÓÃpullģʽ´Óbroker¶©ÔIJ¢Ïû·ÑÏûÏ¢¡£
3) audit-server
audit-server ÊÇ·Ö²¼Ê½·þÎñ£¬²ÉÓÃÒ»ÖÂÐÔhashËã·¨½øÐзÓÉ
¶àг̲¢·¢´¦Àíģʽ±£Ö¤kafkaÊý¾ÝÃë¼¶±ðÏû·Ñ
Ò»ÖÂÐÔhash
ÔÚ·Ö²¼Ê½¼¯ÈºÖУ¬¶ÔÓÚ»úÆ÷µÄÌí¼ÓºÍɾ³ýÒѾ¹ÊÕÏ»úÆ÷×Ô¶¯ÍÑÀ뼯Ⱥ²»Ó°Ïì·þÎñÊÇ·Ö²¼Ê½¼¯ÈºµÄ×î»ù±¾µÄ¹¦ÄÜ¡£±¾´ÎÉ󼯷þÎñ²ÉÓÃÒ»ÖÂÐÔhashÍê³ÉÕâÖÖ»ù±¾¹¦ÄÜ¡£
¾ßÌåÃèÊöÈçÏ£º°´ÕÕ³£ÓõÄhashËã·¨À´½«¶ÔÓ¦µÄkey¹þÏ£µ½Ò»¸ö¾ßÓÐ2^32´Î·½¸öͰµÄ¿Õ¼äÖУ¬¼´0~(2^32)-1µÄÊý×Ö¿Õ¼äÖУ¬Ò²¾ÍÊǽ«object1£¬object2,
object3, object4 Ëĸö£¨¼ÙÉèÓÐËĸöʵÀý¶ÔÏó£©ÊµÀý¶ÔÏóͨ¹ýhash É¢Áе½hash»·ÉÏ¡£Èçͼ£¨À´×ÔÓÚÍøÂ磩
ͬʱ½«Èý¸ö·þÎñ½Úµã£¨¼ÙÉèÈý¸ö·þÎñ½Úµã£©£¬Í¨¹ýhashҲɢÁе½hash»·ÉÏ¡£Èçͼ£¨À´×ÔÓÚÍøÂ磩£¬Í¨¹ýÕÒ³ö¾àÀë×Ô¼º×î½üµÄnode½Úµã£¬¼´¿ÉÕÒµ½·þÎñ½Úµã¡£

ÔÚ·þÎñ½ÚµãÌí¼Óɾ³ý»ò¹ÊÕÏʱʵÀý¶ÔÏó¶¼»á×Ô¶¯µÄµ÷ÕûÕÒµ½¾àÀë×Ô¼º×î½üµÄ·þÎñ½Úµã½øÐÐÉ󼯷þÎñ¡£
ͬʱ£¬ÔÚÒýÈëaudit-server·ÓÉʱ£¬ÎÒÃÇ·¢ÏÖnode·þÎñ½Úµã·Ö²¼Ô½¾ùÔÈ£¬Ã¿¸ö·þÎñ½ÚµãµÄ¸ºÔØÒ²¾ÍÔ½¾ùÔÈ¡£ÕâÀïÒýÓÃÁËÐéÄâ½ÚµãÀ´½â¾öÕâÒ»ÎÊÌâ¡£
É󼯲ßÂÔ
¶ÀÁ¢¹æÔò¼ÓÔØÐ³Ì£ºÔÚ¹æÔò¼ÓÔØÊ±£¬²»Ó°ÏìÉ󼯹æÔò¹¦ÄÜÇøÐÔÄÜ
ÓÅÏȼ¶£º²ßÂÔÖ§³ÖÓû§×Ô¶¨ÒåÓÅÏȼ¶£¬ÔÚ²ßÂÔÆ¥Åäʱ£¬ÓÅÏÈÆ¥Åäµ½ÓÅÏȼ¶½Ï¸ßµÄ²ßÂÔ¡£
¹æÔòÉèÖ÷ḻ: Ö§³Ö¹æÔò=, !=£¬>, >=, <, <= ÒÔ¼°ÕýÔòÆ¥Åä¡£
ȨÏÞ£ºÖ§³Ö¶þ´ÎÈÏÖ¤£¬±£Ö¤Êý¾Ý°²È«ÐÔ¡£
¶à²¢·¢Ð³Ì
г̣¬²»ÐèÒªÇÀռʽµ÷¶È£¬¿ÉÒÔÓÐЧÌá¸ßÏ̵߳ÄÈÎÎñ²¢·¢ÐÔ£¬¶ø±ÜÃâ¶àÏ̵߳Äȱµã£¨goÔÉúÖ§³Ö£©
¹ÊÕÏÓÅ»¯
ñîºÏ¹ØÏµ£º±£Ö¤Ò»¸ö×Óϵͳ·¢Éú¹ÊÕÏʱ£¬²»»áÓ°ÏìÆäËûϵͳµÄÕý³£ÔËÐС£
É󼯷þÎñ¹ÊÕÏʱ±£ÕÏÊý¾Ý²»¶ª£ºÏûÏ¢Ïû·Ñʱ»á¶¯Ì¬µÄ¼Ç¼ƥÅäµ½¹æÔòµÄ»òÕß³¬¹ýÒ»¶¨ãÐÖµÏûÏ¢µÄoffset£¬±£Ö¤·þÎñ±»·ÖÅäµ½ÆäËû½Úµã»òÕß¹ÊÕÏ·þÎñÐÞ¸´Æô¶¯Ê±¶¼»á´ÓÕýÈ·µÄλÖÃÏû·ÑÏûÏ¢¡£
Êý¾ÝÅÔ·kafkaÊý¾Ý²»¶ª£ºÔÚÊý¾Ý´«Èëµ½kafkaÊDZØÐë±£Ö¤°ëÊýÒÔÉϵĽڵãÏìÓ¦´ËÏûϢʱ£¬²Å½øÐÐÏÂÃæµÄÊý¾Ý´«Êä¡£
¸æ¾¯¼°Ê±¸ÐÖª£ºkafka »òÕßMongoDB²»¿ÉÓÃʱ»áÃë¼¶±ð¸ÐÖª£¬·¢Ë͸澯ÐÅÏ¢¸øÏµÍ³¸ºÔðÈË£¬¼°Ê±»Ö¸´·þÎñ¡£
×Ô¶¯À©ÈÝ£ºÆ¥Å乿ÔòÏûÏ¢´æ´¢²ÉÓÃÌÚÑ¶ÔÆMongoDB£¬Í¨¹ýºǫ́´òͨ£¬ÔÚ´æ´¢¿Õ¼ä²»¹»Ê±Ö§³Ö×Ô¶¯À©ÈÝ¡£
Êý¾Ý˳ÐòÐÔ£ºÃ¿¸öÏûÏ¢ÔÚÅÔ·ʱ¶¼»á±»´òÉÏÒ»¸öʱ¼ä´ÁͬʱÏûÏ¢Ò²Êǰ´Ë³Ðò½øÈëÏûÏ¢¶ÓÁУ¬ÔÚÊý¾Ý¶Áȡʱ°´ÕÕʱ¼ä´Á˳Ðò¶ÁÈ¡¡£
4) ÌÚÑ¶ÔÆMongoDB

ÌÚÑ¶ÔÆMongoDBÌØµã
Éè¼Æ·þÎñÊý¾Ý´æ´¢²ÉÓã¬ÌÚÑ¶ÔÆ×ÔÓеÄMongoDB·þÎñ£¬¸Ã²úÆ·¾ß±¸ÒÔÏÂÌØµã£º
ÔÆ´æ´¢·þÎñ£¬ÊÇÌÚÑ¶ÔÆÆ½Ì¨ÌṩµÄÃæÏò»¥ÁªÍøÓ¦ÓõÄÊý¾Ý´æ´¢·þÎñ¡£
ÌṩÁ˸ßÐÔÄÜ¡¢¸ß¿É¿¿¡¢Ò×Óᢱã½ÝµÄMongoDB¼¯Èº·þÎñ£¬Ã¿Ò»¸öʵÀý¶¼ÊÇÖÁÉÙÒ»Ö÷Ò»´ÓµÄ¸±±¾¼¯»òÕß°üº¬¶à¸ö¸±±¾¼¯µÄ·ÖƬ¼¯Èº¡£
ÕûºÏÁ˱¸·Ý¡¢À©Èݵȹ¦ÄÜ£¬¾¡¿ÉÄܵı£Ö¤Óû§Êý¾Ý°²È«ÒÔ¼°¶¯Ì¬ÉìËõÄÜÁ¦
µ±È»£¬ÎªÁËÓû§µÄ°²È«¿¼ÂÇ£¬ÎÒÃÇËùÓеÄÊý¾Ý£¬¶¼ÊÇÐèÒªÓû§Ö÷¶¯¿ªÆôÉ󼯵ÄǰÌáÏ£¬²Å»á¼Ç¼Á÷Ë®Êý¾Ý£¬²¢¶ÔÊý¾Ý½øÐйýÂ˺ʹ洢¡£
ʹÓÃÔÆÊý¾Ý¿âMongoDB·þÎñµÄºÃ´¦£º
°²È«£ºÌṩÔÚÏßµÄÖÁÉÙÁ½·ÝÊý¾Ý´æ´¢£¬È·±£ÏßÉÏÊý¾Ý°²È«¡£Í¬Ê±Í¨¹ý±¸·Ý»úÖÆ±£´æ¶àÌìµÄ±¸·ÝÊý¾ÝÒÔ±ãÓÚÔÚÔÖÄÑÇé¿ö½øÐÐÊý¾Ý»Ö¸´¡£
¸ßÐÔÄÜ£º¼¯Öа²×°×¨ÓøßÐÔÄÜ´æ´¢·þÎñÆ÷£¨¸ßÄÚ´æÈ«SSD»úÐÍ£©À´Ö§³Öº£Á¿·ÃÎÊ¡£ Ê¡ÐÄ£ºÌṩ7¡Á24СʱµÄרҵ·þÎñ£¬À©ÈݺÍÇ¨ÒÆ¶ÔÓû§Í¸Ã÷ÇÒ²»Ó°Ïì·þÎñ¡£Ìá¹©È«Ãæ¼à¿Ø£¬¿ÉËæÊ±ÕÆ¿ØMongoDB·þÎñÖÊÁ¿¡£