±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÁË¼à¿ØÏµÍ³
Flink µÄÏÖ×´¡¢ÔªÊý¾ÝÇý¶¯¡¢Flink ×÷ÒµµÄÓÅ»¯ºÍ¼à¿Ø¼°ÊµÀý¡£
±¾ÎÄÀ´×ÔÓÚ Flink ÖÐÎÄÉçÇø£¬ÓÉ»ðÁú¹ûÈí¼þLinda±à¼¡¢ÍƼö¡£ |
|
Sherlock.IO ÊÇ eBay ÏÖÓÐµÄ¼à¿ØÆ½Ì¨£¬Ã¿ÌìÒª´¦ÀíÉϰÙÒÚÌõÈÕÖ¾¡¢Ê¼þºÍÖ¸±ê¡£Flink
Streaming job ʵʱ´¦ÀíϵͳÓÃÓÚ´¦ÀíÆäÖеÄÈÕÖ¾ºÍʼþ¡£±¾ÎĽ«½áºÏ¼à¿ØÏµÍ³ Flink µÄÏÖ×´£¬¾ßÌå½²Êö
Flink ÔÚ¼à¿ØÏµÍ³ÉϵÄʵ¼ùºÍÓ¦Óã¬Ï£Íû¸øÍ¬ÒµÈËԱһЩ½è¼øºÍÆô·¢¡£
Ò». ¼à¿ØÏµÍ³ Flink µÄÏÖ×´
eBay µÄ¼à¿ØÆ½Ì¨ Sherlock.IO ÿÌì´¦Àí×ÅÉϰÙÒÚÌõÈÕÖ¾£¨log£©£¬Ê¼þ£¨event£©ºÍÖ¸±ê£¨metric£©¡£Í¨¹ý¹¹½¨
Flink Streaming job ʵʱ´¦Àíϵͳ£¬¼à¿ØÍŶÓÄܹ»¼°Ê±½«ÈÕÖ¾ºÍʼþµÄ´¦Àí½á¹û·´À¡¸øÓû§¡£µ±Ç°£¬¼à¿ØÍŶÓά»¤×Å
8 ¸ö Flink ¼¯Èº£¬×î´óµÄ¼¯Èº¹æÄ£´ïµ½ÉÏǧ¸ö TaskManager£¬×ܹ²ÔËÐÐ×ÅÉϰٸö×÷Òµ£¨job£©£¬Ò»Ð©×÷ÒµÒѾÎȶ¨ÔËÐÐÁ˰ëÄêÒÔÉÏ¡£
¶þ. ÔªÊý¾ÝÇý¶¯
ΪÁËÈÃÓû§ºÍ¹ÜÀíÔ±Äܹ»¸ü¼Ó¿ì½ÝµØ´´½¨Flink×÷Òµ²¢µ÷Õû²ÎÊý£¬¼à¿ØÍŶÓÔÚ Flink ÉϴÁËÒ»Ì×ÔªÊý¾Ý΢·þÎñ£¨metadata
service£©£¬¸Ã·þÎñÄܹ»ÓÃJsonÀ´ÃèÊöÒ»¸ö×÷ÒµµÄ DAG£¬ÇÒÏàͬµÄ DAG ¹²ÓÃͬһ¸ö×÷Òµ£¬Äܹ»¸ü¼Ó·½±ãµØ´´½¨×÷Òµ£¬ÎÞÐèµ÷ÓÃ
Flink API¡£Sherlock.IO Á÷´¦ÀíÕûÌåµÄ¼Ü¹¹Èçͼ1Ëùʾ¡£

ͼ1 Sherlock.IO Á÷´¦ÀíÕûÌå¼Ü¹¹
Ŀǰ£¬ÓÃÕâÌ×ÔªÊý¾Ý΢·þÎñ´´½¨µÄ×÷Òµ½öÖ§³ÖÒÔ Kafka ×÷ΪÊý¾ÝÔ´£¬Ö»ÒªÊý¾Ý½ÓÈëµ½ Kafka£¬Óû§¾Í¿ÉÒÔ¶¨Òå
Capability À´´¦ÀíÂß¼´Ó¶øÍ¨¹ý Flink Streaming ´¦ÀíÊý¾Ý¡£
1.ÔªÊý¾Ý΢·þÎñ
ÔªÊý¾Ý΢·þÎñ¿ò¼ÜÈçͼ 2 Ëùʾ£¬×îÉϲãÊÇÔªÊý¾Ý΢·þÎñÌṩµÄ Restful API, Óû§Í¨¹ýµ÷ÓÃ
API À´ÃèÊöºÍÌá½»×÷Òµ¡£ÃèÊö×÷ÒµµÄÔª¾Ý°üº¬Èý¸ö²¿·Ö£ºResource£¬Capability ºÍ
Policy¡£Flink ÊÊÅäÆ÷£¨Adaptor£©Á¬½ÓÁË Flink Streaming API ºÍÔªÊý¾Ý΢·þÎñ
API£¬ÇÒ»á¸ù¾ÝÔªÊý¾Ý΢·þÎñÃèÊöµÄ×÷Òµµ÷Óà Flink Streaming API À´´´½¨×÷Òµ£¬´Ó¶øÆÁ±Î
Flink StreamAPI¡£
Òò´Ë£¬Óû§²»ÓÃÁ˽â Flink Streaming API ¾Í¿ÉÒÔ´´½¨ Flink ×÷Òµ¡£Î´À´Èç¹ûÐèÒªÇ¨ÒÆµ½ÆäËûµÄÁ÷´¦Àí¿ò¼Ü£¬Ö»ÒªÔö¼ÓÒ»¸öÊÊÅäÆ÷£¬¾Í¿ÉÒÔ½«ÏÖÓеÄ×÷ÒµÇ¨ÒÆµ½ÐµÄÁ÷´¦Àí¿ò¼ÜÉÏ¡£

