±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚÍøÂ磬½éÉÜÒ»¸öʱ¼äÐòÁÐÊý¾Ý´¦ÀíÆ½Ì¨°¸Àý£¬Ì½ÌÖÕâÀà´óÊý¾Ýƽ̨Ôڼܹ¹¡¢Ñ¡ÐͺÍÉè¼ÆÉϵÄһЩʵ¼ù¾Ñé¡£
|
|
ÒýÑÔ
ÔÚ´óÊý¾ÝµÄÉú̬ϵͳÀʱ¼äÐòÁÐÊý¾Ý(Time Series Data£¬¼ò³ÆTSD)ÊǺܳ£¼ûÒ²ÊÇËùÕ¼±ÈÀý×î´óµÄÒ»ÀàÊý¾Ý£¬¼¸ºõ³öÏÖÔÚ¿ÆÑ§ºÍ¹¤³ÌµÄ¸÷¸öÁìÓò£¬Ò»Ð©³£¼ûµÄʱ¼äÐòÁÐÊý¾ÝÓУºÃèÊö·þÎñÆ÷ÔËÐÐ×´¿öµÄMetricsÊý¾Ý¡¢¸÷ÖÖIoTϵͳµÄÖÕ¶ËÊý¾Ý¡¢ÄÔµçͼ¡¢»ãÂÊ¡¢¹É¼Û¡¢ÆøÏóºÍÌìÎÄÊý¾ÝµÈµÈ£¬Ê±ÐòÊý¾ÝÔÚÊý¾ÝÌØÕ÷ºÍ´¦Àí·½Ê½ÉÏÓкܴóµÄ¹²ÐÔ£¬Òò´ËÒ²´ßÉúÁËÒ»Ð©ÃæÏòÃæÏòʱÐòÊý¾ÝµÄÌØ¶¨¹¤¾ß£¬±ÈÈçʱÐòÊý¾Ý¿âºÍʱÐòÊý¾Ý¿ÉÊÓ»¯¹¤¾ßµÈµÈ£¬ÔÚÔÆÆ½Ì¨ÉÏÒ²¿ªÊ¼³öÏÖÃæÏòʱÐòÊý¾ÝµÄSaaS/PaaS·þÎñ£¬ÀýÈç΢Èí×î½ü¸Õ¸Õ·¢²¼µÄAzure
Time Series Insight¡£±¾ÎÄ»á½éÉÜÒ»¸öʱ¼äÐòÁÐÊý¾Ý´¦ÀíÆ½Ì¨°¸Àý£¬Ì½ÌÖÕâÀà´óÊý¾Ýƽ̨Ôڼܹ¹¡¢Ñ¡ÐͺÍÉè¼ÆÉϵÄһЩʵ¼ù¾ÑéÒÔ¹©²Î¿¼¡£
ÒµÎñ³¡¾°
±¾ÎĽéÉܵݸÀýÊÇÒ»¸öÃæÏò´óÐÍÆóÒµITϵͳÔËάµÄ¼à¿ØÆ½Ì¨£¬Êý¾ÝÀ´Ô´ÓÚ¶àÖÖ¼à¿ØÖն˲úÉúµÄʱÐòÊý¾Ý£¬Éæ¼°µÄÊý¾ÝÔ´º¸ÇÁËSCOM¡¢AppDynamics¡¢Website
Pulse¡¢PiwikÒÔ¼°AWS Cloud WatchµÈ¶àÖÖÖ÷Á÷µÄµÚÈý·½¼à¿Ø¹¤¾ß£¬»ùÓÚ×éÖ¯ÄÚ²¿µÄIT¹æ·¶£¬ËùÓÐÓ¦ÓÃϵͳ¶¼°²×°ÁËÉÏÊöÒ»ÖÖ»ò¶àÖÖ¼à¿Ø¹¤¾ß£¬ÕâΪ½¨Á¢Ò»¸öͳһµÄ¶àά¶ÈµÄ¼à¿ØÆ½Ì¨ÌṩÁ˱£Ö¤£¬¸Ãƽ̨»ùÓÚ¶àÖÖ¼à¿ØÊý¾Ý£¬¶ÔͬһӦÓÃ/·þÎñϵͳ½øÐÐ×ۺϵĽ¡¿µÆÀ¹À£¬ÔÚ·¢Éú¹ÊÕÏʱ»á¸ù¾Ý²»Í¬µÄÊý¾ÝÔ´½øÐн»²æÑéÖ¤£¬´Ó¶ø°ïÖúÔËάÈËÔ±¿ìËÙºÍ׼ȷµØ¶¨Î»¹ÊÕÏÔÒò¡£
¼Ü¹¹Éè¼Æ
ÍêÕûµÄ´óÊý¾ÝϵͳÍùÍù°üºÊý¾Ý²É¼¯£¬ÏûÏ¢¶ÔÁУ¬ÊµÊ±Á÷´¦Àí£¬ÀëÏßÅú´¦Àí£¬Êý¾Ý´æ´¢ºÍÊý¾ÝչʾµÈ¶à¸ö×é¼þ£¬ÎªÁËÂú×ãÒµÎñÉ϶Ôʵʱ¼à¿ØºÍÀúÊ·Êý¾Ý»ã×Ü·ÖÎöµÄÐèÇó£¬ÏµÍ³×ñÑÁËLambda¼Ü¹¹£¬½«ÊµÊ±Á÷´¦ÀíÓëÀëÏßÅú´¦Àí½øÐÐÁË·ÖÀë¡£´ËÍ⣬¼øÓÚÆ½Ì¨´¦ÀíµÄËùÓÐÊý¾Ý¾ùΪʱÐòÊý¾Ý£¬Ôڼܹ¹ÉÏÕë¶ÔÕâ¸öÌØµã×ÅÖØ½øÐÐÁ˵÷ÕûºÍÓÅ»¯£¬ÆäÖÐÖØÒªµÄÒ»»·ÊÇÒýÈ롰ʱ¼äÐòÁÐÊý¾Ý¿â¡±×÷ΪºËÐĵÄÊý¾Ý´æ´¢Óë²éѯÒýÇæ¡£
ϵͳÍêÕûµÄÊý¾ÝÁ÷ÈçÏ£ºÊ×ÏÈ£¬Êý¾Ý±»Êý¾Ý²É¼¯×é¼þ´ÓÍⲿϵͳ²É¼¯²¢À´·ÅÈëÏûÏ¢¶ÓÁУ¬½Ó×Å£¬Á÷´¦Àí×é¼þ´Ó¶ÓÁÐÖÐÈ¡³öÊý¾Ý½øÐÐÁ÷ʽ¼ÆË㣬ÏûÏ¢¶ÓÁдÓÖÐµÄÆðµ½µÄ×÷ÓÃÊÇÆ½ºâ¡°Éú²úÕß¡±¡ª¡ªÊý¾Ý²É¼¯×é¼þºÍ¡°Ïû·ÑÕß¡±¡ª¡ªÁ÷´¦Àí×é¼þÔÚÏûÏ¢´¦ÀíÉϵÄËÙÂʲÌáÉýϵͳµÄÎȶ¨ÐԺͿɿ¿ÐÔ¡£Êý¾ÝÔÚÁ÷´¦Àí×é¼þÖлá¾ÀúÇåÏ´¡¢¹ýÂË¡¢×ª»»¡¢ÒµÎñ´¦ÀíµÈÖî¶à»·½Ú£¬Ö®ºó°´TSDÒýÇæ¹æ¶¨µÄ±ê×¼TSD¸ñÊ½ÍÆË͵½TSDÒýÇæ£¬ÓÉTSDÒýÇæ×îÖÕдÈëºó¶ËÊý¾Ý¿â¡£
ʵʱÁ÷´¦Àí²¿·ÖÒªÇóÊý¾Ý´Ó²É¼¯µ½×îºóµÄչʾ¿ØÖÆÔÚÃë¼¶ÑÓ³Ù£¬ÑϸñÀ´Ëµ£¬ÕâÊÇÒ»Ì×½üʵʱϵͳ£¬µ«ÆäʵʱÐÔÒѾ×ã¹»Âú×ãÒµÎñÉϵÄÐèÇó£¬ÎªÁ˱£Ö¤´¦ÀíËÙÂÊ£¬ÊµÊ±Á´ÌõÉϵÄÊý¾Ý´ó¶àÊýʱ¼äÊÇפÁôÔÚÄÚ´æÖеģ¬ºÃÔÚʵʱ²¿·ÖÖ»¹Ø×¢½üÁ½ÖܵÄÊý¾Ý£¬ËùÒÔ×ܵÄÄÚ´æÏûºÄ´¦Ôڿɿصķ¶Î§Ö®ÄÚ¡£
ÔÚÅú´¦ÀíÊý¾ÝÏßÉÏ£¬ÀûÓÃÊý¾Ý¿âµÄͬ²½»úÖÆ½«ÊµÊ±²¿·ÖÂ䵨µÄÊý¾Ý³ÖÐøÍ¬²½µ½Åú´¦ÀíµÄÊý¾Ý¿âÉÏ£¬Õâ¸ö¿â´æ´¢×ÅÊý¾ÝÈ«¼¯£¬ËùÓÐÅú´¦ÀíÏà¹ØµÄ²éѯ¶¼ÔÚÕâ¸ö¿âÉÏÖ´ÐУ¬Óëʵʱ²¿·ÖµÄ×é¼þÍêÈ«¸ôÀë¡£Åú´¦Àí»á±£´æ¹ýÈ¥ÈýÄêµÄÊý¾Ý£¬·ÖÎö³ß¶È¶àΪÈÕ£¬ÖÜ£¬ÔÂÉõÖÁÄê¡£²»Í¬ÓÚÒ»°ãÀëÏß·ÖÎöϵͳѡÐÍHiveÒ»ÀàµÄÊý¾Ý²Ö¿â£¬ÎÒÃÇÏ£ÍûÔÚÀëÏß·ÖÎöʱ¼ÌÐø³ä·ÖÀûÓÃʱÐòÊý¾Ý¿â´øÀ´µÄÖÖÖֺô¦£¬±ÈÈç¾¹ýÌØÊâÓÅ»¯µÄʱÐòÊý¾Ý²éѯ£¬¿ªÏä¼´ÓõIJéѯ½Ó¿ÚµÈµÈ£¬ËùÒÔÔÚÀëÏß²¿·ÖÎÒÃÇÒÀÈ»Å䱸TSDÒýÇæ£¬Åú´¦Àí×é¼þÔÚʵÏÖÒµÎñÐèÇóʱ¿ÉÒÔÉî¶ÈÀûÓÃTSDÒýÇæ¶ÔʱÐòÊý¾Ý½øÐоۺÏÔËË㣬ÔÚ¾ÛºÏÖ®ºóµÄ½á¹ûÉÏÔÙ½øÐиü¼Ó¸´ÔӵķÖÎö²¢Ð´»ØÊý¾Ý¿â£¬Í¬Ê±Ò²¿ÉÒÔÔÚÆÕͨ²éѯÎÞ·¨ÊµÏÖÐèÇóʱԽ¹ýTSDÒýÇæÖ±½Ó¶Ôµ×²ãÊý¾ÝÎļþ½øÐÐMR¼ÆËã¡£
×îºó£¬Êý¾Ýչʾ×é¼þ»á´ÓTSDÒýÇæÖÐÌáÈ¡Êý¾Ý£¬ÒÔ¸÷ÖÖÐÎʽµÄͼ±íչʾ¸øÓû§¡£ÔÚʵ¼ÊµÄ¿ª·¢ÖÐÎÒÃÇ·¢ÏÖTSDÒýÇæ¶ÔÊý¾Ý¸ñʽÓÐÖî¶àµÄÏÞÖÆ£¬ÓеÄTSDÐèÒª½øÐÐijЩת»»ºÍÊÊÅä²ÅÄÜչʾ£¬Òò´ËÎÒÃÇÔÚTSDÒýÇæºÍÊý¾Ýչʾ×é¼þÖмäÒýÈëÁËÒ»¸öÇáÁ¿µÄÇý¶¯³ÌÐòÀ´Í¸Ã÷µØ½â¾öÕâЩÎÊÌâ¡£
»ùÓÚÉÏÊö·ÖÎöºÍʵ¼ÊµÄÔÐÍÑéÖ¤£¬ÔÚ¶àÂÖµü´úÖ®ºó£¬ÎÒÃÇ×îÖÕ³ÉÐεÄϵͳ¼Ü¹¹ÈçÏ£º

