±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÓÐÔÞÈ«Á´Â·Ñ¹²âÒýÇæµÄǰÆÚµ÷ÑС¢Maxim ÐÂÔöµÄÌØÐÔ¡¢Maxim µÄ¼¼Êõ¼Ü¹¹¼°À©Õ¹
GatlingµÈ£¬ Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚsegmentfault£¬ÓÉLinda±à¼¡¢ÍƼö¡£ |
|
Ò»ÄêÒÔǰ£¬ÓÐÔÞ×¼±¸ÔÚ˫ʮһµ½À´Ö®Ç°¶Ôϵͳ½øÐÐÒ»´ÎÐÔÄÜÃþµ×£¬ÒÔ±ãÌáǰ·¢ÏÖ²¢½â¾öϵͳDZÔÚÐÔÄÜÎÊÌ⣬ºÃÈÃϵͳÔÚ˫ʮһÆÚ¼ä¿ÉÒÔ´ÓÈÝÓ¦¶Ô¾çÔöµÄÁ÷Á¿¡£¹¤ÓûÉÆÆäÊ£¬±ØÏÈÀûÆäÆ÷£¬ÎÒÃÇÄÃʲô¹¤¾ßÀ´Ñ¹²âÄØ£¿ÎÒÃÇ×öÁ˺ܶàǰÆÚµ÷ÑкÍÂÛÖ¤£¬×îÖÕ¾ö¶¨»ùÓÚ
Gatling ¿ª·¢ÓÐÔÞ×Ô¼ºµÄ·Ö²¼Ê½È«Á´Â·Ñ¹²âÒýÇæ ¡ª¡ª MAXIM¡£Ò»Äê¶àÀ´£¬ÎÒÃÇʹÓà Maxim
¶Ôϵͳ×öÁ˺ܶà´ÎµÄÐÔÄÜѹ²â£¬ÔÚÌáÉýϵͳÐÔÄÜ¡¢Îȶ¨ÐÔµÄͬʱ£¬Ò²µÃÒæÓÚÀú´Îѹ²âµÄʵ¼ù¾ÑéÖ𲽸Ľø Maxim¡£
1¡¢Ç°ÆÚµ÷ÑÐ
1.1¡¢¼¼ÊõÑ¡Ð͵ĺËÐÄ¿¼Á¿
ÓÉÓÚʱ¼ä»ò³É±¾¹ØÏµ£¬ÎÒÃÇ´òËã»ùÓÚ¿ªÔ´Èí¼þ×ö¶þ´Î¿ª·¢£¬¶øÒÔϾÍÊÇÎÒÃǼ¼ÊõÑ¡ÐÍʱµÄºËÐÄ¿¼Á¿£º
½«ÇëÇó±àÅųÉÒµÎñ³¡¾°
ÒÔÓû§Ïµ¥Õâ¸ö³¡¾°ÎªÀý£¬Óû§Íê³ÉÒ»±Ê¶©µ¥£¬¿ÉÄÜÐèÒª´ò¿ªÉÌÆ·Ö÷Ò³-¼ÓÈ빺Îï³µ-Ñ¡ÔñÊÕ»õµØÖ·-ϵ¥Ö§¸¶ÕâЩ²½Ö裬¶ø´®ÆðÕâһϵÁеÄÇëÇó¾ÍÊÇËùνµÄ½«ÇëÇó±àÅųÉÒµÎñ³¡¾°
Á÷Á¿¿ØÖÆ
Á÷Á¿¿ØÖÆ¿ÉÒÔÊÇ×ÝÏòµÄ£¬ÈçÉÏÊöϵ¥³¡¾°ÖУ¬¸÷¸ö²½ÖèµÄÇëÇóÁ¿Öð½¥¼õÉÙ£¬ÕûÌå³ÊÏÖÒ»¸ö©¶·Ä£ÐÍ£»Ò²¿ÉÒÔÊǺáÏòµÄ£¬±ÈÈçÓû§ÕýÔÚä¯ÀÀ
A ÉÌÆ·µÄÉÌÆ·ÏêÇéÒ³£¬È»ºó¿´µ½ÁË B ÉÌÆ·µÄÍÆ¼ö£¬×ª¶øä¯ÀÀ B ÉÌÆ·µÄÉÌÆ·ÏêÇéÒ³
ѹÁ¦¿ØÖÆ
ָѹ²âʱ²¢·¢Óû§Êý¡¢ÍÌÍÂÁ¿(RPS / TPS)µÄ¿ØÖÆ
Êý¾Ý¸úÇëÇó²ÎÊýµÄ°ó¶¨
ѹ²âÍùÍùÉæ¼°´óÁ¿µÄ²âÊÔÊý¾Ý£¬¶øÈçºÎ°ó¶¨Êý¾ÝºÍÇëÇó²ÎÊýÊÇÎÒÃÇÐèÒª¿¼Á¿µÄ
¶Ô·Ö²¼Ê½²âÊÔµÄÖ§³Ö
ÒòΪÊÇÈ«Á´Â·Ñ¹²â£¬×ÔÈ»ÐèÒª¶ą̀ʩѹ»ú¹²Í¬Ð×÷ʩѹ£¬×ÔÈ»¶øÈ»µÄÐèÒª·Ö²¼Ê½Ö§³Ö
²âÊÔ±¨¸æ
Á¼ºÃµÄ²âÊÔ±¨¸æÊÇÎÒÃÇ·ÖÎöÐÔÄÜÎÊÌâµÄ±Ø±¸Ìõ¼þ
¶þ´Î¿ª·¢µÄ³É±¾
ÓÉÓÚʱ¼ä»òÈËÁ¦¹ØÏµ£¬ÎÒÃÇÒ²ÐèÒª¿¼ÂǶþ´Î¿ª·¢³É±¾
1.2¡¢4 ¸öÖ÷Á÷¿ªÔ´ÐÔÄܲâÊÔ¿ò¼Ü¶Ô±È
ÎÒÃǵ÷ÑÐÁËÒÔÏ 4 ¸öÖ÷Á÷¿ªÔ´ÐÔÄܲâÊÔ¿ò¼Ü£º
ApacheBench
Apache ·þÎñÆ÷×Ô´ø£¬¼òµ¥Ò×Ó㬵«²»Ö§³Ö³¡¾°±àÅÅ¡¢²»Ö§³Ö·Ö²¼Ê½£¬¶þ´Î¿ª·¢ÄѶȽϴó
JMeter
JMeter Ö§³ÖÉÏÊöºÜ¶àÌØÐÔ£¬Èç·Ö²¼Ê½¡¢Á¼ºÃµÄѹ²â±¨¸æµÈ£¬µ«Æä»ùÓÚ GUI µÄʹÓ÷½Ê½£¬Ê¹µÃµ±ÎÒÃǵÄѹ²â³¡¾°·Ç³£¸´ÔÓ²¢°üº¬ºÜ¶àÇëÇóʱ£¬Ê¹ÓÃÉϲ»¹»Áé»î£»´ËÍâÔÚÁ÷Á¿¿ØÖÆ·½ÃæµÄÖ§³ÖÒ²Ò»°ã
nGrinder
»ùÓÚ Grinder ¶þ´Î¿ª·¢µÄ¿ªÔ´ÏîÄ¿£¬Ö§³Ö·Ö²¼Ê½£¬²âÊÔ±¨¸æÁ¼ºÃ£¬µ«ºÍ JMeter Ò»Ñù£¬ÔÚ³¡¾°±àÅźÍÁ÷Á¿¿ØÖÆ·½ÃæÖ§³ÖÒ»°ã
Gatling
Ö§³Ö³¡¾°±àÅÅ¡¢Á÷Á¿¿ØÖÆ¡¢Ñ¹Á¦¿ØÖÆ£¬²âÊÔ±¨¸æÁ¼ºÃ£¬ÇÒÌṩÁËÇ¿´óµÄ DSL£¨ÁìÓòÌØ¶¨ÓïÑÔ£©·½±ã±àдѹ²â½Å±¾£¬µ«²»Ö§³Ö·Ö²¼Ê½£¬ÇÒʹÓÃ
Scala ¿ª·¢£¬ÓÐÒ»¶¨¿ª·¢³É±¾
ÒÔÉÏ£¬ÎÒÃÇ×îÖÕÑ¡Ôñ»ùÓÚ Gatling ×ö¶þ´Î¿ª·¢¡£
2¡¢Maxim ÐÂÔöµÄÌØÐÔ
Maxim ÔÚ Gatling »ù´¡ÉÏ¿ª·¢Á˺ܶàÐÂÌØÐÔ£º
Ö§³Ö·Ö²¼Ê½
Ò»¸ö¿ØÖÆÖÐÐÄ£¨Control Center£¬¸ºÔðµ÷¶È£© + ¶à¸öѹÁ¦×¢ÈëÆ÷£¨Ö¸Ê©Ñ¹»ú£©
Ìṩ GUI£¬²¢¶ÔÓû§Òþ²ØÑ¹²â¹ý³ÌµÄ¸´ÔÓÐÔ
¸ßЧµØ´´½¨¡¢ÔËÐУ¨ÊÖ¶¯/¶¨ÆÚ£©²âÊÔÈÎÎñ
¹ÜÀí²âÊÔ×ÊÔ´
²âÊÔ×ÊÔ´°üÀ¨Ñ¹²â½Å±¾¡¢Êý¾Ý¼¯£¨ÎªÑ¹²âÇëÇóÌṩ²âÊÔÊý¾Ý£¬ÓÉÊý¾Ý¿é¹¹³ÉµÄÒ»¸ö¼¯ºÏ£¬Êý¾Ý¿éÊÇ´óÁ¿²âÊÔÊý¾ÝµÄ×îС·Ö¸îµ¥Ôª£©¡¢Ñ¹Á¦×¢ÈëÆ÷
Ö§³Öѹ²â½Å±¾²ÎÊý»¯
Maxim Öв¢·¢Óû§Êý¡¢RPS¡¢³ÖÐøÊ±¼äµÈ¶¼¿ÉÒÔͨ¹ý GUI ¶¯Ì¬×¢Èëѹ²â½Å±¾
Ö§³ÖѹÁ¦×¢ÈëÆ÷ϵͳ״̬¼à¿Ø
ʵʱ¼à¿ØÑ¹Á¦×¢ÈëÆ÷µÄ CPU¡¢ÄÚ´æ¡¢I/O µÈÖ¸±ê
×Ô¶¯Éú³Éѹ²â±¨¸æ£¬±£ÁôÀúʷѹ²â±¨¸æ
²É¼¯¶à¸öѹÁ¦×¢ÈëÆ÷µÄѹ²âÈÕÖ¾£¬×Ô¶¯»ã×ÜÉú³Éѹ²â±¨¸æ£¬²¢±£ÁôÀúʷѹ²â±¨¸æ
3¡¢Maxim µÄ¼¼Êõ¼Ü¹¹
3.1¡¢Maxim µÄ×ÜÌå¼Ü¹¹ 
Maxim ¼Ü¹¹µÄÖ÷Òª¹¹³É£º
Maxim Console
Maxim Console Ö÷ÒªÏÎ½Ó GUI ºÍ Maxim Control Center£¬¸ºÔð´´½¨¡¢ÔËÐвâÊÔÈÎÎñ£¬½ÓÊÕѹÁ¦¿ØÖƲÎÊýµÈ
Maxim Control Center
Maxim µÄ¿ØÖÆÖÐÐÄ£¬ÕâÀïÖ÷Òª¸ºÔðѹ²âÈÎÎñµÄµ÷¶È¡¢¶ÁÈ¡Êý¾Ý¼¯¡¢ÉÏ´«½Å±¾ºÍÊý¾ÝÒÔ¼°¶ÁÈ¡ÈÕÖ¾²¢Éú³Éѹ²â±¨¸æ
Load Injector Cluster
ѹÁ¦×¢ÈëÆ÷¼¯Èº£¬Ö÷Òª·ÖΪ Agent ºÍ Gatling Á½²¿·Ö£¬Agent ¸ºÔð½ÓÊÕ Maxim
¿ØÖÆÖÐÐĵĵ÷¶ÈÖ¸ÁîÒÔ¼°Ïò¿ØÖÆÖÐÐÄ·´À¡±¾Ñ¹Á¦×¢ÈëÆ÷ѹ²âÇé¿ö£¬¶ø Gatling ÔòÊÇÕæÕý·¢Æðѹ²âÇëÇóµÄµØ·½£¬²¢½«Ñ¹²âÈÕ־дÈë
InfluxDB
Data Factory
ѹ²âÊý¾ÝÊ×ÏÈ»áÔÚ´óÊý¾Ýƽ̨ͨ¹ý MapReduce ÈÎÎñÉú³É£¬¶øÊý¾Ý¹¤³§¸ºÔðΪ¿ØÖÆÖÐÐĶÁÈ¡ÕâЩÊý¾Ý²¢·µ»ØÊý¾Ý¼¯
Cloud Storage
ÔÆ´æ´¢£¬Maxim ¿ØÖÆÖÐÐĻὫѹ²â½Å±¾ºÍѹ²âÊý¾ÝÉÏ´«µ½ÔÆ´æ´¢£¬µ± Agent ÊÕµ½¿ØÖÆÖÐÐĵÄÈÎÎñÖ´ÐÐÖ¸Áîʱ£¬»á´ÓÔÆ´æ´¢ÏÂÔØÑ¹²â½Å±¾ºÍ¶ÔÓ¦µÄÊý¾Ý¿é¡£Éè¼ÆÔÆ´æ´¢µÄÄ¿µÄÖ÷ÒªÊÇΪÁËÄ£ÄâÕæÊµÓû§»·¾³ÔÚ¹«Íø·¢Æðѹ²âÇëÇ󣬵«ÓÐÔÞĿǰ¶¼ÊÇ´ÓÄÚÍø·¢Æðѹ²âÇëÇó£¬ËùÒÔÔÆ´æ´¢µÄ¹¦ÄÜÒ²¿ÉÒÔÒÔÆäËû·½Ê½ÊµÏÖ£¬±ÈÈç
Agent Ö±½Ó´Ó´óÊý¾Ýƽ̨ÏÂÔØÊý¾Ý¼¯
InfluxDB
ËùÓÐѹÁ¦×¢ÈëÆ÷²úÉúµÄÈÕÖ¾¶¼»áͳһдÈë InfluxDB£¬·½±ãÉú³Éѹ²â±¨¸æ
MaximµÄµ÷¶ÈËã·¨
¿ØÖÆÖÐÐÄ»á¸ù¾Ýµ±Ç°²âÊÔÈÎÎñʹÓõÄѹÁ¦×¢ÈëÆ÷ÊýÁ¿£¬½«Êý¾Ý¼¯ÖеÄÊý¾Ý¿éƽ¾ù·ÖÅä¸øÃ¿¸öѹÁ¦×¢ÈëÆ÷£¬ÈÃÿ¸öѹÁ¦×¢ÈëÆ÷Ö»ÏÂÔØ¶ÔÓ¦µÄÄÇЩÊý¾Ý¿é¡£´ËÍ⣬²¢·¢Óû§Êý¡¢RPS
Ò²»á±»Æ½¾ùÇзָøÃ¿¸öѹÁ¦×¢ÈëÆ÷¡£ÕâÑù£¬Ã¿¸öѹÁ¦×¢ÈëÆ÷µÄ¸ºÔØ»ù±¾ÊÇÒ»Öµġ£
3.2¡¢Maxim µÄÁìÓò³éÏó 
TestJob - JobExecution - JobSliceExecution
µ±Ñ¹²âÈÎÎñ¿ªÊ¼Ö´ÐУ¬Ê×ÏÈ»áÔÚ¿ØÖÆÖÐÐÄÉú³É JobExecution£¬¼à¿Ø±¾´Îѹ²âÈÎÎñµÄÕûÌåÖ´ÐÐ״̬¡£¿ØÖÆÖÐÐÄÓÖ»á¸ù¾ÝÉÏÊöµ÷¶ÈË㷨Ϊÿ¸öѹÁ¦×¢ÈëÆ÷Éú³ÉÈÎÎñ·ÖƬ
JobSliceExecution ²¢Ï·¢µ½¸÷¸öѹÁ¦×¢ÈëÆ÷£¬ÆäÖаüº¬Á˽ű¾¡¢Êý¾Ý¼¯µÈÐÅÏ¢
TestScript
ѹ²â½Å±¾
DataSetºÍDataChunk
Êý¾Ý¼¯ºÍ×é³ÉÊý¾Ý¼¯µÄÊý¾Ý¿éµ¥Ôª£¬Ä¿Ç°µ¥´Îѹ²âÈÎÎñÒÑÖ§³Ö¶àÊý¾Ý¼¯£¬Îª¶à¸ö³¡¾°Ìṩ²»Í¬µÄѹ²âÊý¾Ý£¬¼´»ìºÏ³¡¾°Ñ¹²â
LoadProfile
´Ó GUI ½ÓÊÕ¶¯Ì¬²ÎÊý£¬Ö÷Òª°üÀ¨Ñ¹Á¦×¢ÈëÆ÷ÊýÁ¿¡¢²¢·¢Óû§Êý¡¢RPS¡¢³ÖÐøÊ±¼äµÈ