ͼ2 ÔªÊý¾Ý΢·þÎñ¿ò¼Ü
Capability
Capability ¶¨ÒåÁË×÷ÒµµÄ DAG ÒÔ¼°Ã¿¸öËã×Ó£¨Operator£©ËùÓÃµÄ Class£¬Í¼
3 ÊÇʼþ´¦Àí(eventProcess) Capability£¬Ëü×îÖÕ»áÉú³ÉÈçͼ 4 µÄ DAG¡£Ê¼þ´¦Àí
Capability ÏÈ´Ó Kafka ¶Á³öÊý¾Ý£¬ÔÙдµ½ Elasticsearch ÖС£¸Ã Capability
½«¸Ã×÷ÒµÃüÃûΪ¡°eventProcess¡±£¬²¢¶¨ÒåÆä²¢ÐжÈΪ¡°5¡±£¬ÆäËã×ÓΪ¡°EventEsIndexSinkCapability¡±£¬
ÆäÊý¾ÝÁ÷Ϊ¡°Source ¨C> sink¡±¡£

ͼ3 eventESSink Capability

ͼ4 Éú³ÉµÄFlink×÷Òµ
Policy
ÿ¸öÃüÃû¿Õ¼ä£¨Namespace£©ÐèÒª¶¨ÒåÒ»¸ö»ò¶à¸ö Policy£¬Ã¿¸ö Policy Ö¸¶¨ÁËÏàÓ¦µÄ
Capability£¬¼´Ö¸¶¨ÁËÓÃÄÄÒ»Ì× DAG À´ÔËÐÐÕâ¸ö Policy¡£Policy »¹¶¨ÒåÁËÕâ¸ö×÷ÒµµÄÏà¹ØÅäÖã¬ÀýÈç´ÓÄĸö
Kafka topic ÖжÁÈ¡Êý¾Ý£¬Ð´µ½ ElasticSearch µÄÄĸöË÷Òý£¨Index£©ÖУ¬ÖмäÊÇ·ñÒªÌø¹ýijЩËã×ӵȵȡ£
Æä´Î£¬Policy »¹ÄÜ×÷Ϊһ¸ö¼òÒ׵ĹýÂËÆ÷£¨Filter£©£¬¿ÉÒÔͨ¹ýÅäÖà Jexl ±í´ïʽ¹ýÂ˵ôһЩ²»ÐèÒªµÄÊý¾Ý£¬Ìá¸ß×÷ÒµµÄÍÌÍÂÁ¿¡£
ÁíÍ⣬ÎÒÃÇ»¹ÊµÏÖÁË Zookeeper ¶¨Ê±¸üеĻúÖÆ£¬Ê¹µÃ Policy Ð޸ĺó²»ÔÙÐèÒªÖØÆô×÷Òµ£¬Ö»ÒªÊÇÔÚ¸üÐÂʱ¼ä¼ä¸ôÄÚ£¬¸ÃÃüÃû¿Õ¼äµÄ
Policy Ð޸ľͻᱻ×Ô¶¯Ó¦Óõ½×÷ÒµÉÏ¡£Í¼ 5 ÊÇÃüÃû¿Õ¼äΪ paas µÄ Policy ʾÀý¡£