½ÓÏÂÈ¥ÎÒÃÇ»á¶Ôÿ¸ö×é¼þÖðÒ»½øÐнéÉÜ¡£
×é¼þÓëÑ¡ÐÍ
Êý¾Ý²É¼¯
ƽ̨µÄÊý¾ÝÀ´Ô´·Ç³£¶à£¬Éæ¼°µ½µÄÐÒéÀàÐÍ×ÔÈ»¾Í¶à£¬²¢ÇÒ°éËæ×ÅÒÔºóµÄ³ÖÐø½¨É裬»áÓÐÔ½À´Ô½¶àеÄÊý¾ÝÔ´ºÍ´«ÊäÐÒéÐèÒª±»Ö§³Ö£¬Òò´ËÎÒÃÇÏ£ÍûÑ¡¶¨µÄ×é¼þÄܹ»Ö§³Ö·Ç³£·á¸»µÄÐÒéÀàÐÍ£¬Í¬Ê±¾¡¿ÉÄܵØÍ¨¹ýÅäÖÃÈ¥¼¯³ÉÊý¾ÝÔ´²¢²É¼¯Êý¾Ý£¬±ÜÃâ±àд´óÁ¿µÄ´úÂ롣Ŀǰҵ½ç½ÏΪÖ÷Á÷µÄÊý¾Ý²É¼¯¹¤¾ßÓÐFlume¡¢LogstashÒÔ¼°Kafka
ConnectµÈµÈ£¬ÕâЩ¹¤¾ß¸÷Óи÷µÄÌØµãºÍÉó¤ÁìÓò£¬µ«ÊÇÔÚÖ§³ÖÐÒéµÄ·á¸»ÐԺͿÉÅäÖÃÐÔÉÏ£¬ÓëÎÒÃǵÄÐèÇóÓÐÒ»¶¨µÄ²î¾à¡£
ÆäʵÓÐÒ»¸öÒ»Ö±±»È˺öÊÓµ«È´ÊǷdz£ÀíÏëµÄÊý¾Ý²É¼¯×é¼þ¡ª¡ªApache Camel£¬ËüÖ÷ÒªÓ¦ÓÃÓÚÆóÒµÓ¦Óü¯³ÉÁìÓò£¬Ò²±»Ò»Ð©ÏµÍ³×÷ΪESB£¨ÆóÒµ·þÎñ×ÜÏߣ©Ê¹Óã¬Æä×÷ÓÃÊÇÔÚÓ¦ÓÃϵͳÁÖÁ¢µÄÆóÒµIT»·¾³ÖаçÑÝÒ»¸ö¡°ÍòÏò½ÓÍ·¡±µÄ½ÇÉ«£¬ÈÃÊý¾ÝºÍÐÅÏ¢ÔÚ¸÷ÖÖ²»Í¬µÄϵͳ¼äƽ»¬µØ½»»»ºÍÁ÷ת£¬¾¹ý¶àÄêµÄ»ýÀÛ£¬CamelÒѾ֧³Ö½ü200ÖÖÐÒé»òÊý¾ÝÔ´£¬²¢ÇÒ¿ÉÒÔÍêÈ«»ùÓÚÅäÖÃʵÏÖ£¬ÕâÇ¡ºÃÂú×ãÁËÎÒÃÇÊý¾Ý²É¼¯µÄÐèÇ󣬾¹ýÔÐÍÑéÖ¤£¬Ò²Ö¤Ã÷ÁËÎÒÃǵÄÑ¡ÔñÊÇÃ÷Öǵġ£
×îºó£¬×÷Ϊһ¸ö·Ç´óÊý¾Ý×é¼þ£¬¶ÔÓÚCamelµÄÐÔÄܺÍÍÌÍÂÁ¿ÎÒÃÇÊÇÓÐÇåÎúÈÏʶµÄ£¬Í¨¹ý¶ÔÊý¾ÝÔ´½øÐзÖ×飬ʹÓöà¸öCamelʵÀý·ÖÇø²É¼¯Êý¾Ý£¬ÎÒÃǴӼܹ¹ÉÏÇáËɵؽâ¾öÁËÕâЩÎÊÌâ¡£
ÏûÏ¢¶ÓÁÐ
ÔÚÏûÏ¢¶ÓÁеÄÑ¡ÔñÉÏûÓпÉÒÔÌÖÂ۵ģ¬Kafka¼¸ºõÊDz»¶þµÄÑ¡Ôñ£¬ÎÒÃÇÒ²²»ÀýÍâ¡£
Á÷´¦Àí
Á÷´¦ÀíºÍÅú´¦Àí¶¼ÊÇÒµÎñÂß¼×Öеĵط½£¬Ò²ÊÇϵͳµÄºËÐÄ¡£Ä¿Ç°ÓÃÓÚÁ÷´¦ÀíµÄÖ÷Á÷¼¼ÊõÊÇStormºÍSpark
Streaming£¬¶ÔÁ½Õß½øÐбȽϵÄÎÄÕºܶ࣬ͨ³£ÈÏΪStorm¾ßÓиü¸ßµÄʵʱÐÔ£¬¿ÉÒÔ×öµ½×îµÍÑÇÃë¼¶µÄÑÓ³Ù£¬Ïà±ÈÖ®ÏÂSpark
StreamingµÄʵʱÐÔÒª²îһЩ£¬ÒòΪËüÒÔ¡±micro batch¡±µÄ·½Ê½½øÐÐÁ÷´¦ÀíµÄ£¬µ«ÊÇÒÀÍÐSparkÕâ¸ö´óƽ̨£¬´Óͳһ¼¼Êõ¶ÑÕ»ºÍÓëÆäËûSpark×é¼þ½»»¥µÄ½Ç¶È¿¼ÂÇ£¬Spark
Streaming±äµÃÔ½À´Ô½Á÷ÐУ¬¼øÓÚÔÚÒµÎñÉÏÃë¼¶ÑÓ³ÙÒѾ¿ÉÒÔÂú×ãÐèÇó£¬ÎÒÃÇ×îÖÕÑ¡ÔñÁ˺óÕß¡£
Åú´¦Àí
´«Í³´óÊý¾ÝµÄÀëÏß´¦Àí¶àÑ¡ÔñÒÔHiveΪ´ú±íµÄÊý¾Ý²Ö¿â½øÐн¨Ä£ºÍ·ÖÎö£¬ÕâÔںܶàÏîÄ¿Éϱ»Ö¤Ã÷Êǿɿ¿µÄ½â¾ö·½°¸¡£ºóÀ´Ëæ×ÅSparkµÄ²»¶Ï׳´ó£¬Spark
SQLµÄʹÓÃÔ½À´Ô½¹ã·º£¬²¢ÇÒSpark SQLÍêÈ«¼æÈÝHive£¬ÕâʹµÃÇ¨ÒÆ¹¤×÷¼¸ºõûÓÐÈκÎÕϰ¡£¶ÔÓÚ¸´Ôӵķǽṹ»¯Êý¾Ý£¬Hadoopƽ̨ÉÏͨ¹ýMR±à³ÌÈ¥´¦Àí£¬SparkÊÇͨ¹ýSpark
CoreµÄRDD±à³ÌʵÏÖ¡£Èç½ñSparkÔÚ´óÊý¾Ý´¦ÀíµÄºÜ¶à·½ÃæÒѾȡ´úHadoop³ÉΪ´óÊý¾ÝµÄÊ×Ñ¡¼¼Êõƽ̨£¬ÎÒÃÇÔÚÅú´¦ÀíµÄÑ¡ÐÍÉÏҲûÓйý¶àµÄÌÖÂÛ£¬Ê¹ÓÃSpark
Core + Spark SQLÊÇÒ»¸ö×ÔÈ»¶øÈ»µÄ¾ö¶¨¡£
µ«ÊÇ¿¼Âǵ½ÏµÍ³´¦ÀíµÄÊÇTSDÊý¾Ý£¬ÈçǰÎÄËùÊô£¬ÔÚÅú´¦ÀíµÄÊý¾ÝÁ´ÌõÉÏ£¬TSDÒýÇæÒÀÈ»ÊÇÒ»¸ö±Ø²»¿ÉÉٵĽÇÉ«£¬ÎÒÃÇÉè¼ÆµÄ²ßÂÔÊÇ:
1.ËùÓÐTSDÒýÇæ¿ÉÒÔÖ±½ÓÖ§³ÖµÄ²éѯ½»ÓÉTSDÒýÇæÖ±½Ó´¦Àí
2.¸´ÔÓµÄÒµÎñ´¦Àí¿ÉÒÔͨ¹ýTSDÒýÇæ½øÐÐÔ¤´¦Àí£¬½«Ô¤´¦Àí½á¹û½»¸øSpark
Core½øÐÐÉî¶È·ÖÎö²¢½«½á¹ûд»ØÊý¾Ý¿â
3.Õë¶ÔTSDÒýÇæÎÞ·¨Íê³ÉµÄ·ÖÎöÂß¼£¬ÓÉSpark Core»òSpark
SQLÈÆ¹ýTSDÒýÇæ£¬Ö±Á¬ºó¶ËµÄHBase½øÐзÖÎö´¦Àí£¬½á¹ûͬÑùÖ±½Óдµ½HBaseÉÏ
4.ΪÌáÉýÐÔÄÜ£¬¶Ô·ÖÎöÖÐʹÓõ½µÄÒÔÈÕ/ÖÜ/ÔÂ/ÄêΪµ¥Î»µÄÖмä±í½øÐÐÔ¤Éú³É¼ÆËã¡£
Ö÷Êý¾Ý¹ÜÀí
Ö÷Êý¾ÝÊÇÖ¸À´×ÔÊý¾ÝÔ´µÄºËÐÄÒµÎñ¶ÔÏ󣬶ÔÓÚÎÒÃÇÕâ¸öÒÔ¼à¿ØÎªºËÐĵį½Ì¨£¬Ö÷Êý¾Ý°üÀ¨£º·þÎñÆ÷¡¢ÏµÍ³ÍØÆË½á¹¹¡¢Õ¾µã¡¢ÍøÂçÉèÊ©µÈµÈ£¬Ö÷Êý¾ÝÍùÍù¶¼¿çÔ½¶àÖÖ²»Í¬µÄÊý¾ÝÔ´£¬²¢ÇÒ¾³£·¢Éú±ä¸ü£¬ÐèÒª¶ÔÆä½øÐж¨ÆÚά»¤¡£
Ϊ´Ë£¬ÎÒÃǹ¹½¨ÁËÒ»¸öͳһµÄÖ÷Êý¾Ý¹ÜÀí×é¼þ£¬²¢Í¨¹ýWeb ServiceµÄ·½Ê½ÏòÍâÌṩÖ÷Êý¾Ý£¬ÓÉÓÚÆ½Ì¨ÔÚÁ÷´¦ÀíºÍÅú´¦Àí¹ý³ÌÖÐÐèҪƵ·±µØÊ¹ÓÃÖ÷Êý¾Ý£¬¶øÖ÷Êý¾ÝµÄÌåÁ¿²¢²»´ó£¬ËùÒÔÎÒÃÇ»áÈÃÁ÷´¦ÀíºÍÅú´¦Àí×é¼þÒ»´ÎÐԵؽ«Ö÷Êý¾Ý¼ÓÔØµ½ÄÚ´æÖУ¬Í¬Ê±ÎªËüÃǼÓÈëÃüÁîÐкÍRestful
API½Ó¿Ú£¬ÔÊÐíËüÃÇÔÚÖ÷Êý¾Ý·¢Éú±ä¸üÊ±ÖØÐ¼ÓÔØÖ÷Êý¾Ý¡£
Ö÷Êý¾Ý¹ÜÀíÄ£¿éÊÇÒ»¸ö´«Í³µÄWebÓ¦Ó㬻ùÓÚSpring-Boot¹¹½¨£¬Ê¹ÓÃMySQL´æ´¢µ¼ÈëµÄÖ÷Êý¾Ý£¬¶ÔÍâͨ¹ýRestful
APIÌṩÖ÷Êý¾Ý¹©¸ø·þÎñ£¬Ëü»¹ÓÐÒ»¸ö¹ÜÀíÒ³Ãæ·½±ã¹ÜÀíԱά»¤Ö÷Êý¾Ý¡£
TSDÒýÇæÓëÊý¾Ý´æ´¢
TSDÒýÇæ¸ºÔðTSDµÄдÈëºÍ²éѯ£¬ºÜ¶àTSDÊý¾Ý¿â»áÀûÓÃÒ»¸ö³ÉÊìµÄNoSQLÊý¾Ý¿â½øÐÐÊý¾Ý´æ´¢£¬¶øTSDÒýÇæÔòרעÔÚTSDÊý¾ÝµÄ´¦ÀíÉÏ¡£ÕâÁ½²¿·ÖÃܲ»¿É·Ö£¬Òò´ËÎÒÃÇ·ÅÔÚÒ»ÆðÌÖÂÛ¡£
ÎÒÃǶÔʱ¼äÐòÁÐÊý¾Ý¿âµÄÑ¡ÐÍÖ÷ÒªÊÇÔÚĿǰҵ½ç×îÖ÷Á÷µÄÁ½¸ö²úÆ·InfluxDBºÍOpenTSDBÖ®¼äÕ¹¿ªµÄ¡£
ǰÕßʹÓÃGOÓïÑÔ±àд£¬ºó¶Ë´æ´¢ÏȺóʹÓùýLevelDBºÍBoltDB£¬ÏÖÔÚʹÓõÄÔòÊÇInfluxDB×Ô¼ºÊµÏÖµÄTime
Structured Merge TreeÒýÇæ£¬OpenTSDBʹÓÃJava±àд£¬ºó¶Ë´æ´¢Ê¹ÓÃHBase¡£ÔÚµ¥»úÐÔÄÜÉÏ£¬¶àÖֶԱȲâÊÔÏÔʾInfluxDB¾ßÓиü¸ßµÄÐÔÄÜ£¬µ«ÎÒÃÇ×îÖÕÑ¡ÔñµÄÊÇOpenTSDB£¬Ö÷ÒªÔÒòÊÇ¿¼Âǵ½ÔÚ¼¯ÈººÍˮƽÉìËõ·½Ã棬±³¿¿HBaseµÄOpenTSDBÓÐÃ÷ÏÔµÄÓÅÊÆ£¬Ïà±ÈÖ®ÏÂInfluxDBÖ»ÔÚÊÕ·ÑµÄÆóÒµ°æÌṩ¼¯Èº¹¦ÄÜ£¬Í¬Ê±ÔÚ¼¯Èº¹æÄ£ºÍÖ§³ÅµÄÊý¾ÝÁ¿ÉÏûÓй«¿ªÏêʵµÄ²Î¿¼Êý¾Ý£¬¶øHBaseÔçÒÑÔÚÖÚ¶àʵ¼ÊÏîÄ¿ÌØ±ðÊǹúÄÚһЩ֪Ãû»¥ÁªÍø¹«Ë¾Öй㷺ʹÓò¢µÃµ½ÁËÑéÖ¤¡£ÁíÒ»·½Ã棬OpenTSDBºÍHBase¶¼Ê¹ÓÃJava±àд£¬Õâ¶ÔÓÚÎÒÃÇÕû¸ö´óÊý¾Ý¼¼ÊõÍŶÓÀ´ËµÔÚά»¤ºÍÐÞ¸´Ò»Ð©µ×²ãBugÉÏÒ²Ïà¶ÔÈÝÒ×һЩ¡£
TSDÒýÇæÇý¶¯
ÕâÊÇÒ»¸ö¶¨ÖÆ¿ª·¢µÄ×é¼þ£¬Æä×÷ÓÃÊǶÔTSDÊý¾Ý½øÐÐת»»ºÍ°ü¹ü£¬ÒÔ±ãÓÚ¸üºÃµØ½øÐÐÊý¾Ýչʾ£¬µ±Êý¾Ý²éѯÇëÇóµ½´ïʱ£¬Ëü»á¸ù¾ÝÇëÇóµÄÄÚÈݺÍʱ¼ä¿ç¶È°ÑÇëÇó·Óɵ½ÊµÊ±¿â»òÅú´¦Àí¿â£¬µ±ÇëÇó·µ»ØÊ±£¬ËüͬÑù»á¹ýÂËÏìÓ¦ÄÚÈÝ£¬¶ÔijЩ×ֶκÍÖµ½øÐÐÓ³ÉäºÍתÂ룬ÈçǰËùÊö£¬ÒòΪʱ¼äÐòÁÐÊý¾Ý¿â¶Ô´æ´¢µÄTSDÓкܶàÐÎʽÉϵÄÏÞÖÆ£¬Ä³Ð©Êý¾Ý²»¿ÉÒÔÖ±½Ó´æ´¢£¬ËüÃÇÔÚÈë¿âǰÒѾ×öÁËÏàÓ¦µÄ¸ñʽ»¯´¦Àí£¬ÔÚÌáȡչʾʱÐèÒª½øÐÐÏàÓ¦µÄ·´´¦Àí¡£
TSDÒýÇæÇý¶¯±¾ÖÊÉÏÊÇÒ»¸öWeb Service£¬´ÓijÖÖÒâÒåÉÏ˵£¬Õâ¸öWeb ServiceÏñÊÇTSDÒýÇæµÄÒ»¸ö·´Ïò´úÀí£¬ËüÄÜÁé»îºÍ͸Ã÷µØ½â¾öһЩ¶¨ÖÆ»¯ÐèÇóÒÔ¼°·Ç±ê×¼Êý¾ÝµÄÊÊÅ乤×÷£¬´Ó¶ø±ÜÃâ¶ÔTSDÒýÇæºÍǰ¶Ëչʾ½øÐÐÇÖÈëÐÔµÄÐ޸ġ£
ÔÚ¼¼ÊõÑ¡ÐÍÉÏ£¬ËùÓÐÖ§³ÖWeb ServiceµÄ¿ò¼Ü¶¼¿ÉÒÔʤÈÎÕâ¸ö¹¤×÷£¬¿¼Âǵ½ÎÒÃÇÕû¸ö´óƽ̨µÄ¼¼Êõ¶ÑÕ»¶¼ÒÔsbt-native-packager/JavaΪÖ÷£¬ÎÒÃÇʵÑéÐÔµØÑ¡ÔñÁËAkka-Http£¬Í¨¹ýÀûÓÃAkka-HttpµÄHTTP
DSLºÍsbt-native-packagerµÄģʽƥÅ䣬ÎÒÃÇÓúÜÉٵĴúÂë¾ÍʵÏÖÁ˼ȶ¨Ä¿±ê£¬Ð§¹û·Ç³£ºÃ¡£
Êý¾Ýչʾ
×îºó£¬ÔÚÊý¾ÝչʾÉÏ£¬GrafanaÊÇÎÒÃÇ×î¼ÑµÄÑ¡Ôñ¡£ËüÊÇÒ»¸öרÃŵÄʱÐòÊý¾Ýչʾ¹¤¾ß£¬¿ÉÒÔÖ±Á¬OpenTSDB£¬Í¼±íµÄÖÆ×÷¶¼ÊÇͨ¹ýÍÏ·ÅÍê³ÉµÄ£¬Ëü»¹ÓÐÒ»¸öÒ쳣ǿ´óµÄ¡°Ä£°æ¡±»úÖÆ£¬¿ÉÒÔͨ¹ýÒ»´ÎÉ趨Éú³É¶àÕÅͼ±í¡£Èç¹û¼ÈÓвå¼þÎÞ·¨Âú×ãչʾÐèÇó£¬ÍŶӻ¹ÒÔ¿ª·¢×Ô¶¨Òå²å¼þ¡£
×ÛÉÏËùÊö£¬Õû¸öϵͳµÄ¼¼Êõ¶ÑÕ»ÈçÏÂËùʾ£º

