±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬±¾ÎÄÖ÷Òª·ÖÏíµ±µ±ÍøÓ¦Óÿò¼ÜddframeÑз¢£¬ÒÔ¼°elastic-job¿ªÔ´ÏîÄ¿µÄ10ÏîÌØÐÔ¡£Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£ |
|
Ò»¡¢ÎªÊ²Ã´ÐèÒª×÷Òµ£¨¶¨Ê±ÈÎÎñ£©£¿
×÷Òµ¼´¶¨Ê±ÈÎÎñ¡£Ò»°ãÀ´Ëµ£¬ÏµÍ³¿ÉʹÓÃÏûÏ¢´«µÝ´úÌæ²¿·ÖʹÓÃ×÷ÒµµÄ³¡¾°¡£Á½ÕßÈ·ÓÐÏàËÆÖ®´¦¡£¿É»¥ÏàÌæ»»µÄ³¡¾°£¬Èç¶ÓÁÐ±í¡£½«´ý´¦ÀíµÄÊý¾Ý·ÅÈë¶ÓÁÐ±í£¬È»ºóʹÓÃÆµÂʼ«¶ÌµÄ¶¨Ê±ÈÎÎñÀÈ¡¶ÓÁбíµÄÊý¾Ý²¢´¦Àí¡£ÕâÖÖÇé¿öʹÓÃÏûÏ¢Öмä¼þµÄÍÆËÍģʽ¿É¸üºÃµÄ´¦ÀíʵʱÐÔÊý¾Ý¡£¶øÇÒ»ùÓÚÊý¾Ý¿âµÄÏûÏ¢´æ´¢ÍÌÍÂÁ¿Ô¶Ô¶Ð¡ÓÚ»ùÓÚÎļþµÄ˳Ðò×·¼ÓÏûÏ¢´æ´¢¡£

µ«ÔÚijЩ³¡¾°ÏÂÔò²»ÄÜ»¥»»£º
ʱ¼äÇý¶¯ OR ʼþÇý¶¯£ºÄÚ²¿ÏµÍ³Ò»°ã¿ÉÒÔͨ¹ýʼþÀ´Çý¶¯£¬µ«Éæ¼°µ½Íⲿϵͳ£¬ÔòÖ»ÄÜʹÓÃʱ¼äÇý¶¯¡£È磺ץȡÍⲿϵͳ¼Û¸ñ¡£Ã¿Ð¡Ê±×¥È¡£¬ÓÉÓÚÊÇÍⲿϵͳ£¬²»ÄÜÏñÄÚ²¿ÏµÍ³Ò»Ñù·¢ËÍʼþ´¥·¢Ê¼þ¡£
ÅúÁ¿´¦Àí OR ÖðÌõ´¦Àí£ºÅúÁ¿´¦Àí¶Ñ»ýµÄÊý¾Ý¸ü¼Ó¸ßЧ£¬ÔÚ²»ÐèҪʵʱÐÔµÄÇé¿öϱÈÏûÏ¢Öмä¼þ¸üÓÐÓÅÊÆ¡£¶øÇÒÓеÄÒµÎñÂß¼Ö»ÄÜÅúÁ¿´¦Àí£¬È磺µçÉ̹«Ë¾Óë¿ìµÝ¹«Ë¾½áË㣬һ¸öÔ½áËãÒ»´Î£¬²¢ÇÒ¸ù¾ÝËÍ»õµÄÊýÁ¿ÓÐÌá³É¡£±ÈÈ磬µ±ÔÂËÍ»õ³¬¹ý1000Ôò¶îÍâ¸ø¿ìµÝ¹«Ë¾¶à1%ÓŻݡ£
·ÇʵʱÐÔ OR ʵʱÐÔ£ºËäÈ»ÏûÏ¢Öмä¼þ¿ÉÒÔ×öµ½ÊµÊ±´¦ÀíÊý¾Ý£¬µ«ÓеÄÇé¿ö²¢²»ÐèÒªÈçµÄʵʱ¡£È磺VIPÓû§½µ¼¶£¬Èç¹û³¬¹ý1ÄêÎÞ¹ºÂòÐÐΪ£¬Ôò×Ô¶¯½µ¼¶¡£ÕâÀàÐèÇóûÓÐÇ¿ÁÒµÄʱ¼äÒªÇ󣬲»ÐèÒª°´ÕÕʱ¼ä¾«È·µÄ½µ¼¶VIPÓû§¡£
ϵͳÄÚ²¿ OR ϵͳ½âñî¡£×÷ÒµÒ»°ã·â×°ÔÚϵͳÄÚ²¿£¬¶øÏûÏ¢Öмä¼þ¿ÉÓÃÓÚϵͳ¼ä½âñî¡£
¶þ¡¢µ±µ±Ö®Ç°ÔÚʹÓÃʲô×÷ҵϵͳ£¿
µ±µ±Ö®Ç°Ê¹ÓõÄ×÷ҵϵͳ±È½ÏÉ¢ÂÒ£¬¸÷×ÔΪս£¬´óÖ·ÖΪÒÔÏÂ4ÖÖ£º
Quartz£ºJavaÊÂʵÉϵĶ¨Ê±ÈÎÎñ±ê×¼¡£µ«Quartz¹Ø×¢µãÔÚÓÚ¶¨Ê±ÈÎÎñ¶ø·ÇÊý¾Ý£¬²¢ÎÞÒ»Ì׸ù¾ÝÊý¾Ý´¦Àí¶ø¶¨ÖÆ»¯µÄÁ÷³Ì¡£ËäÈ»Quartz¿ÉÒÔ»ùÓÚÊý¾Ý¿âʵÏÖ×÷ÒµµÄ¸ß¿ÉÓ㬵«È±ÉÙ·Ö²¼Ê½²¢ÐÐÖ´ÐÐ×÷ÒµµÄ¹¦ÄÜ¡£
TBSchedule£º°¢ÀïÔçÆÚ¿ªÔ´µÄ·Ö²¼Ê½ÈÎÎñµ÷¶Èϵͳ¡£´úÂëÂԳ¾ɣ¬Ê¹ÓÃtimer¶ø·ÇÏ̳߳ØÖ´ÐÐÈÎÎñµ÷¶È¡£ÖÚËùÖÜÖª£¬timerÔÚ´¦ÀíÒì³£×´¿öʱÊÇÓÐȱÏݵġ£¶øÇÒTBSchedule×÷ÒµÀàÐͽÏΪµ¥Ò»£¬Ö»ÄÜÊÇ»ñÈ¡/´¦ÀíÊý¾ÝÒ»ÖÖģʽ¡£»¹ÓоÍÊÇÎĵµÈ±Ê§±È½ÏÑÏÖØ¡£
Crontab£ºLinuxϵͳ¼¶µÄ¶¨Ê±ÈÎÎñÖ´ÐÐÆ÷¡£È±·¦·Ö²¼Ê½ºÍ¼¯ÖйÜÀí¹¦ÄÜ¡£
Perl£ºÒÅÁôϵͳʹÓã¬Ä¿Ç°ÒѲ»·ûºÏ¹«Ë¾µÄJava»¯Õ½ÂÔ¡£
Èý¡¢elastic-jobµÄÀ´Àú
elastic-jobÔ±¾Êǵ±µ±JavaÓ¦Óÿò¼ÜddframeµÄÒ»²¿·Ö£¬±¾Ãûdd-job¡£
ddframe°üÀ¨±àÂë¹æ·¶£¬¿ª·¢¿ò¼Ü£¬¼¼Êõ¹æ·¶£¬¼à¿ØÒÔ¼°·Ö²¼Ê½×é¼þ¡£ddframe¹æ»®·ÖΪ4¸öÑݽø½×¶Î£¬Ä¿Ç°´¦ÓÚµÚ2½×¶Î¡£3¡¢4½×¶ÎÉæ¼°µÄ¼¼Êõ×é¼þ²»´ú±íµ±µ±Ã»ÓÐʹÓã¬Ö»ÊÇddframe»¹Î´Í³Ò»¹æ»®¡£