ͼ5 paas alertESSink Policy
Resource
Resource ¶¨ÒåÁËij¸öÃüÃû¿Õ¼äËùÐèÒªµÄ×ÊÔ´£¬±ÈÈç Flink ¼¯Èº£¬ Kafka broker£¬ES
¼¯ÈºµÈµÈ¡£ÎÒÃÇÓжà¸ö Flink ¼¯ÈººÍ ES ¼¯Èº£¬Í¨¹ý Resource ÅäÖã¬×÷Òµ¿ÉÒÔÖªµÀij¸öÃüÃû¿Õ¼äµÄÈÕÖ¾Ó¦¸Ãдµ½Äĸö
ES ¼¯Èº£¬²¢¿ÉÒÔÅжϸÃÃüÃû¿Õ¼äµÄÊý¾ÝÓ¦¸Ã´ÓÄĸö Kafka ¼¯Èº¶ÁÈ¡¡£
2.¹²Ïí×÷Òµ
ΪÁ˼õÉÙ×÷ÒµÊýÁ¿£¬ÎÒÃÇ¿ÉÒÔÈÃÏàͬµÄ DAG ¸´ÓÃͬһ¸ö×÷Òµ¡£ÎÒÃÇÏȸø²»Í¬µÄ Policy Ö¸¶¨ÏàͬµÄ
Capability£¬Ôڸà Capability ×ÊÔ´×ã¹»µÄÇé¿öÏ£¬ÕâЩ Policy ¾Í»á±»µ÷¶Èµ½Í¬Ò»¸ö×÷ÒµÉÏ¡£
ÒÔ SQL µÄ Capability ΪÀý£¬Ã¿¸ö Policy µÄ SQL Óï¾ä²»¾¡Ïàͬ£¬Èç¹ûΪÿ¸ö
Policy ¶¼´´½¨Ò»¸ö×÷Òµ£¬ Job Manager µÄ¿ªÏú¾Í»áºÜ´ó£¬ÇÒ²»ºÃ¹ÜÀí¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔΪ
SQL Capability ÅäÖà 20 ¸ö Slot£¬Ã¿¸ö Policy Õ¼ÓÃÒ»¸ö Slot¡£ÄÇô¸Ã
Capability Éú³ÉµÄ×÷Òµ¾Í¿ÉÒÔÔËÐÐ 20 ¸ö Policy¡£
×÷ÒµÔËÐÐʱ£¬´Ó Source ¶Á½øÀ´µÄÊý¾Ý»á±»´òÉÏÏàÓ¦ Policy µÄ±êÇ©£¬²¢Ö´Ðиà Policy
¶¨ÒåµÄ SQL Óï¾ä£¬´Ó¶øÊµÏÖ²»Í¬ Policy ¹²Ïíͬһ¸ö×÷Òµ£¬´ó´ó¼õÉÙÁË×÷ÒµµÄÊýÁ¿¡£
Óù²Ïí×÷Òµ»¹ÓÐÒ»¸öºÃ´¦£ºÈç¹û¶à¸öÃüÃû¿Õ¼äµÄÊý¾ÝÔÚÒ»¸ö Kafka topic ÀÄÇôֻҪ¶ÁÒ»±éÊý¾Ý¼´¿É£¬²»ÓÃÿ¸öÃüÃû¿Õ¼ä¶¼¶ÁÒ»´Î
topic ÔÙ¹ýÂË£¬ÕâÑù¾Í´ó´óÌá¸ßÁË´¦ÀíµÄЧÂÊ¡£
Èý. Flink ×÷ÒµµÄÓÅ»¯ºÍ¼à¿Ø
Á˽âÔªÊý¾ÝÇý¶¯ºó£¬ÈÃÎÒÃÇÀ´¿´¿´¿ÉÒÔͨ¹ýÄÄЩ·½·¨ÊµÏÖ Flink ×÷ÒµµÄ¶øÓÅ»¯ºÍ¼à¿Ø¡£
1.Heartbeat
ÔÚ Flink ¼¯ÈºµÄÔËά¹ý³ÌÖУ¬ÎÒÃǺÜÄÑ¼à¿Ø×÷ÒµµÄÔËÐÐÇé¿ö¡£¼´Ê¹¿ªÆôÁ˼ì²éµã£¨checkpoint£©£¬ÎÒÃÇÒ²ÎÞ·¨È·¶¨ÊÇ·ñ¶ªÊ§Êý¾Ý»ò¶ªÊ§Á˶àÉÙÊý¾Ý¡£Òò´Ë£¬ÎÒÃÇΪÿ¸ö×÷Òµ×¢ÈëÁË
Heartbeat ÒÔ¼à¿ØÆäÔËÐÐÇé¿ö¡£
Heartbeat ¾ÍÏñ Flink ÖÐÓÃÀ´¼à¿ØÑӳٵġ°LatencyMarker¡±Ò»Ñù£¬Ëü»áÁ÷¹ýÿ¸ö×÷ÒµµÄ¹ÜµÀ¡£µ«Óë
LatencyMarker ²»Í¬µÄÊÇ£¬µ± Heartbeat Óöµ½ DAG µÄ·Ö֧ʱ£¬Ëü»á·ÖÁѲ¢Á÷Ïòÿ¸ö·ÖÖ§£¬¶ø²»Ïñ
LatencyMarker ÄÇÑùËæ»úÁ÷Ïòijһ¸ö·ÖÖ§¡£ÁíÒ»¸ö²»Í¬µãÔÚÓÚ Heartbeat ²»ÊÇÓÉ Flink
×ÔÉí²úÉú£¬¶øÊÇÓÉÔªÊý¾Ý΢·þÎñ¶¨Ê±²úÉú£¬¶øºóÓÉÿ¸ö×÷ÒµÏû·Ñ¡£
Èçͼ 4 Ëùʾ£¬Ã¿¸ö×÷ÒµÔÚÆô¶¯µÄʱºò»áĬÈϼÓÒ»¸ö Heartbeat µÄÊý¾ÝÔ´¡£Heartbeat
Á÷Èëÿ¸ö×÷Òµºó£¬»áËæÊý¾ÝÁ÷Ò»Æð¾¹ýÿ¸ö½Úµã£¬ÔÚÿ¸ö½ÚµãÉÏ´òÉϵ±Ç°½ÚµãµÄ±êÇ©£¬È»ºóÌø¹ý¸Ã½ÚµãµÄ´¦ÀíÂß¼Á÷Ïòϸö½Úµã¡£Ö±µ½
Heartbeat Á÷µ½×îºóÒ»¸ö½Úµãʱ£¬Ëü»áÒÔÖ¸±ê£¨Metric£©µÄÐÎʽ·¢Ë͵½ Sherlock.IO£¨eBay
¼à¿ØÆ½Ì¨£©¡£
¸ÃÖ¸±ê°üº¬ÁË Heartbeat ²úÉúµÄʱ¼ä£¬Á÷Èë×÷ÒµµÄʱ¼äÒÔ¼°µ½´ïÿ¸ö½ÚµãµÄʱ¼ä¡£Í¨¹ýÕâ¸öÖ¸±ê£¬ÎÒÃÇ¿ÉÒÔÅжϸÃ×÷ÒµÔÚ¶ÁÈ¡
kafka ʱÊÇ·ñÑÓʱ£¬ÒÔ¼°Ò»ÌõÊý¾Ý±»Õû¸ö¹ÜµÀ´¦ÀíËùÓõÄʱ¼äºÍÿ¸ö½Úµã´¦ÀíÊý¾ÝËùÓõÄʱ¼ä£¬½ø¶øÅжϸÃ×÷ÒµµÄÐÔÄÜÆ¿¾±¡£
ÓÉÓÚ Heartbeat ÊǶ¨Ê±·¢Ë͵ģ¬Òò´Ëÿ¸ö×÷ÒµÊÕµ½µÄ Heartbeat ¸öÊýÓ¦¸ÃÒ»Ö¡£Èô×îºó·¢³öµÄÖ¸±ê¸öÊýÓëÆÚÍû²»Ò»Ö£¬Ôò¿ÉÒÔ½øÒ»²½ÅжÏÊÇ·ñÓÐÊý¾Ý¶ªÊ§¡£
ͼ 6 ÃèÊöÁËij Flink ×÷ÒµÖеÄÊý¾ÝÁ÷ÒÔ¼° Heartbeat µÄÔËÐÐ״̬:

ͼ6 HeartbeatÔÚ×÷ÒµÖеÄÔËÐйý³Ì
2.¿ÉÓÃÐÔ
ÓÐÁË Heartbeat£¬ÎÒÃǾͿÉÒÔÀ´¶¨Ò弯ȺµÄ¿ÉÓÃÐÔ¡£Ê×ÏÈ£¬ÎÒÃÇÐèÒªÏȶ¨ÒåÔÚʲôÇé¿öÏÂÊôÓÚ²»¿ÉÓõģº
Flink ×÷ÒµÖØÆô
µ±ÄÚ´æ²»×㣨OutofMemory£©»ò´úÂëÔËÐдíÎóʱ£¬×÷Òµ¾Í¿ÉÄÜ»áÒâÍâÖØÆô¡£ÎÒÃÇÈÏÎªÖØÆô¹ý³ÌÖÐÔì³ÉµÄÊý¾Ý¶ªÊ§ÊDz»¿ÉÓõÄÇé¿öÖ®Ò»¡£Òò´ËÎÒÃǵÄÄ¿±êÖ®Ò»ÊÇÈÃ
Flink ×÷ÒµÄܹ»³¤Ê±¼äÎȶ¨ÔËÐС£
Flink ×÷ÒµÖÐÖ¹
ÓÐʱÒòΪ»ù´¡ÉèÊ©µÄÎÊÌâµ¼ÖÂÎïÀí»ú»òÕßÈÝÆ÷ûÆô¶¯ÆðÀ´£¬»òÊÇÔÚ Flink ×÷Òµ·¢ÉúÖØÆôʱÓÉÓÚ Slot
²»¹»¶øÎÞ·¨Æô¶¯£¬»òÕßÊÇÒòΪ Flink ×÷ÒµµÄÖØÆô´ÎÊýÒѾ³¬¹ýÁË×î´óÖØÆô´ÎÊý(rest.retry.max-attempts),
Flink ×÷Òµ¾Í»áÖÐÖ¹¡£´ËʱÐèÒªÈ˹¤¸ÉÔ¤²ÅÄܽ«×÷ÒµÖØÐÂÆô¶¯ÆðÀ´¡£
ÎÒÃÇÈÏΪ Flink ×÷ÒµÖÐֹʱ£¬Ò²ÊDz»¿ÉÓõÄÇé¿öÖ®Ò»¡£
Flink ×÷ÒµÔÚÔËÐÐÖв»ÔÙ´¦ÀíÊý¾Ý
·¢ÉúÕâÖÖÇé¿ö£¬Ò»°ãÊÇÒòΪÓöµ½ÁË·´Ñ¹£¨BackPressure£©¡£Ôì³É·´Ñ¹µÄÔÒòÓкܶàÖÖ£¬±ÈÈçÉÏÓεÄÁ÷Á¿¹ý´ó£¬»òÕßÊÇÖмäij¸öËã×ӵĴ¦ÀíÄÜÁ¦²»¹»£¬»òÕßÊÇÏÂÓδ洢½ÚµãÓöµ½ÐÔÄÜÆ¿¾±µÈµÈ¡£ËäÈ»¶Ìʱ¼äÄڵķ´Ñ¹²»»áÔì³ÉÊý¾Ý¶ªÊ§£¬µ«Ëü»áÓ°ÏìÊý¾ÝµÄʵʱÐÔ£¬×îÃ÷ÏԵı仯ÊÇÑÓ³ÙÕâ¸öÖ¸±ê»á±ä´ó¡£
ÎÒÃÇÈÏΪ·´Ñ¹·¢ÉúʱÊDz»¿ÉÓõÄÇé¿öÖ®Ò»¡£
Õë¶ÔÒÔÉÏÈýÖÖÇé¿ö£¬ÎÒÃǶ¼¿ÉÒÔÓà Heartbeat À´¼à¿Ø£¬²¢¼ÆËã¿ÉÓÃÐÔ¡£±ÈÈçµÚÒ»ÖÖÇé¿ö£¬Èç¹û×÷ÒµÖØÆôʱ·¢ÉúÁËÊý¾Ý¶ªÊ§£¬ÄÇôÏàÓ¦µÄÄǶιܵÀµÄ
Heartbeat Ò²»á¶ªÊ§£¬´Ó¶øÎÒÃÇ¿ÉÒÔ¼à²â³öÊÇ·ñÓÐÊý¾Ý¶ªÊ§ÒÔ¼°´ÖÁ£¶ÈµØ¹ÀËãÊý¾Ý¶ªÁ˶àÉÙ¡£¶ÔÓÚµÚ¶þÖÖÇé¿ö£¬µ±×÷ÒµÖÐֹʱ£¬HeartBeat
Ò²²»»á±»´¦Àí£¬Òò´Ë¿ÉÒԺܿ췢ÏÖ×÷ҵֹͣÔËÐв¢Èà on-call ¼°Ê±¸ÉÔ¤¡£µÚÈýÖÖÇé¿öµ±·´Ñ¹·¢Éúʱ£¬HeartBeat
Ò²»á±»×èÈûÔÚ·¢Éú·´Ñ¹µÄÉÏÓΣ¬Òò´Ë on-call Ò²¿ÉÒÔºÜ¿ìµØ·¢ÏÖ·´Ñ¹·¢Éú²¢½øÐÐÈ˹¤¸ÉÔ¤¡£
×ÛÉÏ£¬Heartbeat ¿ÉÒԺܿì¼à²â³ö Flink ×÷ÒµµÄÔËÐÐÇé¿ö¡£ÄÇô£¬ÈçºÎÆÀ¹À¿ÉÓÃÐÔÄØ£¿ÓÉÓÚ
Heartbeat ÊǶ¨Ê±·¢ÉúµÄ£¬Ä¬ÈÏÇé¿öÏÂÎÒÃÇÉèÖÃÿ 10 Ãë·¢Ò»´Î¡£1 ·ÖÖÓÄÚÎÒÃÇÆÚÍûÿ¸ö×÷ÒµµÄÿÌõ¹ÜµÀÄܹ»·¢³ö
6 ¸ö´øÓÐ×÷ÒµÐÅÏ¢µÄ heartbeat£¬ÄÇôÿÌì¾Í¿ÉÒÔÊÕµ½ 8640 ¸ö Heartbeat¡£
Òò´Ë£¬Ò»¸ö×÷ÒµµÄ¿ÉÓÃÐÔ¿ÉÒÔ¶¨ÒåΪ£º