ÎïÀí¼Ü¹¹
¶ÔÓÚÆ½Ì¨µÄÎïÀí¼Ü¹¹ÎÒÃDz»´òËã½øÐйý¶àµÄ½éÉÜ£¬ÒòΪHadoop/Spark¼¯Èº¶¼´óͬСÒ죬ÎÒÃÇÕâÀïÒªÌÖÂÛµÄÊÇÕâ¸öƽ̨ÔÚÎïÀí¼Ü¹¹ÉϵÄÒ»¸öÏÔÖøµÄÌØµã£¬¾ÍÊÇÎÒÃǹ¹½¨ÁËÁ½¸ö¶ÀÁ¢µÄHadoop/Spark¼¯Èº£¬Ò»¸ö¸ºÔðÁ÷´¦Àí£¬ÁíÒ»¸ö¸ºÔðÅú´¦Àí£¬ÕâÒ²ÊǼùÐÐLambda¼Ü¹¹ÔÚÎïÀí²ãÃæÉϵÄÒ»¸ö×ÔÈ»µÄ½á¹û£¬Á½¸ö¼¯ÈºµÄÊý¾Ý½»»¥ÒÀ¿¿HBaseµÄReplication»úÖÆÍ¸Ã÷µØÊµÏÖ¡£ÆäËûµÄ·ÇHadoop/Spark×é¼þ»á²¿ÊðÔÚÀëÉ¢µÄ·þÎñÆ÷ÉÏ¡£