ddframeÓɸ÷ÖÖÄ£¿é×é³É£¬¾ùÒÑdd-¿ªÍ·£¬Èçdd-container£¬dd-soa£¬dd-rdb£¬dd-jobµÈ¡£µ±µ±Ï£Íû½«ddframeµÄ¸÷¸öÄ£¿éÓ빫˾»·¾³½âñî²¢¿ªÔ´ÒÔ·´À¡ÉçÇø¡£Ö®Ç°¿ªÔ´µÄDubboÀ©Õ¹°æ±¾DubboX¼´ÊÇdd-soaµÄºËÐÄÄ£¿é¡£¶ø±¾´Î½éÉܵÄelastic-jobÔòÊÇdd-jobµÄ¿ªÔ´²¿·Ö£¬ÆäÖÐ¼à¿Ø£¨µ«¿ªÔ´ÁË¼à¿Ø·½·¨£©ºÍddframeºËÐĽÓÈëµÈ²¿·Ö²¢Î´¿ªÔ´¡£
ËÄ¡¢elastic-job°üº¬µÄ¹¦ÄÜ
·Ö²¼Ê½£º×îÖØÒªµÄ¹¦ÄÜ£¬Èç¹ûÈÎÎñ²»ÄÜÔÚ·Ö²¼Ê½µÄ»·¾³ÏÂÖ´ÐУ¬ÄÇôֱ½ÓʹÓÃQuartz¾Í¿ÉÒÔÁË¡£
ÈÎÎñ·ÖƬ£ºÊÇelastic-jobÖÐ×îÖØÒªÒ²ÊÇ×îÄÑÀí½âµÄ¸ÅÄî¡£ÈÎÎñµÄ·Ö²¼Ê½Ö´ÐУ¬ÐèÒª½«Ò»¸öÈÎÎñ²ð·ÖΪn¸ö¶ÀÁ¢µÄÈÎÎñÏȻºóÓÉ·Ö²¼Ê½µÄ·þÎñÆ÷·Ö±ðÖ´ÐÐijһ¸ö»ò¼¸¸ö·ÖƬÏî¡£
µ¯ÐÔÀ©ÈÝËõÈÝ£º½«ÈÎÎñ²ð·ÖΪn¸öÈÎÎñÏîºó£¬¸÷¸ö·þÎñÆ÷·Ö±ðÖ´Ðи÷×Ô·ÖÅäµ½µÄÈÎÎñÏî¡£Ò»µ©ÓÐеķþÎñÆ÷¼ÓÈ뼯Ⱥ£¬»òÏÖÓзþÎñÆ÷ÏÂÏߣ¬elastic-job½«ÔÚ±£Áô±¾´ÎÈÎÎñÖ´Ðв»±äµÄÇé¿öÏ£¬Ï´ÎÈÎÎñ¿ªÊ¼Ç°´¥·¢ÈÎÎñÖØ·ÖƬ¡£¾ÙÀý˵Ã÷£ºÓÐ3̨·þÎñÆ÷£¬·ÖΪ10¸öƬ¡£Ôò·ÖƬÏî·ÖÅäÈçÏ£º{server1:
[0,1,2], server2: [3,4,5], server3: [6,7,8,9]}¡£Èç¹ûһ̨·þÎñÆ÷±ÀÀ££¬Ôò·ÖƬÏî·ÖÅäÈçÏ£º{server1:
[0,1,2,3,4], server2: [5,6,7,8,9]}¡£Èç¹ûÐÂÔöһ̨·þÎñÆ÷£¬Ôò·ÖƬÏî·ÖÅäÈçÏ£º{server1:
[0,1], server2: [2,3] , server3: [4,5,6] , server4:
[7,8,9]}¡£
Îȶ¨ÐÔ£ºÔÚ·þÎñÆ÷ÎÞ²¨¶¯µÄÇé¿öÏ£¬²¢²»»áÖØÐÂ·ÖÆ¬£»¼´Ê¹·þÎñÆ÷Óв¨¶¯£¬ÏÂ´Î·ÖÆ¬µÄ½á¹ûÒ²»á¸ù¾Ý·þÎñÆ÷IPºÍ×÷ÒµÃû³Æ¹þÏ£ÖµËã³öÎȶ¨µÄ·ÖƬ˳Ðò£¬¾¡Á¿²»×ö´óµÄ±ä¶¯¡£
¸ßÐÔÄÜ£ºelastic-job»á½«×÷ÒµÔËÐÐ״̬µÄ±ØÒªÐÅÏ¢¸üе½×¢²áÖÐÐÄ£¬µ«ÎªÁË¿¼ÂÇÐÔÄÜÎÊÌ⣬¿ÉÒÔÎþÉüһЩ¹¦ÄÜ£¬¶ø»»È¡ÐÔÄܵÄÌáÉý¡£
ÃݵÈÐÔ£ºelastic-job¿ÉÎþÉü²¿·ÖÐÔÄÜÓÃÒÔ±£Ö¤Í¬Ò»·ÖƬÏî²»»áͬʱÔÚÁ½¸ö·þÎñÆ÷ÉÏÔËÐС£
Ê§Ð§×ªÒÆ£ºµ¯ÐÔÀ©ÈÝËõÈÝÔÚÏ´Î×÷ÒµÔËÐÐÇ°ÖØ·ÖƬ£¬µ«±¾´Î×÷ÒµÖ´ÐеĹý³ÌÖУ¬ÏÂÏߵķþÎñÆ÷Ëù·ÖÅäµÄ×÷Òµ½«²»»áÖØÐ±»·ÖÅä¡£Ê§Ð§×ªÒÆ¹¦ÄÜ¿ÉÒÔÔÚ±¾´Î×÷ÒµÔËÐÐÖÐÓÿÕÏзþÎñÆ÷ץȡ¹Â¶ù×÷Òµ·ÖƬִÐС£Í¬ÑùÊ§Ð§×ªÒÆ¹¦ÄÜÒ²»áÎþÉü²¿·ÖÐÔÄÜ¡£
״̬¼à¿Ø£º¼à¿Ø×÷ÒµµÄÔËÐÐ״̬£¬¿ÉÒÔ¼à¿ØÊý¾Ý´¦Àí¹¦ÄܺÍʧ°Ü´ÎÊý£¬×÷ÒµÔËÐÐʱ¼äµÈ¡£ÊÇÃݵÈÐÔ£¬Ê§Ð§×ªÒƱØÐëµÄ¹¦ÄÜ¡£
¶à×÷ҵģʽ£º×÷Òµ¿É·ÖΪ¼òµ¥ºÍÊý¾ÝÁ÷´¦ÀíÁ½ÖÖģʽ£¬Êý¾ÝÁ÷ÓÖ·ÖΪ¸ßÍÌÍ´¦ÀíģʽºÍ˳ÐòÐÔ´¦Àíģʽ£¬ÆäÖиßÍÌÍ´¦Àíģʽ¿ÉÒÔ¿ªÆô×ã¹»¶àµÄÏ߳̿ìËٵĴ¦ÀíÊý¾Ý£¬¶øË³ÐòÐÔ´¦Àíģʽ½«Ã¿¸ö·ÖƬÏî·ÖÅäµ½Ò»¸ö¶ÀÁ¢Ị̈߳¬ÓÃÓÚ±£Ö¤Í¬Ò»·ÖƬµÄ˳ÐòÐÔ£¬ÕâµãÀàËÆÓÚkafkaµÄ·ÖÇøË³ÐòÐÔ¡£
ÆäËûһЩ¹¦ÄÜ£¬Èç´í¹ýÈÎÎñÖØÖ´ÐУ¬µ¥»ú²¢Ðд¦Àí£¬ÈÝ´í´¦Àí£¬SpringÃüÃû¿Õ¼äÖ§³Ö£¬ÔËάƽ̨µÈ¡£
Îå¡¢elastic-jobµÄ²¿ÊðºÍʹÓÃ
½«Ê¹ÓÃelastic-job¿ò¼ÜµÄjar/warÁ¬½Óͬһ¸ö»ùÓÚZookeeperµÄ×¢²áÖÐÐļ´¿É¡£