3.Flink ×÷Òµ¸ôÀë
Slot ÊÇ Flink ÔËÐÐ×÷ÒµµÄ×îСµ¥Î»[1]£¬Ã¿¸ö TaskManager ¿ÉÒÔ·ÖÅäÒ»¸öÖÁ¶à¸ö
Slot£¨Ò»°ã·ÖÅäµÄ¸öÊýΪ¸Ã TaskManager µÄ CPU Êý£©¡£¸ù¾Ý Flink ×÷ÒµµÄ²¢Ðжȣ¬Ò»¸ö×÷Òµ¿ÉÒÔ·ÖÅäµ½¶à¸ö
TaskManager ÉÏ£¬¶øÒ»¸ö TaskManager Ò²¿ÉÄÜÔËÐÐ×Ŷà¸ö×÷Òµ¡£È»¶ø£¬Ò»¸ö TaskManager
¾ÍÊÇÒ»¸ö JVM£¬µ±¶à¸ö×÷Òµ·ÖÅäµ½Ò»¸ö TaskManager ÉÏʱ£¬¾Í»áÓÐÇÀ¶á×ÊÔ´µÄÇé¿ö·¢Éú¡£
ÀýÈ磬ÎÒÒ»¸ö TaskManager ·ÖÅäÁË 3 ¸ö Slot£¨3 ¸ö CPU£©ºÍ 8G ¶ÑÄÚ´æ¡£µ±
JobManager µ÷¶È×÷ÒµµÄʱºò£¬ÓпÉÄܽ« 3 ¸ö²»Í¬×÷ÒµµÄÏ̵߳÷¶Èµ½¸Ã TaskManager
ÉÏ£¬ÄÇôÕâ 3 ¸ö×÷Òµ¾Í»áͬʱÇÀ¶á CPU ºÍÄÚ´æµÄ×ÊÔ´¡£µ±ÆäÖÐÒ»¸ö×÷ÒµÌØ±ðºÄ CPU »òÄÚ´æµÄʱºò£¬¾Í»áÓ°ÏìÆäËûÁ½¸ö×÷Òµ¡£
ÔÚÕâÖÖÇé¿öÏ£¬ÎÒÃÇͨ¹ýÅäÖà Flink ¿ÉÒÔʵÏÖ×÷ÒµµÄ¸ôÀ룬Èçͼ 7 Ëùʾ:

ͼ7 Flink ×÷Òµ¸ôÀëǰºóµÄµ÷¶Èͼ
ͨ¹ýÅäÖãº
¡°taskmanager.numberOfTaskSlots: 1¡±:¿ÉÒÔÉèÖÃÿ¸öTaskManagerÖ»ÓÐÒ»¸öSlot;
¡°cpu_period¡±ºÍ¡°cpu_quota¡±:¿ÉÒÔÏÞ¶¨Ã¿¸öTaskManagerµÄCPU¸öÊý
¡°taskmanager.heap.mb¡±¿ÉÒÔÅäÖÃÿ¸öTaskManagerµÄJVMµÄÄÚ´æ´óС¡£
ͨ¹ýÒÔÉÏÅäÖ㬿ÉÒÔÏÞ¶¨Ã¿¸ö TaskManager ¶ÀÕ¼ CPU ºÍÄÚ´æµÄ×ÊÔ´£¬ÇÒ²»»á¶à¸ö×÷ÒµÇÀÕ¼£¬ÊµÏÖ×÷ÒµÖ®¼äµÄ¸ôÀë¡£
4.·´Ñ¹
ÎÒÃÇÔËά Flink ¼¯ÈºµÄʱºò·¢ÏÖ£¬³öÏÖ×î¶àµÄÎÊÌâ¾ÍÊÇ·´Ñ¹¡£ÔÚ 3.2 ÖÐÌáµ½¹ý£¬·¢Éú·´Ñ¹µÄÔÒòÓкܶàÖÖ£¬µ«ÎÞÂÛʲôÔÒò£¬Êý¾Ý×îÖÕ¶¼»á±»»ýѹÔÚ·¢Éú·´Ñ¹ÉÏÓεÄËã×ӵı¾µØ»º³åÇø£¨localBuffer£©ÖС£
ÎÒÃÇÖªµÀ£¬Ã¿Ò»¸ö TaskManager ÓÐÒ»¸ö±¾µØ»º³å³Ø, ÿһ¸öËã×ÓÊý¾Ý½øÀ´ºó»á°ÑÊý¾ÝÌî³äµ½±¾µØ»º³å³ØÖУ¬Êý¾Ý´ÓÕâ¸öËã×Ó³öÈ¥ºó»á»ØÊÕÕâ¿éÄÚ´æ¡£µ±±»·´Ñ¹ºó£¬Êý¾Ý·¢²»³öÈ¥£¬±¾µØ»º³å³ØÄÚ´æ¾ÍÎÞ·¨ÊÍ·Å£¬µ¼ÖÂÒ»Ö±ÇëÇ󻺳åÇø£¨requestBuffer£©¡£
ÓÉÓÚ Heartbeat Ö»ÄÜ¼à¿Ø³öÊÇ·ñ·¢ÉúÁË·´Ñ¹£¬µ«ÎÞ·¨¶¨Î»µ½ÊÇÄĸöËã×Ó³öÁËÎÊÌ⣬Òò´ËÎÒÃǶ¨Ê±µØ½«Ã¿¸öËã×ÓµÄ
StackTrace ´òÓ¡³öÀ´£¬µ±·¢Éú·´Ñ¹Ê±£¬Í¨¹ý StackTrace ¾Í¿ÉÒÔÖªµÀÊÇÄĸöËã×ӵį¿¾±¡£
Èçͼ8Ëùʾ£¬ÎÒÃÇ¿ÉÒÔÇåÎúµØ¿´µ½·¢Éú·´Ñ¹µÄ Flink ×÷Òµ¼°ÆäËùÔÚµÄ Taskmanager¡£ÔÙͨ¹ý
Thread Dump£¬ÎÒÃǾͿÉÒÔ¶¨Î»µ½´úÂëµÄÎÊÌâ¡£