ʵʱ´¦Àí¼¯ÈººÍÅú´¦Àí¼¯Èº³ýÁË·Ö¹¤ÉϵIJ»Í¬£¬ÔÚ¼¯Èº½á¹¹ºÍ½ÚµãÅäÖÃÉÏÒ²ÓкܴóµÄÇø±ð£¬ÌرðÊÇÔÚ¼ÆËã×ÊÔ´ºÍ´æ´¢×ÊÔ´µÄ·ÖÅäÉÏ¡£Í¨³££¬Hadoop¼¯ÈºµÄ¼ÆËã·þÎñºÍ´æ´¢·þÎñÊǹ²ÉúÔÚÒ»ÆðµÄ£¬¼´HDFSµÄDataNodeºÍYARNµÄNodeManager×ÜÊÇcollocateµÄ,
ÕâÑù×öµÄÄ¿µÄÊÇÈ÷ֲ¼Ê½¼ÆË㾡¿ÉÄܵشӱ¾µØ¶ÁÈ¡Êý¾Ý½øÐд¦Àí£¬¼õÉÙÍøÂçIO£¬ÌáÉýÐÔÄÜ¡£ÎÒÃǵÄÅú´¦Àí¼¯Èº¾ÍÊǰ´ÕâÑùµÄģʽ½øÐÐ×ÊÔ´ÅäÖõģº»ùÓÚSparkµÄÅú´¦Àí³ÌÐòÅÜÔÚYarnµÄNodeManagerÉÏ£¬¾¡Á¿¶Áд±¾µØDataNodeÉϵÄÊý¾Ý£¬¶ÔÓÚHBaseÒ²ÊÇͬÑùµÄÂß¼£¬ÈÃNodeManagerÒ²ÓëDataNode¹²ÉúÔÚÒ»Æð¡£