ExecPlan
Ö´Ðмƻ®£¬°üÀ¨°´ÐèÖ´ÐкÍÖÜÆÚÖ´ÐÐÁ½ÖÖÖ´Ðз½Ê½
ExecutionStatus
¹ØÓÚ״̬»úÏÂÒ»½Ú»áÏêϸ½éÉÜ
3.3¡¢MaximµÄ״̬»ú 
Maxim ״̬»úÊÇ Maxim ·Ö²¼Ê½µÄºËÐÄ£¬¿ØÖÆÖÐÐĺ͸÷¸ö Agent µÄÐÐΪ¶¼ÊÜ״̬»ú±ä»¯µÄÓ°Ïì¡£
´´½¨ÈÎÎñ²¢¿ªÊ¼Ö´ÐÐÒԺ󣬸÷¸öÈÎÎñ·ÖƬ£¨JobSliceExecution£©Ê×ÏÈ»á½øÈë preparing
״̬£¬¸÷¸ö Agent »á´ÓÔÆ´æ´¢ÏÂÔØÑ¹²â½Å±¾ºÍ¸÷×Ô¶ÔÓ¦µÄÄÇЩÊý¾Ý¿é£¬ÏÂÔØÍê³ÉºóÔÙ½«ÕâЩÊý¾Ý¿éºÏ²¢³ÉÒ»¸ö
Json Êý¾ÝÎļþ×÷Ϊѹ²â½Å±¾µÄÊý¾ÝÊäÈë¡£Èç¹ûÏÂÔØÊ§°ÜÔò»áÖØÊÔ£¬¼´ Prepare¡£Èç¹ûËùÓÐ Agent
¶¼³É¹¦ÏÂÔØÁ˽ű¾ºÍÊý¾Ý£¬Ôò¸÷¸ö JobSliceExecution »áÏà¼Ì½øÈë prepared ״̬£¬µÈËùÓÐ
JobSliceExecution ½øÈë prepared ״̬ºó£¬JobExecution Ò²»á½øÈë
prepared ״̬£¬²¢Ïò¸÷¸ö Agent ·¢ÆðÖ´ÐÐÖ¸Á¸÷¸ö JobSliceExecution
½øÈë running ״̬£¬µÈËùÓÐ Agent Ö´ÐÐÍê³ÉÇÒ¸÷¸ö JobSliceExecution
±ä³É completed ״̬֮ºó£¬JobExecution Ò²»á½øÈë completed ״̬£¬´Ëʱѹ²âÈÎÎñÖ´ÐÐÍê³É²¢Éú³Éѹ²â±¨¸æ¡£Èç¹û¸÷¸öÈÎÎñ·ÖƬÔÚ
preparing¡¢prepared »ò running ¹ý³ÌÖÐÓÐÈκÎÒ»¸ö³ö´í£¬Ôò³ö´íµÄ·ÖƬ»á½øÈë
failed ״̬²¢Í¨Öª¿ØÖÆÖÐÐÄ£¬¿ØÖÆÖÐÐÄÔò¿ØÖÆÆäËû·ÖƬÖÐÖ¹ÕýÔÚÖ´ÐеÄÈÎÎñ²¢½øÈë Stopping
״̬£¬µÈÕâЩ·ÖƬÖÐÖ¹³É¹¦²¢¶¼±ä³É stopped ״̬ºó£¬JobExecution »á±»ÖÃ³É failed
״̬¡£µ±È»ÁË£¬Ò²¿ÉÒÔÊÖ¶¯Í£Ö¹Ñ¹²âÈÎÎñ£¬Õâʱºò JobSliceExecution ºÍ JobExecution
¶¼»á±»ÖÃ³É stopping->stopped ״̬¡£
3.4¡¢Maxim ¿ØÖÆÖÐÐĵļ¼Êõ¼Ü¹¹ 
Maxim ¿ØÖÆÖÐÐIJÉÓÃÁù±ßÐμܹ¹£¨Ò²½Ð¶Ë¿ÚÓëÊÊÅäÆ÷ģʽ£©£¬ºËÐÄ·þÎñÖ»´¦ÀíºËÐÄÒµÎñÂß¼£¨Èçµ÷¶ÈËã·¨£©£¬ÆäËû¹¦ÄÜÈçÓë
Agent ͨÐÅ¡¢½Å±¾´æ´¢¡¢Êý¾Ý´æ´¢¡¢Ñ¹²â±¨¸æµÈ¶¼ÊÇͨ¹ýÊÊÅä²ãµ÷ÓÃÌØ¶¨ÊµÏÖµÄ API ʵÏÖ¡£¾ßÌå¼¼ÊõµÄ»°£¬Óë
Agent ͨÐÅʹÓà grpc ʵÏÖ£¬ÆäËû¹¦ÄÜÔòÊÇͨ¹ý SPI ¼¼ÊõʵÏÖ£¬ÎÒÃǰÑÕâÒ»²ã½Ð×ö½Ó·ì²ã£¨Seam£©¡£ÕâÑùÉè¼Æ×î´ó²ã¶ÈµÄ½âñîÁ˺ËÐÄÒµÎñÂß¼ºÍÆäËû¹¦ÄܵÄÌØ¶¨ÊµÏÖ£¬ÎÒÃÇÔÚ±£³Ö½Ó·ì²ã
API ²»±äµÄÇé¿öÏ£¬¿ÉÒÔ×ÔÓÉÑ¡Ôñ¼¼Êõ·½°¸ÊµÏÖÏàÓ¦µÄ¹¦ÄÜ¡£±ÈÈçÊý¾Ý·þÎñÕâ¿éÇ¿ÒÀÀµÁËÓÐÔ޵ĴóÊý¾Ýƽ̨£¬¼ÙÉèÎÒÃÇ¿ªÔ´ÁË
Maxim£¬ÍⲿÍŶӾͿÉÒÔÑ¡ÔñËûÃÇ×Ô¼ºµÄ¼¼Êõ·½°¸ÊµÏÖÊý¾Ý·þÎñ£¬»òÕßΪÁ˲âÊÔÄ¿µÄ Mock µô¡£
4¡¢¸ÄÔì Gatling
ÔÉú Gatling Êǽ«Ñ¹²âÈÕ־дÈë±¾µØÈÕÖ¾ÎļþµÄ£¬¶øÔÚ·Ö²¼Ê½ÖУ¬Èç¹ûÿ¸öѹÁ¦×¢ÈëÆ÷¶¼°ÑÈÕ־дÔÚ±¾µØ£¬ÔòΪÁË»ùÓÚËùÓÐÈÕÖ¾·ÖÎöÉú³Éѹ²â±¨¸æ£¬ÎÒÃÇÐèÒªÊ×ÏÈÊÕ¼¯·ÖÉ¢ÔÚ¸÷¸öѹÁ¦×¢ÈëÆ÷ÖеÄÈÕÖ¾Îļþ£¬ÕâÑùÏÔÈ»ÊǵÍЧµÄ¡£ËùÒÔÎÒÃǸÄÔìÁË
Gatling £¬½«ËùÓÐÈÕÖ¾¶¼Ð´µ½Í¬Ò»¸ö InfluxDB Êý¾Ý¿â¡£ÐèÒªÉú³Éѹ²â±¨¸æÊ±£¬¿ØÖÆÖÐÐÄ´Ó
InfluxDB Êý¾Ý¿â¶ÁÈë±¾´Îѹ²âÈÎÎñµÄËùÓÐѹ²âÈÕÖ¾²¢±£´æÎªÒ»¸öÈÕÖ¾Îļþ£¬ÔÙ½»ÓÉ Gatling
µÄÈÕÖ¾´¦ÀíÄ£¿éÀ´Éú³Éѹ²â±¨¸æ¡£
5¡¢À©Õ¹ Gatling
ÔÉú Gatling ²»Ö§³Ö Dubbo ѹ²â£¬ËùÒÔÎÒÃÇÀ©Õ¹ Gatling£¬ÊµÏÖ²¢¿ªÔ´ÁË gatling-dubboѹ²â²å¼þ£¬¾ßÌåʵÏÖ·½·¨Ïê¼û
Dubboѹ²â²å¼þµÄʵÏÖ¡ª¡ª»ùÓÚGatling
6¡¢Maxim µÄδÀ´Õ¹Íû
Maxim Ŀǰ»¹ÊǸöµ¥´ò¶À¶·µÄ²úÆ·£¬Î´À´ÎÒÃÇÏ£ÍûÓë´óÊý¾Ýƽ̨¡¢ÔËάƽ̨µÈϵͳ´òͨ£¬Èà Maxim
Öð½¥½ø»¯ÎªÒ»¸öһվʽµÄѹ²âƽ̨£¬²¢ÒýÈë¸ü¶àÐÂÌØÐÔ£¬Èçѹ²â¹ý³ÌºÍѹ²â±¨¸æµÄʵʱ¼ÆËãºÍչʾµÈµÈ¡£ |