ͼ8 ·¢Éú·´Ñ¹µÄStackTrace
5.ÆäËû¼à¿ØÊÖ¶Î
Flink ±¾ÉíÌṩÁ˺ܶàÓÐÓõÄÖ¸±ê[2]À´¼à¿Ø Flink ×÷ÒµµÄÔËÐÐÇé¿ö£¬ÔÚ´Ë»ù´¡ÉÏÎÒÃÇ»¹¼ÓÁËһЩҵÎñÉϵÄÖ¸±ê¡£³ý´ËÖ®Í⣬ÎÒÃÇ»¹Ê¹ÓÃÁËÒÔϹ¤¾ß¼à¿Ø
Flink ×÷Òµ¡£
History server
Flink µÄ History server[3]¿ÉÒÔ²éѯÒÑÍê³É×÷ÒµµÄ״̬ºÍÖ¸±ê¡£±ÈÈçÒ»¸ö×÷ÒµµÄÖØÆô´ÎÊý¡¢ËüÔËÐеÄʱ¼ä¡£ÎÒÃdz£³£ÓÃËüÕÒ³öÔËÐв»Õý³£µÄ×÷Òµ¡£±ÈÈ磬ÎÒÃÇ¿ÉÒÔͨ¹ý
History server µÄ attempt Ö¸±êÖªµÀÿ¸ö×÷ÒµÖØÆôµÄ´ÎÊý£¬´Ó¶ø¿ìËÙÈ¥ÏÖ³¡ÕÒµ½ÖØÆôµÄÔÒò£¬±ÜÃâÏ´ÎÔÙ·¢Éú¡£
¼à¿Ø×÷ÒµºÍ¼¯Èº
ËäÈ» Flink ÓÐ HA µÄģʽ£¬µ«ÔÚ¼«¶ËÇé¿öÏ£¬ÀýÈçÕû¸ö¼¯Èº³öÏÖÎÊÌâʱ£¬ÐèÒª on-call
¼´Ê±·¢¾õ²¢È˹¤¸ÉÔ¤¡£ÎÒÃÇÔÚÔªÊý¾Ý΢·þÎñÖб£´æÁË×îºóÒ»´ÎÌá½»×÷Òµ³É¹¦µÄÔªÊý¾Ý£¬Ëü¼Ç¼ÁËÔÚÿ¸ö Flink
¼¯ÈºÉÏÓ¦¸ÃÔËÐÐÄÄЩ×÷Òµ¡£ÊØ»¤Ị̈߳¨Daemon thread£©»áÿ·ÖÖÓÈ¥±È½ÏÕâ¸öÔªÊý¾ÝºÍ Flink
ÉÏÔËÐеÄ×÷Òµ£¬Èô·¢ÏÖ JobManager Á¬²»Í¨»òÕßÓÐ×÷ÒµÔËÐв»Ò»ÖÂÔòÁ¢¿Ì·¢³ö¸æ¾¯£¨Alert£©Í¨Öª
on-call¡£
ËÄ. ʵÀý
ÏÂÃæ½éÉܼ¸¸öÒѾÔËÐÐÔÚ¼à¿ØÏµÍ³É쵀 Flink Á÷´¦ÀíϵͳµÄÓ¦Óãº
1.Event Alerting
µ±Ç°¼à¿ØÍŶÓÊÇ»ùÓÚ Flink Streaming ×öʼþ¸æ¾¯£¨Event alerting£©£¬ÎÒÃǶ¨ÒåÁËÒ»¸ö¸æ¾¯Ëã×Ó
EventAlertingCapability£¬¸Ã Capability ¿ÉÒÔ´¦Àíÿ¸ö Policy
×Ô¶¨ÒåµÄ¹æÔò¡£Èçͼ 9 ¶¨ÒåµÄÒ»ÌõÐÔÄÜ¼à¿Ø¹æÔò£º
¸Ã¹æÔòµÄº¬ÒåÊǵ±ÐÔÄܼì²âÆ÷µÄÓ¦ÓÃΪ¡°r1rover¡±, Ö÷»úÒÔ¡°r1rover¡±¿ªÍ·£¬ÇÒÊýÖµ´óÓÚ 90
ʱ£¬¾Í´¥·¢¸æ¾¯¡£ÇÒÉú³ÉµÄ¸æ¾¯»á·¢Ë͵½Ö¸¶¨µÄ Kafka topic Öй©ÏÂÓμÌÐø´¦Àí¡£