ÔÚʵʱ´¦Àí¼¯ÈºÉÏÇé¿öÔò´ó²»Ïàͬ¡£Ê×ÏÈ£¬ÔÚÁ÷´¦Àí¹ý³ÌÖÐÊý¾ÝÊDz»Â䵨µÄ£¬Òò´ËÔÚÁ÷¼ÆËãµÄ½ÚµãÉÏÖ»»á·ÖÅäNodeManager£¬¶ø²»»áÓÐDataNode,
µ½ÁËÊý¾Ý´æ´¢»·½Ú²Å»áÈÃHBaseµÄNodeManagerÓëDataNode¹²Éú¡£ËùÒÔ˵NodeManagerºÍDataNode×ÜÊÇcollocateµÄ˵·¨Ì«¾ø¶Ô£¬Ò»Çл¹ÊÇÒª¸ù¾Ýʵ¼ÊÇé¿öÁé»î´¦Àí¡£
ƽ̨½¨Éè
´ÓÇ°Ãæ½éÉܵļ¼Êõ¼Ü¹¹ºÍÑ¡ÐÍÉϲ»ÄÑ¿´³öÕâ¸öϵͳµÄ¸´ÔÓÐÔ£¬ÔÚ½¨Éè¹ý³ÌÖÐÎÒÃÇÓöµ½Á˺ܶàÀ§ÄÑ£¬Ò²»ýÀÛÁËһЩ±¦¹óµÄ¾Ñ飬ÏÞÓÚÆª·ù£¬ÎÒÃÇѡȡÁËһЩÓмÛÖµµÄ»°ÌâºÍ´ó¼Ò½øÐзÖÏí¡£
Î§ÈÆÖ÷Êý¾Ý½øÐÐÁìÓò½¨Ä£
¡°Ã»ÓÐÁìÓòÄ£Ð͵ÄÉè¼Æ¶¼ÊÇË£Á÷Ã¥¡±£¬Õâ¾ä¿´ËƵ÷Ù©µÄ»°±í´ïµÄÈ´ÊǶÔÈí¼þÉè¼ÆµÄÒ»ÖÖÑÏËà̬¶È£¬ÁìÓòÄ£ÐÍÔÚÈκÎÀàÐ͵ÄϵͳÀï¶¼ÆðןËÐÄ×÷Ó㬴óÊý¾ÝϵͳҲ²»ÀýÍ⣬Äã¿ÉÒÔ²»È¥Éè¼ÆËü£¬µ«Õâ²¢²»±íʾËü²»´æÔÚ£¬Ò»¸ö²»ÄÜÈçʵ·´Ó³ÒµÎñÂß¼µÄÄ£ÐÍ×¢¶¨»áµ¼ÖÂÕû¸öϵͳµÄʧ°Ü¡£ÔÚÎÒÃÇÕâ¸öÃæÏòʱÐòÊý¾ÝµÄ´óÊý¾Ýƽ̨ÉÏ£¬ËùÓеÄTSD¶¼³ö×ÔÓÚ»òÃèÊöÁËijһÀàÖ÷Êý¾ÝµÄ״̬»òÐÐΪ£¬»òÕß˵ËüÃǶ¼ÊÇÖ÷Êý¾ÝËù´ú±íµÄÒµÎñʵÌåµÄ²úÎ±ÈÈç·þÎñÆ÷µÄMetricsÊý¾Ý£¬ÕâÊǵäÐ͵ÄTSD£¬ËüÃÇÃèÊöµÄ¾ÍÊÇÒµÎñ¶ÔÏ󣺡±·þÎñÆ÷¡±µÄ״̬¡£´ÓOO½¨Ä£µÄ½Ç¶ÈÀ´Ë¼¿¼Õâ¸öÎÊÌ⣬Èç¹û¼à¿ØÏµÍ³ÐèÒª½¨Á¢Õë¶ÔÕâ¸ö·þÎñÆ÷µÄÒ»ÕûÌ×¼à¿ØºÍ±¨¾¯¹æÔò£¬ÄÇôËùÓÐÏàÓ¦µÄÂß¼±ØÈ»»á×·¼Óµ½¡°·þÎñÆ÷¡±ÒÔ¼°Ò»Ð©ºÍËüÏà¹ØÁªµÄʵÌåÉÏ£¬Õâ¾ÍÊÇÎÒÃÇËù˵µÄ¡°Î§ÈÆÖ÷Êý¾Ý½øÐÐÁìÓò½¨Ä£¡±¡£
ÕâÒ»µã·Ç³£ÖØÒªÇÒÓÐЧ£¬ÒòΪËüÊǶÔËùÓÐÒµÎñÂß¼µÄÒ»ÖÖ×ÔÈ»µÄÊáÀíºÍ»®·Ö£¬×îÄܹ»·´Ó³ÁìÓòµÄ±¾À´ÃæÄ¿£¬Ô½ÊǸ´ÔÓµÄÒµÎñ³¡¾°Ô½ÄÜÌåÏÖÓÅÔ½ÐÔ¡£ËùÓÐÕâЩ˼¿¼ºÍÇãÏòÐÔ¶¼ÔÚÒýµ¼ÎÒÃǽ¥½¥µØÏò¡°ÁìÓòÇý¶¯Éè¼Æ¡±£¨Domain
Driven Design£©µÄ·½Ïòǰ½ø£¬ÕâÊÇÒ»¸ö·Ç³£·á¸»²¢ÇÒ¾ßÓÐʵ¼ÊÒâÒåµÄ»°Ì⣬ÁîÈ˸п®µÄÊÇÎÒÃÇÔÚ´óÊý¾Ýƽ̨ÉÏÈá°ÁìÓòÇý¶¯Éè¼Æ¡±ÔÙÒ»´Î»À·¢ÁËÉú»ú£¬ÒÔÁìÓòÄ£ÐÍΪºËÐÄÇý¶¯ÒµÎñ´¦ÀíºÍÊý¾Ý·ÖÎöÊÇÒ»¸ö·Ç³£Ã÷ÖǵÄÑ¡Ôñ£¬¾¡¹ÜÕâ¶ÔÍŶÓÕûÌåµÄËØÖÊÓиü¸ßµÄÒªÇó£¬ÊµÊ©ÄѶÈÒ²¸ü´ó£¬µ«ÊÇ»ØÀ¡Ò²ÊǾ޴óµÄ¡£
ÎÒÃÇÓÐÒ»¸öÉú¶¯µÄʵÀý£ºÔÚÆ½Ì¨½¨ÉèµÄÔçÆÚ£¬ÏÞÓÚÿ¸öÊý¾ÝÔ´µÄ¸ñʽºÍ´¦ÀíÂß¼ÉϵIJîÒ죬ÿ¸öÊý¾ÝÔ´¶¼×Ô¼ºµÄÒµÎñ´¦Àí´úÂëºÍ¶ÀÁ¢µÄÒµÎñ¹æÔò±í£¬ÕâÖÖ´¦Àí·½Ê½·Ç³£ÀàËÆÓÚ´«Í³ÆóÒµÓ¦Óüܹ¹Öеġ°Transaction
Script¡±Ä£Ê½(¹ØÓÚTransaction ScriptÇë²Î¿¼Martin FowlerµÄ¡¶Patterns
of Enterprise Application Architecture¡·Ò»ÊéµÄµÚ9Õ£©£¬°éËæ×ÅÊý¾ÝÔ´µÄ²»¶ÏÒýÈ룬ÎÒÃÇ·¢ÏÖÓ¦ÓÃÔںܶ಻ͬÊý¾ÝÔ´ÉÏµÄ¼à¿ØºÍ±¨¾¯Âß¼¶¼·Ç³£ÀàËÆ£¬²¢ÇÒÕë¶ÔµÄÒµÎñ¶ÔÏóÒ²¶¼ÊÇÒ»ÑùµÄ£¬ÀýÈ粻ͬµÄÊý¾ÝÔ´¶¼»áÃæÏòij̨·þÎñÆ÷»òij¸öÕ¾µã²úÉú±¨¾¯ÏûÏ¢£¬¶øÎÒÃǶÔÕâЩ±¨¾¯ÏûÏ¢µÄ´¦ÀíÓÐןܴóµÄÏàËÆÐÔ£¬Õâ´ÙʹÎÒÃÇÒÔÖ÷Êý¾ÝΪ¶ÔÏó½øÐÐÁËÁìÓò½¨Ä££¬°ÑÂß¼½øÐÐÁËͳһÊáÀí£¬ÔÚ²»Ò»Öµĵط½ÔËÓÃÊÊÅäÆ÷¡¢ÐÞÊÎÆ÷ºÍ²ßÂÔµÈģʽ½øÐжԽӣ¬×îÖÕ½«ÔÀ´ÀëÉ¢µÄ´úÂëºÍÅäÖÃͳһÔÚÁËÒ»¸öÁìÓòÄ£ÐÍÉÏ£¬´ó´ó¼ò»¯Á˱à³ÌºÍά»¤³É±¾£¬ÔÚ´¦ÀíмÓÈëµÄÊý¾ÝԴʱ±äµÃ¸ü¼Ó¼ò±ã¿ì½Ý¡£
×îºó£¬²¹³äÒ»µãÈÏʶ£¬ÔÚ´«Í³ÆóÒµ¼¶Ó¦ÓÃÀï½øÐÐÁìÓòÇý¶¯Éè¼ÆÓÐÖî¶àµÄÀ§ÄÑ£¬ÆäÖÐÒ»¸ö±È½ÏÍ»³öµÄÎÊÌâ¾ÍÊÇÁìÓò¶ÔÏóµÄ³Ö¾Ã»¯£¬ÓÉÓÚÊý¾Ý´æ·ÅÔÚ¹ØÏµÐÍÊý¾Ý¿âÖУ¬ÁìÓò¶ÔÏóµÄдÈëºÍ¼ÓÔØ¶¼´æÔÚÒ»¸ö¡°¶ÔÏó¹ØÏµÓ³É䡱µÄÎÊÌ⣬¾¡¹ÜÓкܶà³ÉÊìµÄORM¿ò¼ÜÄÜÔÚÒ»¶¨³Ì¶ÈÉÏ»º½âÕâ¸öÎÊÌ⣬µ«ÊÇÔÚ´«Í³ÆóÒµ¼¶Ó¦ÓÃÀïÂäµØÒ»¸ö´¿ÕýµÄÁìÓòÄ£ÐÍÒÀÈ»ÊÇÒ»¸ö²»Ð¡µÄÌôÕ½£¬¶ø´óÊý¾Ýƽ̨ΪÁìÓòÇý¶¯Éè¼ÆÌṩÁËÒ»¸ö¸ü¼Ó×ÔÓɵĿռ䣬±ÈÈç´óÊý¾ÝµÄ¼ÆËã½Úµã¿ÉÒÔÌṩ×ã¹»µÄÄڴ潫ÁìÓò¶ÔÏóÒ»´ÎÐÔÈ«²¿¼ÓÔØ£¬ÃâÈ¥ÁËORMÖжԹØÁª¶ÔÏó¼ÓÔØ²ßÂԵľÀ½á£¬¶øÁìÓò¶ÔÏó»áÔÚ´óÊý¾Ý´¦Àí¹ý³ÌÖз´¸´Ê¹Ó㬿͹ÛÉÏÒ²ÐèÒªÖ±½Ó°ÑËüÃǼÓÔØµ½ÄÚ´æÖÐʹÓã¬ÔÙ±ÈÈ磬ÔÚÒµÎñ´¦ÀíºÍ·ÖÎö½×¶Î£¬¼¸ºõËùÓÐÁìÓò¶ÔÏó¶¼ÊÇÖ»¶ÁµÄ£¬ËüÃÇÖ»»áÔÚͬ²½Ö÷Êý¾Ýʱ±»¸üУ¬ÕâÌìÈ»µØÐγÉÁ˶Áд·ÖÀ룬¸ü¼ÓÊʺÏCQRS¼Ü¹¹¡£
Á÷´¦ÀíµÄ¹¤³Ì½á¹¹
ºÜ¶àÍŶÓÔÚ³õ´ÎʹÓÃÁ÷¼ÆËã¿ò¼Ü¹¹½¨ÏîĿʱÍùÍù»áÔÚÈçºÎ×éÖ¯¹¤³Ì½á¹¹Éϸе½ÃÔ㣬²»Í¬ÓÚ´«Í³ÆóÒµ¼¶Ó¦Óþ¹ý¶àÄê»ýÀÛÐγɵġ°Ì×·¡±£¬Á÷´¦ÀíÏîÄ¿µÄ¹¤³Ì½á¹¹²¢Ã»ÓÐÒ»¸öÔ¼¶¨Ë׳ɵÄ×î¼Ñʵ¼ù£¬ÎÒÃÇÔÚÕâÀï·ÖÏíÎÒÃǵŤ³Ì½á¹¹×÷Ϊһ¸ö²Î¿¼£¬Ï£Íû¶ÔÄãÓÐËùÆô·¢¡£

Ò²ÐíÄã»á¾õµÃÕâ¸ö¹¤³Ì½á¹¹·Ç³£ÃæÊ죬Êǵģ¬ÎÒÃdzä·Ö½è¼øÁË´«Í³ÆóÒµ¼¶Ó¦Óõķֲã½á¹¹£¬Ã¿Ò»¸öÉ«¿é¶¼´ú±í×ÅÒ»Àà×é¼þ£¬Ó³Éäµ½¹¤³ÌÉϾÍÊÇÒ»¸öpackage£¬ÈÃÎÒÃÇÖðÒ»½éÉÜһϣº
Stream£º ϵͳÖеÄÿһ¸öÁ÷¶¼»á·â×°ÔÚÒ»¸öÀàÖУ¬ÎÒÃǰÑÕâЩÀàͳһ°´¡°XxxStream¡±ÐÎʽ½øÐÐÃüÃû£¬·ÅÔÚstream°üÀStreamÀàÀï³öÏֵĶàÊÇÓëSpark
StreamingÏà¹ØµÄAPI£¬ÔÚÉæ¼°Êµ¼ÊµÄÒµÎñ´¦Àíʱ£¬»áµ÷ÓÃÏàÓ¦µÄService·½·¨£¬ÕâÖÖÉè¼Æ·´Ó³ÁËÎÒÃǶÔÁ÷´¦ÀíµÄÒ»¸ö»ù±¾ÈÏʶ£¬ÄǾÍÊÇÁ÷¼ÆËãÖеÄAPIÊÇÒ»¸ö¡°ÃÅÃæ¡±(Facade)£¬ºñÖØµÄÒµÎñ´¦Àí²»Ó¦ÔÚÕâЩAPIÉÏÖ±½ÓÒÔLambda±í´ïʽµÄ·½Ê½±àд£¬¶øÓ¦¸Ã·â×°µ½×¨ÃŵÄServiceÀï¡£ÕâÓëWebÓ¦ÓÃÖÐActionºÍServiceµÄ¹ØÏµ¼«ÎªÀàËÆ¡£
Service£º ÓëÒµÎñÏà¹ØµÄ´¦ÀíÂß¼»á·â×°µ½ServiceÀàÀÕâÊǺܴ«Í³µÄ×ö·¨£¬µ«ÊÇÓÉÓÚÎÒÃÇÉî¶ÈµØÓ¦ÓÃÁËÁìÓòÇý¶¯Éè¼Æ£¬ËùÒÔ¾ø´ó²¿·ÖµÄÒµÎñÂß¼ÒѾ×ÔÈ»µØÎ¯Åɵ½ÁËÁìÓò¶ÔÏóµÄ·½·¨ÉÏÁË£¬Òò´ËServiceÒ²±ä³ÉÁ˺ܱ¡µÄÒ»²ã·â×°¡£ÓиöÖµµÃÒ»ÌáµÄϸ½Ú£¬ÎÒÃǰÑËùÓеÄService¶¼×ö³ÉÁËobject(sbt-native-packagerÖеÄobject¶ÔÏ󣩣¬Ò²¾ÍÊǵ¥Ì¬£¬
ÕâÑù×öµÄÖ÷ÒªµÄ¶¯»úÊÇÈÃËùÓеÄExecutor½ÚµãÔÚ±¾µØ¼ÓÔØÈ«¾ÖΨһµÄServiceʵÀý£¬±ÜÃâServiceʵÀý´ÓDriver¶Ëµ½Executor¶Ë×öÎÞνµÄÐòÁл¯Óë·´ÐòÁл¯²Ù×÷¡£
Repository£ºÔÚÏà¶Ô¼òµ¥µÄϵͳÀÄã¿ÉÒÔÀûÓÃRepositoryÖ±½Ó¶ÁÈ¡´æ·ÅÓÚÊý¾Ý¿âÖеÄÖ÷Êý¾ÝºÍÅäÖÃÐÅÏ¢£¬Èç¹ûÄãµÄƽ̨Óжദ×é¼þ¶¼ÐèҪʹÓÃÖ÷Êý¾Ý£¬ÎÒÃǽ¨ÒéÄãÎñ±Ø½¨Á¢Í³Ò»µÄÖ÷Êý¾ÝºÍÅäÖÃÐÅÏ¢¶Áд×é¼þ£¬Èç¹ûÊÇÕâÑù£¬ÔòרÊôÓÚÁ÷´¦ÀíµÄRepository½«²»¸´´æÔÚ¡£
Domain£ºÁìÓòÄ£ÐÍÉæ¼°µÄʵÌåºÍÖµ¶ÔÏó¶¼»á·ÅÔÚÕâ¸ö°üÀҵÎñ´¦ÀíºÍ·ÖÎöµÄÂß¼»á°´ÕÕÃæÏò¶ÔÏóµÄÉè¼ÆÀíÄî·ÖÉ¢µ½ÁìÓò¶ÔÏóµÄÒµÎñ·½·¨ÉÏ¡£Í¬ÑùµÄ£¬Èç¹û½¨Á¢ÁËͳһµÄÖ÷Êý¾ÝºÍÅäÖÃÐÅÏ¢µÄ¶Áд×é¼þ£¬ÔòDomainÒ²½«²»¸´´æÔÚ
DTO£º Á÷´¦ÀíÖеÄDTO²¢²»ÊÇΪ´«ÊäÁìÓò¶ÔÏó¶øÉè¼ÆµÄ£¬ËüÊÇÍⲿ²É¼¯µÄÔÉúÊý¾Ý¾¹ý½á¹¹»¯´¦ÀíÖ®ºóÔÚÁ÷ÉϵÄÊý¾Ý¶ÔÏó¡£
ÏîÄ¿¹¹½¨£ºSbt vs. Maven
ÓÉÓÚÎÒÃÇµÄÆ½Ì¨¼¼Êõ¶ÑÕ»ÒÔSparkΪºËÐÄ£¬ÎÒÃǵöºËÐÄ×é¼þ¶¼ÊÇʹÓÃsbt-native-packager±àдµÄ£¬ÔÚÏîÄ¿¹¹½¨ÉÏÒ²»ýÀÛÁËһЩ±¦¹óµÄ¾Ñ飬ÔçÆÚÎÒÃÇʹÓõÄÊÇsbt-native-packagerµÄĬÈϹ¹½¨¹¤¾ßsbt£¬
×÷ΪÐÂÒ»´úµÄ¹¹½¨¹¤¾ß£¬sbtÎüÊÕÁËÖÚ¶àǰ±²µÄÓŵ㣬¼òµ¥Ò×Óã¬Äܹ»Âú×ã»ù±¾µÄÓ¦Óó¡¾°£¬µ«ÔÚʵ¼ÊµÄÏîÄ¿¹¹½¨ÖУ¬µ±ÃæÁÙһЩÏà¶Ô¸´Ôӵij¡¾°Ê±£¬ÄêÇàµÄsbt»áÏԵñȽÏÎÞÁ¦£¬ÆäÖÐ×îΪÎÒÃDz»ÄܽÓÊܵÄÊÇÃæÏò¶à»·¾³µÄ¹¹½¨¡£¾¡¹ÜÉçÇøÌá³ö¹ýһЩ½â¾ö·½°¸£¬ÀýÈçhttp://stackoverflow.com/questions/17193795/how-to-add-environment-profile-config-to-sbt
£¬ µ«ÊÇÕâ¸ö·½°¸µÄȱÏÝÔÚÓÚ¶ÔÓÚÿһÌ×»·¾³¶¼ÒªÌṩȫÌ×µÄÅäÖ㬼´Ê¹ËüÃÇÔÚ¶àÊý¾Ý»·¾³ÖеÄÖµÊÇÒ»ÑùµÄ¡£Êµ¼ÊÉÏÕâ¸öÎÊÌâµÄ±¾ÖÊÔÒòÊÇsbtÉÐûÓÐÀàËÆMavenÄÇÑùÔÚ¹¹½¨Ê±»ùÓÚij¸öÅäÖÃÎļþ¶ÔһЩ±äÁ¿½øÐйýÂ˺ÍÌæ»»µÄResource+Profile¹¦ÄÜ£¬ÕâÊǺÜÖØÒªµÄÒ»¸öÐèÇó¡£
ÔÚ´ò°ü·½Ã棬ÎÒÖ¸µÄÊǹ¹½¨Ò»¸ö°üº¬ÃüÁîÐй¤¾ß¡¢ÅäÖÃÎļþºÍ¸÷ÖÖlibµÄ°²×°°ü£¬sbtµÄsbt-native-packagerȷʵ·Ç³£Ç¿´ó£¬ÁîÈËÓ¡ÏóÉî¿Ì¡£Í¬Ñù£¬ÔÚÃæÏò²»Í¬»·¾³µÄǰÌáÏ£¬´ò°ü²»Í¬ÓÃ;µÄpackageʱ£¬sbt-native-packagerµÄÁé»îÐÔ»¹Óдý¼ìÑé¡£ÀýÈ磬»ùÓÚÎÒÃǹýÈ¥µÄ×î¼Ñʵ¼ù£¬ÃæÏòÿһÖÖ»·¾³£¬ÎÒÃdz¢³¢»áÀûÓÃsbt-native-packager¹¹½¨Á½ÖÖpackage£¬Ò»ÖÖÊǰüº¬È«²¿²ú³öÎïµÄ±ê×¼²¿Êð°ü£¬Ò»ÖÖÊǽö½ö°üº¬Ã¿´Î¹¹½¨¶¼ÓпÉÄÜ·¢Éú±ä»¯µÄÎļþ£¬ÀýÈçÏîÄ¿×ÔÉíµÄjar°üºÍһЩÅäÖÃÎļþ£¬ÎÒÃǰÑÕâÖÖ°ü³ÆÎª×îС»¯µÄpackage£¬ÕâÖÖpackage»áÓÃÓÚÈÕ³£³ÖÐø¼¯³ÉµÄ²¿Êð£¬ËüµÄÌå»ýºÜС£¬ÔÚÍøÂç´ø¿íÓÐÏ޵Ļ·¾³ÀËü»á´ó´ó½ÚÔ¼²¿Êðʱ¼ä¡£
»Øµ½Maven£¬ÔÚ¹ýÈ¥ÊýÄêµÄ¿ª·¢¹¤×÷ÖУ¬MavenÂú×ãÁËÎÒÃǸ÷ʽ¸÷ÑùµÄ¹¹½¨ÐèÇ󣬴ÓûÓÐÈÃÎÒÃÇʧÍû¹ý£¬ËüµÄÔ¼¶¨´óÓÚÅäÖõÄ˼ÏëºÍ·á¸»µÄÖܱ߲å¼þÕæÕýʵ¼ùÁË£º¡±Make
simple things simple£¬ complex things possible£¡¡±´Óʵ¼ÊЧ¹û¿´£¬Ê¹ÓÃMaven¹¹½¨sbt-native-packagerÏîĿûÓÐÈκÎÕϰ£¬Ëü³ÉÊì¶øÇ¿´óµÄ¸÷ÏÄÜ¿ÉÒÔ½â¾öʵ¼ÊÏîÄ¿Éϸ÷ʽ¸÷ÑùµÄÐèÇó£¬ÕâÒ»ÇÐÈÃÎÒÃÇ×îÖջعéÁËMaven¡£
µ«ÊÇÕâ²¢²»´ú±íÎÒÃÇ»áÔÚMavenÉÏÍ£ÖͲ»Ç°£¬Êµ¼ÊÉÏÎÒÃǶÔsbtÒÀÈ»±§ÓÐÆÚÍû£¬Ö»ÊÇËüÐèҪʱ¼ä±äµÃ¸ü¼ÓÇ¿´ó¡£ÔÚδÀ´Ä³¸öºÏÊʵÄʱ»ú£¬ÎÒÏëÎÒÃÇ»áÇ¨ÒÆµ½sbt¡£
Êý¾Ý²É¼¯µÄÍ´µãºÍÓ¦¶Ô²ßÂÔ
Êý¾Ý²É¼¯ÍùÍùÊÇ´óÊý¾Ýƽ̨ÉϵÄÔà»î¡¢Àۻ³ýÁ˽â¾ö¼¼ÊõÉϵÄÎÊÌ⣬ÍŶӻ¹ÐèÒª½øÐдóÁ¿Ðµ÷ºÍ¹µÍ¨¹¤×÷£¬ÒòΪÍⲿÊý¾ÝÔ´¶¼ÓÉÆäËûÍŶӹÜÀí£¬ÐèÒª´Ó¸ü¸ßµÄ×éÖ¯²ãÃæ½øÐÐÊèͨ£¬²¢ÇҺܶàÊý¾ÝÔ´ÐèҪͬʱΪ¶à¸öÍⲿϵͳ¹©¸øÊý¾Ý£¬ÎªÁËÈ·±£Êý¾ÝÔ´µÄ¿ÉÓÃÐÔ£¬»á¶ÔÍⲿµÄÊý¾Ý²É¼¯×÷Òµ½øÐпØÖÆ£¬±ÈÈçÏÞÖÆ²É¼¯ÆµÂʵȡ£ÎÒÃÇÏÂÃæ»áÌÖÂÛÁ½¸ö¼¬ÊÖµÄÎÊÌ⣬²¢·ÖÏíÎÒÃǵĽâ¾ö·½°¸¡£
Êý¾Ý²É¼¯×÷Òµ³¬Ê±
ÔÚÎÒÃDzɼ¯µÄÍⲿÊý¾ÝÔ´ÖУ¬ÓÐÒ»¸öÊý¾Ý¿âÔÚijЩʱ¿ÌÒòΪÐèҪͬʱ´¦Àí¶à¸öÍâΧϵͳµþ¼ÓµÄ²éѯÇëÇó¶ø¾³£ÏìÓ¦»ºÂý£¬½ø¶øµ¼ÖÂÁËÎÒÃǵÄÊý¾Ý²É¼¯×÷Òµ³¬Ê±£¬¶øÕâ¸öJobÔÀ´µÄÉè¼ÆÊÇÿ·ÖÖÓÖ´ÐÐÒ»´Î£¬Ã¿´ÎÖ´ÐÐʱ»á´ÓÄ¿±êÊý¾Ý¿âÖвéѯ×î½ü1·ÖÖÓÄÚµÄÊý¾Ý£¬Õâ¸ö²éѯÇëÇóͨ³£ÔÚ1ÃëÒÔÄھͿÉÒÔ·µ»Ø£¬µ«Êǵ±Êý¾Ý¿âÏìÓ¦»ºÂýʱ£¬Ò»¸öJobµÄºÄʱÍùÍùÒª³¬¹ý1·ÖÖÓ£¬¶øºóÐøÆô¶¯µÄJobÈÔÈ»°´Æô¶¯Ê±µÄʱ¼äµãÏòǰ1·ÖÖÓ×÷Ϊʱ¼ä´°¿Ú½øÐвéѯ£¬Õâ¾Í³öÏÖÁËÊý¾Ý¶ªÊ§¡£
Ó¦¶ÔÕâ¸öÎÊÌâµÄÒ»¸ö¼òµ¥·½°¸Êǽ«JobµÄÖ´ÐбäΪÒì²½·Ç×èÈûģʽ£¬Ã¿Ò»¸öJob±»´¥·¢ºó¶¼ÔÚÒ»¸ö¶ÀÁ¢µÄÏß³ÌÖÐÔËÐС£µ«ÊÇÕâ¸ö·½°¸²»ÊÊÓÃÓÚÎÒÃǵÄϵͳ£¬ÒòΪÕâÑù²É¼¯µ½µÄÊý¾Ý²»Äܱ£Ö¤Ê±¼äÉϵÄÓÐÐòÐÔ£¬¶øÕâ¶ÔÒ»¸öʱÐòÊý¾ÝϵͳÖÁ¹ØÖØÒª¡£ËùÒÔÕâÒ»·½°¸±»·ñ¾ö¡£
¾¹ý×ÐϸµÄ˼¿¼£¬ÎÒÃÇÈÏΪ±ØÐëÒª½«Õâ¸öJobÇзֳÉÁ½¸ö×ÓµÄJob£ºµÚÒ»¸öJob¸ºÔðÖÆ¶¨ÖÜÆÚÐԵļƻ®£¬×¼È·µØËµÊÇÖÜÆÚÐÔµØÉú³Éʱ¼ä´°¿Ú²ÎÊý£¬µÚ¶þ¸öJob¸ºÔð¶Áȡʱ¼ä´°¿Ú²ÎÊýÖ´Ðвéѯ£¬ÕâÒ»²¿·ÖµÄ¹¤×÷²¢²»ÊÇÖÜÆÚÐԵģ¬ÔÔòÉÏ£¬Ö»ÒªÓÐʱ¼ä²ÎÊýÉú³É¾ÍÓ¦¸ÃÁ¢¼´Ö´ÐУ¬Èç¹ûÖ´Ðг¬Ê±£¬ÔÚ³¬Ê±ÆÚ¼ä£¬ÎÒÃÇÐèÒª»º´æµÚÒ»¸öJobÉú³ÉµÄʱ¼ä²ÎÊý£¬¶øµ±ËùÓеIJéѯ¶¼¼°Ê±Íê³ÉûÓдýÖ´ÐеIJéѯ¼Æ»®Ê±£¬µÚ¶þ¸öJobÐèÒªµÈ´ýеIJéѯ²ÎÊýµ½´ï£¬Êǵģ¬Õâʵ¼ÊÉÏÊÇÒ»¸öÉú²úÕß-Ïû·ÑÕßÄ£ÐÍ£¬Ö»ÊÇÉú²úÕßÊÇÔÚ¡°ÓнÚ×ࡱµØÉú²ú£¬ÔÚÕâ¸öģʽÀµÚÈý¸ö²ÎÓëÕߣº²Ö¿â£¬»òÕß˵´«ËÍ´ø£¬Æðµ½Á˹ؼüµÄµ÷½Ú×÷Ó㬶øÒ»¸öÏֳɵÄʵÏÖ¾ÍÊÇJDK×Ô´øµÄBlockingQueue£¡ÓÚÊÇÎÒÃǵÄÂ䵨·½°¸ÊÇ£º
1.µÚÒ»¸öJobÓɶ¨Ê±Æ÷ÖÜÆÚÐÔ´¥·¢£¬Ã¿´Î´¥·¢Ê±»á°Ñµ±Ç°Ê±¼ä·Åµ½Ò»¸öBlockingQueueµÄ¶Óβ¡£
2.µÚ¶þ¸öJobÑ»·Ö´ÐУ¬Ã¿´ÎÖ´ÐеŤ×÷¾ÍÊÇ´ÓBlockingQueueµÄ¶ÓÍ·È¡³öʱ¼ä²ÎÊý£¬×é×°SQL²¢Ö´ÐС£µ±¶ÓÁÐΪ¿Õʱ£¬ÓÉBlockingQueueÀ´×èÈûµ±Ç°Ị̈߳¬µÈ´ýʱ¼ä²ÎÊý½øÈë¶ÓÁС£
3.µ±µÚ¶þ¸öJobÖ´ÐÐÍêÒ»´Îʱ£¬Èç¹û¶ÓÁÐÖл¹ÓÐʱ¼ä²ÎÊý£¬»á¼ÌÐøÖ´Ðв½Öè2£¬·¢Éú´ËÀàÇé¿öʱ¾Í˵Ã÷ǰһ´ÎµÄÖ´Ðг¬¹ýÁË1·ÖÖÓ¡£
Êý¾ÝÑÓ³Ù¾ÍÐ÷
ÎÒÃÇһֱΪ½µµÍƽ̨µÄÊý¾ÝÑÓ³Ù×öן÷ÖÖŬÁ¦£¬µ«×îÈÃÈ˸е½ÎÞÁ¦µÄÊÇÍⲿÊý¾ÝÔ´±¾ÉíÔÚÊý¾ÝдÈëʱ·¢ÉúÁËÑÓ³Ù¡£¾Ù¸öÀý×Ó£¬»¹ÊÇÇ°ÃæÌáµ½µÄÊý¾Ý¿â£¬Ã¿´Î²É¼¯Êý¾ÝÉ趨µÄʱ¼äÇø¼äÊÇ´Óµ±Ç°Ê±¼äµ½Ç°Ò»·ÖÖÓ£¬¼Ù¶¨µ±Ç°Ê±¼äÊÇ00:10£¬ÔòÖ´ÐеÄSQLÖÐʱ¼ä´°¿Ú²ÎÊýÊÇ(00:09£¬00:10]£¬´ËʱÄã¿ÉÄÜ»á²éѯµ½1000ÌõÊý¾Ý£¬µ«Èç¹ûÄãÔÚ00:11ÒÔͬÑùµÄ²ÎÊý(00:09£¬00:10]ÔÙ´ÎÖ´ÐÐÕâÌõSQL£¬
·µ»ØµÄÊý¾ÝÌõÄ¿¾Í¿ÉÄܱä³ÉÁË1200Ìõ£¬Õâ˵Ã÷Êý¾Ý¿âÖеÄÊý¾Ý´ÓËüÔÚÒµÎñϵͳÖÐÉú³Éµ½×îºóдÈëÊý¾Ý¿âµÄ¹ý³ÌÖз¢ÉúÁËÑÓ³Ù£¬Ôì³ÉÕâÖÖÇé¿öµÄÔÒòÓкܶ࣬±ÈÈçϵͳ´æÔÚÐÔÄÜÎÊÌâµÈµÈ£¬×ÜÖ®ÏÖ×´¾ÍÊÇ£ºÊý¾Ý¾ÍÐ÷·¢ÉúÁËÑÓ³Ù£¬¶ø¶ÔÓÚÊý¾Ý²É¼¯·½ÕâÍêÈ«²»¿É¿Ø¡£
Ãæ¶ÔÕâÖÖÎÊÌ⣬ÎÒÃǵÄÓ¦¶Ô²ßÂÔÊÇ£ºÈç¹ûÊý¾Ý¼°Ê±µØ¾ÍÐ÷ÁË£¬ÎÒÃÇÒª±£Ö¤Äܼ°Ê±µÄ²¶»ñ£¬Èç¹ûÊý¾ÝÑÓ³Ù¾ÍÐ÷£¬ÎÒÃÇÒª±£Ö¤ÖÁÉÙ²»»á¶ªµôËü¡£»ùÓÚÕâÑùµÄ¿¼ÂÇ£¬ÎÒÃǰÑͬһ¸öÊý¾ÝÔ´µÄÊý¾Ý²É¼¯·Ö³ÉÁËÁ½µ½Èý¸ö¡°²¨´Î¡±½øÐУ¬µÚÒ»²¨´ÎµÄ²É¼¯½ô½ôÌù½üµ±Ç°Ê±¼ä£¬²¢ÇÒ±£³Ö¼«¸ßµÄƵÂÊ£¬ÕâÒ»²¨´ÎÊÇÒª±£Ö¤×îÔç×î¿ìµØ²É¼¯µ½µ±Ç°µÄÐÂÉúÊý¾Ý£¬µÚ¶þ²¨´Î²É¼¯µÄÊǹýȥij¸öʱ¼äÇø¼äÉϵÄÊý¾Ý£¬Ê±¼äÆ«ÒÆ¿ÉÄÜÔÚÊ®¼¸Ãëµ½¼¸·ÖÖÓ²»µÈ£¬ÕâÈ¡¾öÓÚÄ¿±êÊý¾ÝÔ´µÄÊý¾ÝÑӳٳ̶ȣ¬µÚ¶þ²¨´ÎÊÇÒ»¸öÃ÷ÏԵġ°²¹³¥¡±²Ù×÷£¬ÓÃÓڲɼ¯ÔÚµÚÒ»²¨´Î½øÐÐʱ»¹Î´ÔÚÊý¾Ý¿âÖоÍÐ÷µÄÊý¾Ý£¬µÚÈý²¨´ÎÔòÊÇ×îºóµÄ¡°Íеס±²Ù×÷£¬ËüµÄʱ¼äÆ«ÒÆ»á¸ü´ó£¬Ä¿µÄÊÇ×îºóÒ»´Î²¹Â¼Êý¾Ý£¬±£Ö¤Êý¾ÝµÄÍêÕûÐÔ¡£
¶à²¨´Î²É¼¯µÄ·½°¸»áµ¼Ö³öÏÖÖØ¸´Êý¾Ý£¬Òò´ËÐèÒª½øÐÐÈ¥ÖØ²Ù×÷£¬ÎÒÃǰÑÕâ¸ö¹¤×÷½»¸øÁËÁ÷´¦Àí×é¼þ£¬ÀûÓÃSpark
StreamingµÄcheckpoint»úÖÆ£¬ÎÒÃÇ»áÔÚÁ÷ÉÏcacheס½üÒ»¶Îʱ¼äÄÚµÄÊý¾Ý×÷ÎªÈ¥ÖØÊ±µÄ±È¶ÔÊý¾Ý£¬µ±³¬¹ýÉ趨µÄTTL£¨Time-To-Live£©Ê±£¬Êý¾Ý»á´ÓÁ÷ÉÏÒÆ³ý¡£ |