×÷Òµ¿ò¼ÜÖ´ÐÐÊý¾Ý²¢²»ÏÞÓÚÊý¾Ý¿â£¬ÇÒ×÷Òµ¿ò¼Ü±¾ÉíÊDz»¶ÔÊý¾Ý½øÐйØÁªµÄ¡£×÷Òµ¿ÉÒÔÓÃÓÚ´¦ÀíÊý¾Ý£¬Îļþ£¬APIµÈÈκβÙ×÷¡£
ʹÓÃelastic-jobËùÐèÒª¹Ø×¢µÄ½ö½öÊǽ«ÒµÎñ´¦ÀíÂß¼ºÍ¿ò¼ÜËù·ÖÅäµÄ·ÖƬÏîÆ¥Åä²¢´¦Àí£¬È磺Èç¹û·ÖƬÏîÊÇ1£¬Ôò»ñÈ¡idÒÔ1½áβµÄÊý¾Ý´¦Àí¡£ËùÒÔÈç¹ûÊÇ´¦ÀíÊý¾ÝµÄ»°£¬×î¼Ñʵ¼ùÊǽ«×÷Òµ·ÖƬÏî¹æÔòºÍÊý¾ÝÖмä²ã¹æÔò¶ÔÓ¦¡£
ͨ¹ýÉÏÃæµÄ²¿Êðͼ¿ÉÒÔ¿´³öÀ´£¬×÷Òµ·ÖƬֻÊǸöÂß¼¸ÅÄ·ÖƬºÍʵ¼ÊÊý¾ÝÆäʵ¿ò¼ÜÊDz»×öÈÎºÎÆ¥Åä¹ØÏµµÄ¡£¶ø¸ù¾Ý·ÖƬÏîºÍʵ¼ÊÒµÎñÈçºÎ¹ØÁª£¬Êdzɹ¦Ê¹ÓÃelastic-jobµÄ¹Ø¼üËùÔÚ¡£ÎªÁ˲»ÈôúÂëдÆðÀ´ºÜÎÞÁÄ£¬¿´ÆðÀ´Ïñif(shardingItem
== 1) {do xxx} else if (shardingItem == 2) {do xxx}£¬elastic-jobÌṩÁË×Ô¶¨Òå²ÎÊý£¬¿É½«·ÖƬÏîÐòºÅºÍʵ¼ÊÒµÎñ×öÓ³Éä¡£±ÈÈçÉèÖÃΪ1=±±¾©£¬2=ÉϺ£¡£ÄÇô´úÂëÖпÉÒÔͨ¹ý±±¾©»òÊÇÉϺ£µÄö¾Ù£¬´ÓÒµÎñÖеı±¾©²Ö¿â»òÉϺ£²Ö¿âÈ¡Êý¾Ý¡£elastic-job¸ü¶àµÄ»¹ÊǹØ×¢×÷Òµµ÷¶ÈºÍ·Ö²¼Ê½·ÖÅ䣬´¦ÀíÊý¾Ý»¹Êǽ»ÓÉÊý¾ÝÖмä²ã¸üºÃЩ¡£
³ÏÈç¸Õ²ÅËù˵£¬×î¼Ñʵ¼ùÊǽ«×÷Òµ·ÖƬÏî¹æÔòºÍÊý¾ÝÖмä²ã¹æÔò¶ÔÓ¦£¬Ê¡È¥×÷Òµ·ÖƬʱ£¬ÔÙ´ÎÊÊÅäÊý¾ÝÖмä²ãµÄ·ÖƬÂß¼¡£
Áù¡¢¶Ô¿ªÔ´²úÆ·µÄ¿ª·¢ÀíÄî
ΪÁËÈøÐÐËȤµÄÈË·ÅÐÄʹÓã¬ÎÒÏë·ÖÏíÒ»ÏÂÎÒÃǶԿªÔ´²úÆ·µÄ¿ª·¢ÀíÄî¡£
ÓÃÐÄд´úÂë¡£´úÂëÊÇÏîÄ¿µÄΨһºËÐĺͲú³ö£¬ÈκÎÒ»ÐеĴúÂë¶¼ÐèÒªÓÃÐÄ˼¿¼ÓÅÑÅÐÔ£¬¿É¶ÁÐÔ£¬ºÏÀíÐÔ¡£ÓÅÑÅÐÔ¿´ËƼòµ¥µÄ¼¸¸ö×Ö£¬ÆäʵʵÏÖµÄÄѶȷdz£´ó¡£Ã¿¸öÈËÐÄÖж¼ÓÐ×Ô¼º¶Ô´úÂëµÄÀí½â£¬¶øelastic-jobÒ²ºÃ£¬ddframeÒ²ºÃ£¬¶¼²»Êdzö×ÔÒ»ÈËÖ®ÊÖ¡£¶Ô´úÂëÓÅÑÅÐÔµÄȨºâ£¬ÊDZȽÏÄѰѿصġ£ºóÃæ¼¸Ï¿ÉÒÔÀí½âΪ¶ÔµÚÒ»ÏîµÄ²¹³ä£¬»ò¾ßÌåµÄʵÏÖ˼·¡£
´úÂëÕû½à¸É¾»µ½¼«Ö¡£¼òµ¥µã˵¾ÍÊÇÖØ¶È´úÂë½àñ±»¼Õß¡£Ö»ÓдúÂëÆ¯ÁÁÕû½à£¬ÆäËû¿ªÔ´°®ºÃÕß²ÅÔ¸ÒâÔĶÁ´úÂ룬½ø¶øÕÒ³öÏîÄ¿ÖеÄbugºÍ¹±Ï׸ßÖÊÁ¿´úÂë¡£
¼«¼ò´úÂë, ¸ß¶È¸´Óã¬ÎÞÖØ¸´´úÂëºÍÅäÖá£JavaÉú̬ȦµÄÌØµãÊǸßÖÊÁ¿µÄ¿ªÔ´²úÆ·¼«¶à¡£ÎÒÃǾ¡Á¿¿¼ÂǸ´ÓÃÂÖ×Ó£¬±ÈÈçÏîÄ¿ÖдóÁ¿Óõ½lombok¼ò»¯´úÂ룻µ«Ò²²»»áÎÞÔÔòµÄʹÓÿªÔ´²úÆ·£¬ÎÒÃÇÇãÏòÓÚ°Ñ¿ªÔ´²úÆ··ÖΪ»ýľÀàºÍ´óÏÃÀà¡£ÏîÄ¿ÖÐÒ»°ãÖ»¿¼ÂÇʹÓûýľÀà´î½¨ÊôÓÚÎÒÃÇ×Ô¼ºµÄ´óÏ㬶ø²»»áÖ±½ÓÓÃÆäËûÒѳÉÐ͵ĴóÏá£javaϵµÄ¹«Ë¾ÓÐÁ½ÖÖ²»Í¬µÄÉùÒô£¬Óµ±§¿ªÔ´£¬»òÍêÈ«²»Ê¹ÓÿªÔ´¡£ÎÒÃǵĿ´·¨ÊǼÈȻѡÔñʹÓÃjava£¬¾ÍÓ¦¸Ã×ñÑjavaµÄÀíÄȥӵ±§javaÕâЩÄêÀÛ»ýµÄ³ÉÊì¶«Î÷¡£javaÏà±ÈÆäËûÐÂÐËÓïÑÔ£¬ÔÚÓï·¨ÉÏ¿ÉÄÜûʲôÓÅÊÆ£¬µ«ÔÚ¹ã¶ÈÉÏ»¹ÊÇÉÙÓÐÆäËûÉú̬Ȧ¿É±ÈÄâ¡£
µ¥Ò»ÐèÇó¿É²»¿¼ÂÇÀ©Õ¹ÐÔ£»Á½¸öÀàËÆÐèÇóʱÔÙÌáÁ¶¡£ÎªÁ˲»Ã¤Ä¿×·ÇóËùνµÄ¼«Ö£¬ÎÒÃÇÓÃÕâÌõ¹æÔò£¬¾¡Á¿ÌáÉý½»¸¶µÄËÙ¶È¡£
Ä£¿é³éÏó»®·ÖºÏÀí¡£ÕâµãÒ²ºÜÄÑÓñê×¼ºâÁ¿¡£ÒÔelastic-job¾ÙÀý£ºelastic-jobºËÐÄ´úÂë·ÖΪ4¿é£¬core£¬spring£¬consoleºÍexample£»·Ö±ðÓÃÓÚ·ÅÖúËÐÄ£¬springÖ§³Ö£¬¿ØÖÆÌ¨ºÍ´úÂëʾÀý¡£ÔÚÏîÄ¿¼¶±ðÉÏ×ö²ð·Ö¡£¶øcoreÖн«°ü·ÖΪapi£¬exception£¬pluginºÍinternal¡£ÓÃÓÚ·ÅÖöÔÍâ·¢²¼µÄ½Ó¿Ú¡¢Òì³££¬Ïò×îÖÕÓû§ÌṩµÄ¿ÉÀ©Õ¹²å¼þÒÔ¼°·â×°ºÃµÄÄÚ²¿ÊµÏÖ¡£ÄÚ²¿ÊµÏÖµÄÈκθ͝£¬¶¼²»»áÓ°Ïì¶ÔÍâ½Ó¿ÚµÄ±ä¶¯£¬Óû§×Ô¶¨ÒåµÄ²å¼þ£¬Ò²²»»áÓ°ÏìÄÚ²¿´úÂëµÄÎȶ¨ÐÔ¡£
ÈçÎÞÌØÊâÀíÓÉ, ²âÊÔÐèÈ«¸²¸Ç¡£elastic-jobºËÐÄÄ£¿éµÄ²âÊÔ¸²¸ÇÂÊÊÇ95%ÒÔÉÏ¡£ËäÈ»µ¥Ôª²âÊÔ¸²¸ÇÂÊÔÚ·Ö²¼Ê½µÄ¸´ÔÓ»·¾³Öв¢ÎÞÌ«´ó˵·þÁ¦£¬µ«ÖÁÉÙÖ¤Ã÷ÏîÄ¿ÖкÜÉÙ³öÏֵͼ¶Âß¼´íÎó¡£
¶ÔÖÊÁ¿µÄ¶¨Òå¡£´úÂë¿É¶ÁÐÔ > ´úÂë¿É²âÐÔ > Ä£¿é½âñîÉè¼Æ > ¹¦ÄÜÕýÈ·ÐÔ >
ÐÔÄÜ > ¹¦ÄÜ¿ÉÀ©Õ¹ÐÔ¡£Ö»ÓдúÂë¿É¶Á£¬¿É²âÊÔ£¬¿É100%ÕÆ¿Ø£¬ÏîÄ¿²Å¿É³ÖÐø·¢Õ¹¡£¹¦ÄÜÓÐȱÏÝ¿ÉÒÔÐÞ¸´£¬ÐÔÄܲ»¹»¿ÉÒÔÓÅ»¯£¬¶ø´úÂë²»ÇåÎúÔòÏîÄ¿»á½¥½¥±äΪºÚºÐ¡£ËùÒÔ¶ÔÓÚ¿ò¼ÜÀà²úÆ·£¬ÎÒÃÇÈÏΪÖÊÁ¿
> ʱ¼ä > ³É±¾¡£
ÎĵµÇåÎú¡£
Æß¡¢Î´À´Õ¹Íû
¼à¿ØÌåϵÓдýÌá¸ß£¬Ä¿Ç°Ö»ÄÜͨ¹ý×¢²áÖÐÐÄ×ö¼òµ¥µÄ´æ»îºÍÊý¾Ý»ýѹ¼à¿Ø¡£Î´À´ÐèÒª×öµÄ¼à¿Ø²¿·ÖÓУº
1. Ôö¼Ó¿É¼à¿ØÎ¬¶È£¬Èç×÷ÒµÔËÐÐʱ¼äµÈ¡£
2. »ùÓÚJMXµÄÄÚ²¿×´Ì¬¼à¿Ø¡£
3. »ùÓÚÀúÊ·µÄÈ«Á¿Êý¾Ý¼à¿Ø£¬½«ËùÓÐ¼à¿ØÊý¾Ýͨ¹ýflumeµÈÐÎʽ·¢µ½Íⲿ¼à¿ØÖÐÐÄ£¬Ìṩʵʱ·ÖÎö¹¦ÄÜ¡£
Ôö¼ÓÈÎÎñ¹¤×÷Á÷£¬ÈçÈÎÎñÒÀÀµ£¬³õʼ»¯ÈÎÎñ£¬ÇåÀíÈÎÎñµÈ¡£
Ê§Ð§×ªÒÆ¹¦ÄܵÄʵʱÐÔÌáÉý¡£
¸ü¶à×÷ÒµÀàÐÍÖ§³Ö£¬ÈçÎļþ£¬MQµÈÀàÐÍ×÷ÒµµÄÖ§³Ö¡£
¸ü¶à·ÖƬ²ßÂÔÖ§³Ö¡£
ÏîÄ¿µÄ¿ªÔ´µØÖ·£ºhttps://github.com/dangdangdotcom/elastic-job
Ï£Íû´ó¼Ò¶à¹Ø×¢£¬¹²Í¬¹±Ï×´úÂë¡£
Q&A
Q1£ºÇëÎÊÊ§Ð§×ªÒÆÖÐÈçºÎÅжÏʧЧ£¿¶ÔÈÎÎñ±¾ÉíʵÏÖÓÐʲôÏÞÖÆ£¿
Ê§Ð§×ªÒÆÄ¿Ç°Í¨¹ýZookeeper¼àÌý·ÖƬÏîÁÙʱ½ÚµãÅжϡ£elastic-job»á¾¹ý×¢²áÖÐÐĻỰ¹ýÆÚʱ¼ä²ÅÄܸÐÖªÈÎÎñ¹Òµô¡£Ê§Ð§×ªÒÆÓÐÁ½ÖÖÐÎʽ£º1¡¢ÈÎÎñ¹Òµô£¬elastic-job»áÕÒ¿ÕÏеÄ×÷Òµ·þÎñÆ÷£¨¿ÉÄÜÊÇδ·ÖÅäÈÎÎñµÄ£¬Ò²¿ÉÄÜÊÇÍê³ÉÖ´Ðб¾´ÎÈÎÎñÖ´Ðеģ©Ö´ÐС£2¡¢Èç¹ûµ±Ê±Ã»ÓпÕÏзþÎñÆ÷£¬Ôò½«ÔÚij·þÎñÆ÷Íê³É·ÖÅäµÄÈÎÎñʱץȡδ·ÖÅäµÄ·ÖƬÏî¡£
Q2£ºZookeeperµÄ×÷ÓÃÊDZ£´æÈÎÎñÐÅÏ¢Âð£¬Èç¹ûZookeeper¹ÒÁË»áÓ°ÏìÈÎÎñÖ´ÐÐÂð£¿
ZookeeperĿǰµÄznode·ÖËÄÀ࣬config£¬servers£¬execution£¬leader¡£configÓÃÓÚ±£´æ·Ö²¼Ê½×÷ÒµµÄÈ«¾Ö¿ØÖÆ£¬È磬·Ö¶àÉÙÆ¬£¬Òª²»ÒªÖ´ÐÐmisfire£¬cron±í´ïʽ¡£serversÓÃÓÚ×¢²á×÷Òµ·þÎñÆ÷״̬ºÍ·ÖƬÐÅÏ¢¡£executionÒÔ·ÖÆ¬µÄά¶È´æ´¢×÷ÒµÔËÐÐʱ״̬¡£leaderÓÃÓÚ´æ´¢Ö÷½Úµã¡£elastic-job×÷ÒµÖ´ÐÐÊÇÎÞÖÐÐÄ»¯µÄ£¬µ«Ö÷½ÚµãÆðµ½Ðµ÷µÄ×÷Óã¬Èç£ºÖØ·ÖƬ¡¢ÇåÀíÉÏ´ÎÔËÐÐʱÐÅÏ¢µÈ¡£
Q3£ºÔÚÈÎÎñ´¦ÀíÉÏ¿ÉÒÔÓëspring batch¼¯³ÉÂð£¿
spring batch֮ǰ¹Ø×¢¹ý£¬µ«Ä¿Ç°elastic-job»¹Ã»Óм¯³É¡£elastic-jobµÄspringÖ§³ÖÊÇ×Ô¶¨ÒåÁËjobµÄÃüÃû¿Õ¼ä£¬¸ü¼ò»¯ÁË»ùÓÚspringµÄÅäÖ㬲¢ÇÒ¿ÉÒÔʹÓÃspring×¢ÈëµÄbean¡£spring
batchÒ²ÊǺܺõÄ×÷Òµ¿ò¼Ü£¬°üÀ¨spring-quartzÒ²ºÜ²»´í£¬µ«·Ö²¼Ê½¹¦Äܲ¢²»³ÉÊì¡£ËùÒÔÔÚÕâÖ®Éϸ͝ÄѶȱȽϴ󣬶øÇÒelastic-job¸üÏ£Íû×öÒ»¸ö²»ÒÀÀµÓÚspring£¬¶øÊÇÄÜÈÚÈëspringµÄÂÌÉ«²úÆ·¡£
Q4£ºÕë¶Ô¼òµ¥ºÍÊý¾ÝÁ÷£¬Äܹ»ËµËµ¾ßÌå·ÖƬÊÇÔõô´¦ÀíµÄÂð£¿
¼òµ¥µÄ×÷Òµ¾ÍÊÇδ¾¹ýÈκÎÒµÎñÂß¼µÄ·â×°£¬Ö»ÊÇÌṩÁËÒ»¸öexecute·½·¨£¬¶¨Ê±´¥·¢£¬µ«ÊÇÔö¼ÓÁË·Ö²¼Ê½·ÖƬ¹¦ÄÜ¡£¿ÉÒÔ¼òµ¥Àí½âΪquartzµÄ·Ö²¼Ê½°æ±¾¡£quartzËäÈ»¿ÉÒÔÖ§³Ö»ùÓÚÊý¾Ý¿âµÄ·Ö²¼Ê½¸ß¿ÉÓ㬵«²»ÄÜ·ÖÆ¬¡£Ò²¾ÍÊÇ˵£¬Á½Ì¨·þÎñÆ÷£¬Ö»ÄÜÒ»Ö÷Ò»±¸£¬²»ÄÜͬʱ¸ºÔؾùºâµÄÔËÐС£Êý¾ÝÁ÷ÀàÐÍ×÷Òµ²ÎÕÕÁ˰¢Àï֮ǰ¿ªÔ´µÄTBSchedule£¬½«Êý¾Ý´¦Àí·ÖΪfetchDataºÍprocessData¡£ÏȽ«Êý¾Ý´ÓÊý¾Ý¿â£¬Îļþϵͳ£¬»òÆäËûÊý¾ÝÔ´È¡³öÀ´£¬È»ºóprocessData¼¯Öд¦Àí£¬¿ÉÒÔÖðÌõ´¦Àí£¬¿ÉÒÔÅúÁ¿´¦Àí£¨Õâ¿éδÀ´½«¼ÓÉÏ£©¡£processDataÊǶàÏß³ÌÖ´Ðеģ¬Êý¾ÝÁ÷ÀàÐÍ×÷Òµ¿ÉÔÙϸ·ÖΪÁ½ÖÖ£¬Ò»ÖÖÊǸßÍÌÍ£¬Ò»ÖÖÊÇ˳ÐòÐÔ¡£¸ßÍÌÍ¿ÉÒÔ¿ªÆôÈÎÒâ¶àµÄÏ̲߳¢ÐÐÖ´ÐÐÊý¾Ý´¦Àí£¬¶øË³ÐòÖ´Ðлá¸ù¾Ýÿ¸ö·ÖƬÏîÒ»¸öỊ̈߳¬±£Ö¤·ÖƬÏîÖ®ÖеÄÊý¾ÝÓÐÐò£¬Õâµã²ÎÕÕÁËkafkaµÄʵÏÖ¡£Êý¾ÝÁ÷ÀàÐÍ×÷ÒµÓÐisStreamingÕâ¸ö²ÎÊý£¬ÓÃÓÚ¿ØÖÆÊÇ·ñÁ÷ʽ²»Í£ÐªµÄ´¦ÀíÊý¾Ý£¬ÀàËÆÓÀ¶¯»ú£¬Ö»ÒªÓÐÊý¾Ý£¬ÔòÒ»Ö±´¦Àí¡£µ«ÕâÖÖ×÷Òµ²»ÊʺÏÿ´ÎfetchData¶¼¶ÔÊý¾Ý¿âÔì³ÉѹÁ¦ºÜ´óµÄ³¡¾°¡£
Q5£ºÇëÎÊÈçºÎʵÏÖÒ»¸öÈÎÎñ½ö½öÖ»ÔÚÒ»¸ö½ÚµãÖ´ÐÐÒ»´Î£¿
ĿǰµÄÃݵÈÐÔ£¬ÊÇÔÚexecutionµÄznodeÖÐÔö¼ÓÁË¶Ô·ÖÆ¬Ïî״̬µÄ×¢²á£¬Èç¹û״̬ÊÇÔËÐÐÖУ¬¼´Ê¹ÓбðµÄ·þÎñÆ÷ÒªÔËÐÐÕâ¸ö·ÖƬÏelastic-jobÒ²»á¾Ü¾øÔËÐУ¬¶øÊǵȴýÕâ¸ö״̬±äΪ·ÇÔËÐеÄ״̬¡£Ã¿¸ö×÷Òµ·ÖƬÏîÆô¶¯Ê±»á¸üÐÂ״̬¡£·þÎñÆ÷ûÓв¨¶¯µÄÇé¿öÏ£¬ÊDz»´æÔÚÒ»¸ö·ÖƬ±»·Öµ½Á½¸ö·þÎñÆ÷µÄÇé¿ö¡£µ«Ò»µ©·þÎñÆ÷²¨¶¯£¬ÔÚ·ÖÆ¬µÄ˲¼äÓпÉÄܳöÏÖÕâÖÖÇé¿ö¡£¹ØÓÚ·ÖÆ¬£¬ÆäʵÊDZȽϸ´ÔÓµÄʵÏÖ¡£Ä¿Ç°·ÖƬÊÇ·¢ÏÖ·þÎñÆ÷²¨¶¯£¬»òÐÞ¸Ä·ÖÆ¬×ÜÊý£¬½«¼Ç¼һ¸ö״̬£¬¶ø·ÇÖ±½Ó·ÖƬ¡£·ÖƬ½«ÔÚÏ´Î×÷Òµ´¥·¢Ê±Ö´ÐУ¬Ö»ÓÐÖ÷½Úµã¿ÉÒÔ·ÖÆ¬£¬·ÖƬÖдӽڵ㶼½«×èÈû¡£ÎÞµ÷¶ÈÖÐÐÄʽ·Ö²¼Ê½×÷Òµ×î´óµÄÒ»¸öÎÊÌâÊÇ£¬ÎÞ·¨±£Ö¤Ö÷½Úµã×÷ÒµÒ»¶¨ÏÈÓÚÆäËû´Ó½Úµã´¥·¢¡£ËùÒÔºÜÓпÉÄÜ´Ó½ÚµãÏÈ´¥·¢Ö´ÐУ¬¶øÊ¹ÓÃ¾É·ÖÆ¬£»È»ºóÖ÷½Úµã²ÅÖØÐÂ·ÖÆ¬£¬½«Ôì³ÉÕâ´Î×÷Òµ·ÖƬ¿ÉÄܲ»Ò»Ö¡£Õâ¾ÍÐèÒªexecution½ÚµãÀ´±£Ö¤ÃݵÈÐÔ¡£Ï´ÎÖ´ÐÐʱ£¬Ö»ÒªÎÞ·þÎñÆ÷²¨¶¯£¬Ö®Ç°´íÎóµÄ·ÖƬ×ÔÈ»»áÐÞÕý¡£
Q6£ºÈç¹ûZookeeper¹ÒÁË£¬ÊÇ·ñÈ«²¿µÄÈÎÎñ¶¼¹ÒÁ˲»ÄÜÔËÐаüÀ¨ÒѾÔËÐйýÒ»´ÎµÄ£¬Èç¹ûÓÖ»Ö¸´ÁË£¬ÈÎÎñÄÜÕý³£ÔËÐÐÂ𣬻¹ÊÇÒµÎñÓ¦Ó÷þÎñÒ²ÒªÖØÐÂÆô¶¯£¿
ÆäʵZookeeperÊDz»Ì«ÈÝÒ׹ҵġ£±Ï¾¹ZookeeperÊÇ·Ö²¼Ê½¸ß¿ÉÓã¬Ò»°ã²»»áÊǵ¥Ì¨¡£Ä¿Ç°elastic-job×öµ½µÄÈÝ´íÊÇ£¬Á¬²»ÉÏZookeeperµÄ×÷Òµ·þÎñÆ÷½«Á¢¿ÌÍ£Ö¹Ö´ÐÐ×÷Òµ£¬·ÀÖ¹Ö÷½ÚµãÒÑÖØÐÂ·ÖÆ¬£¬¶øÄÔÁѵķþÎñÆ÷»¹ÔÚÖ´ÐС£Ò²¾ÍÊÇ˵£¬Zookeeper¹Òµô£¬ËùÓÐ×÷Òµ¶¼½«Í£Ö¹¡£¶ø×÷Òµ·þÎñÆ÷Ò»µ©ÓëZookeeper»Ö¸´Á¬½Ó£¬×÷ÒµÒ²½«»Ö¸´ÔËÐС£ËùÒÔZookeeper¹Òµô²»»áÓ°ÏìÊý¾Ý£¬¶øZookeeper»Ö¸´£¬×÷Òµ»á¼ÌÐøÅÜ£¬²»ÓÃÖØÆô¡£
Q7£º¿ÉÒÔ¾ßÌåµ½ÒµÎñ²ãÃæÂ𣿱ÈÈçÓиöÈÎÎñ£¬ÊÇÒ»Ñù·¢ËÍ100wµÄÓû§Óʼþ£¬ÕâʱºòÓ¦¸ÃÔõô·ÖƬ£¿Õë¶Ô·Ö²¼Ê½Êý¾Ý¿âµÄ·ÖÒ³ÔÚÔÛÃÇÕâÀïÓÖÊÇÔõô´¦ÀíµÄ£¿
100WÓû§µÄÓʼþ£¬¸öÈËÈÏΪ¿ÉÒÔ°´ÕÕÓû§idȡ죬±ÈÈç·Ö³É100¸ö·ÖƬ£¬½«Õû¸öuserid % 100£¬È»ºóÿ¸ö·ÖƬ·¢ËÍuserid½áβÊÇÈ¡Ãþ½á¹ûµÄÓʼþ¡£ÏêϸÀ´Ëµ£º·ÖƬ1·¢ËÍÒÔ01½áβµÄuseridµÄÓʼþ£¬¡£¬·ÖƬ99·¢ËÍÒÔ99½áβµÄuseridµÄÓʼþ¡£·Ö²¼Ê½Êý¾Ý¿âµÄ·ÖÒ³£¬ÀíÂÛÉÏÀ´Ëµ£¬²»ÊÇ×÷Òµ¿ò¼Ü´¦ÀíµÄ·¶³ë£¬Ó¦ÓÉÊý¾ÝÖмä²ã´¦Àí¡£Ë³±ã˵Ï£¬ddframeµÄÊý¾ÝÖмä²ã²¿·Ö£¬sharding-JDBC½«ÓÚÃ÷Äê³õ¿ªÔ´¡£Í¨¹ýÐÞ¸ÄJDBCÇý¶¯ÊµÏÖ·Ö¿â·Ö±í¡£·ÇMyCat»òcobarÕâÖÖÖмä¼þ·½Ê½£»Ò²·Ç»ùÓÚhibernate»òmybatisÕâÖÖORM·½Ê½¡£sharding-JDBCÏà¶ÔÇáÁ¿¼¶£¬Ò²¸ü¼ÓÈÝÒ×ÊÊÅä¸÷ÖÖÊý¾Ý¿âºÍORM
Q8£ºddframeÊÇÓɺܶà×é¼þ×é³É£¿Ö§³Ö¶àÓïÑÔÂð£¿
ddframeÊǺܶà×é¼þµÄ×ܳơ£·ÖΪºËÐÄÄ£¿é£¬·Ö²¼Ê½×é¼þÄ£¿éºÍ¼à¿Ø¶Ô½ÓÄ£¿éµÈ¡£ºËÐÄÄ£¿é¿ÉÒÔÀí½âΪspring-bootÕâÖÖ¿É¿ìËÙÆô¶¯£¬¿ìËٴÏîÄ¿µÄ¶«Î÷¡£
·Ö²¼Ê½×é¼þ°üÀ¨SOAµ÷ÓõÄDubbox£¬»ùÓÚ·Ö²¼Ê½×÷ÒµµÄelastic-job£¬»¹ÓиղÅÌáµ½µÄsharding-JDBC£¬ÒÔ¼°½üÆÚÔÝÎÞ¿ªÔ´¼Æ»®µÄ»º´æ¡¢MQ¡¢NoSQLµÈÄ£¿é¡£
¼à¿ØÄ£¿é¹À¼ÆÒÔºóÒ²²»»á¿ªÔ´£¬ºÍ¹«Ë¾±¾ÉíµÄÒµÎñ³¡¾°°ó¶¨Ì«½ô£¬²»ÊDz»Ï뿪Դ£¬ÊÇÎÞ·¨¿ªÔ´¡£Ö÷Òª·ÖΪÈÕÖ¾ÖÐÐÄ£¬Á÷Á¿·ÖÎöºÍϵͳ¹ØÏµµ÷ÓÃͼ¡£¼à¿Ø²¿·ÖĿǰҲ»¹ÔÚ×ö£¬²»ÊǺÜÇ¿´ó¡£
¶àÓïÑÔ·½Ã棬SOAÄ£¿éÖ§³Ö£¬DubboxµÄRESTÀ©Õ¹¾ÍÊÇΪÁËÖ§³ÖÆäËûÓïÑԵĵ÷Óá£Ê£ÏµÄÔÝʱ²»ÐС£±ÈÈçsharing-JDBC£¬Ö÷ÒªÊÇ»ùÓÚjavaµÄJDBC£¬Èç¹û¶àÓïÑÔ£¬Öмä²ãÊǸö¸üºÃµÄ·½·¨¡£
ddframeµÄÄ£¿éÃû×Ö¶¼ÊÇdd-*£¬dd-soa£¬dd-rdb£¬dd-job£¬dd-logÖ®Àà¡£elastic-job£¬sharding-JDBCµÈ£¬ÊÇΪ¿ªÔ´¶ø´Óddframe³éÀë²¢ÖØÐÂÆðµÄÃû×Ö¡£
|