ͼ9 Single-Threshold1 Policy
2.Eventzon
Eventzon ¾ÍÏñ eBay µÄʼþÖÐÐÄ£¬ËüÊÕ¼¯ÁË´Ó¸÷¸öÓ¦Ó㬿ò¼Ü£¬»ù´¡¼Ü¹¹·¢¹ýÀ´µÄʼþ£¬×îºóͨ¹ý¼à¿ØÍŶӵÄ
Flink Streaming ʵʱÉú³É¸æ¾¯¡£ÓÉÓÚ¸÷¸öʼþµÄÊý¾ÝÔ´²»Í¬£¬ËüÃǵÄÔªÊý¾ÝÒ²²»Í¬£¬Òò´ËÎÞ·¨ÓÃÒ»ÌõͳһµÄ¹æÔòÀ´ÃèÊöËü¡£
ÎÒÃÇרÃŶ¨ÒåÁËÒ»Ì××÷ÒµÀ´´¦Àí Eventzon µÄʼþ£¬Ëü°üº¬Á˶à¸ö Capability£¬±ÈÈç
Filter Capability£¬ÓÃÀ´¹ýÂË·Ç·¨µÄ»òÕß²»·ûºÏÌõ¼þµÄʼþ; ÓÖ±ÈÈç Deduplicate
Capability£¬¿ÉÒÔÓÃÀ´È¥³ýÖØ¸´µÄʼþ¡£Eventzon µÄËùÓÐʼþ¾¹ýÒ»ÕûÌ××÷Òµºó£¬»áÉú³ÉÓÐЧµÄ¸æ¾¯£¬²¢¸ù¾Ý֪ͨ»úÖÆÍ¨¹ý
E-mail¡¢Slack »ò Pagerduty ·¢¸øÏà¹ØÍŶӡ£
3.Netmon
Netmon µÄÈ«³ÆÎª Network Monitoring, ¼´ÍøÂç¼à¿Ø£¬Ëü¿ÉÒÔÓÃÀ´¼à¿ØÕû¸ö eBay
ÍøÂçÉ豸µÄ½¡¿µ×´Ì¬¡£ËüµÄÊý¾ÝÔ´À´×Ô eBay µÄ½»»»»ú£¬Â·ÓÉÆ÷µÈÍøÂçÉ豸µÄÈÕÖ¾¡£Netmon µÄ×÷ÓÃÊǸù¾ÝÕâЩÈÕÖ¾ÕÒ³öÒ»Ð©ÌØ¶¨µÄÐÅÏ¢£¬ÍùÍùÊÇһЩ´íÎóµÄÈÕÖ¾£¬ÒÔ´ËÀ´Éú³É¸æ¾¯¡£
eBay µÄÿһ̨É豸¶¼Òª¡°µÇ¼ÇÔì²á¡±£¬Ã¿Ì¨É豸½«ÈÕÖ¾·¢¹ýÀ´ºó£¬ÎÒÃÇͨ¹ý EnrichCapability
´Ó¡°²á×Ó¡±ÖвéѯÕą̂É豸µÄÐÅÏ¢£¬²¢°ÑÏà¹ØÐÅÏ¢±ÈÈç IP µØÖ·£¬ËùÔÚµÄÊý¾ÝÖÐÐÄ£¬ËùÔڵĻú¼ÜµÈÌî³äµ½ÈÕÖ¾ÐÅÏ¢ÖÐ×÷Ϊʼþ±£´æ¡£µ±É豸²úÉúÒ»Ð©ÌØ¶¨µÄ´íÎóÈÕ־ʱ,
Ëü»á±»ÏàÓ¦µÄ¹æÔòÆ¥ÅäÈ»ºóÉú³É¸æ¾¯£¬¸Ã¸æ¾¯»á±» EventProcess Capability ±£´æµ½
Elasticsearch ÖÐʵʱÏÔʾµ½ Netmon µÄ¼à¿ØÆ½Ì¨£¨dashboard£©ÉÏ¡£ÓÐʱÒòÎªÍøÂç¶¶¶¯µ¼ÖÂһЩ¶ÌÔݵĴíÎó·¢Éú£¬µ«ÏµÍ³¹ýÒ»»á¶ù¾Í»á×Ô¶¯»Ö¸´¡£
µ±ÉÏÊöÇé¿ö·¢Éúʱ£¬Netmon »áÓÐÏàÓ¦µÄ¹æÔò½«·¢ÉúÔÚÍøÂç¶¶¶¯Ê±Éú³ÉµÄ¸æ¾¯±ê¼ÇΪ¡°Òѽâ¾ö¡±£¨Resolved£©¡£¶ÔÓÚһЩ±ØÐëÈ˹¤¸ÉÔ¤µÄ¸æ¾¯£¬ÔËάÈËÔ±¿ÉÒÔͨ¹ýÍøÂç¼à¿ØÆ½Ì¨£¨Netmon
dashboard£©ÊÖ¶¯µã»÷¡°Òѽâ¾ö¡±£¬Íê³É¸Ã¸æ¾¯µÄÉúÃüÖÜÆÚ¡£
Îå. ×ܽáÓëÕ¹Íû
eBay µÄ¼à¿ØÍŶÓÏ£ÍûÄܸù¾ÝÓû§ÌṩµÄÖ¸±ê¡¢Ê¼þºÍÈÕÖ¾ÒÔ¼°ÏàÓ¦µÄ¸æ¾¯¹æÔòʵʱ¸æ¾¯Óû§¡£Flink
Streaming Äܹ»ÌṩµÍÑÓʱµÄ´¦Àí´Ó¶øÄܹ»´ïµ½ÎÒÃǵÍÑÓʱµÄÒªÇ󣬲¢ÇÒËüÊʺϱȽϸ´ÔӵĴ¦ÀíÂß¼¡£
È»¶øÔÚÔËά Flink µÄ¹ý³ÌÖУ¬ÎÒÃÇÒ²·¢ÏÖÁËÓÉÓÚ×÷ÒµÖØÆôµÈÔÒòµ¼ÖÂÎó±¨ÉÙ±¨¸æ¾¯µÄÇé¿ö·¢Éú£¬´Ó¶øÎ󵼿ͻ§¡£Òò´Ë½ñºóÎÒÃÇ»áÔÚ
Flink µÄÎȶ¨ÐԺ͸߿ÉÓÃÐÔÉÏͶÈë¸ü¶à¡£ÎÒÃÇҲϣÍûÔÚ¼à¿ØÖ¸±ê¡¢ÈÕÖ¾ÉÏÄܹ»¼¯³ÉһЩ¸´Ô AI Ëã·¨£¬´Ó¶øÄܹ»Éú³É¸ü¼ÓÓÐЧ¾«È·µÄ¸æ¾¯£¬³ÉΪÔËάÈËÔ±µÄÒ»°ÑÀûÆ÷¡£
|