Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Õâ´Îȷʵ³¹µ×µØËµÇå³þÁË¡°È«Á´Â·Ñ¹²â¡±Õû¸öʵ¼ù¹ý³Ì£¨À´×Ô×Ö½ÚÌø¶¯£©
 
 
  5853  次浏览      27
 2021-5-21
 
±à¼­ÍƼö:
±¾ÎÄͨ¹ýÊáÀíÈ«Á´Â·Ñ¹²âϵͳ´ÓÉè¼Æµ½Â䵨µÄÕû¸öʵ¼ù¹ý³Ì£¬À´Ïêϸ½éÉÜÈ«Á´Â·Ñ¹²âϵͳ¾ßÌåÊÇÈçºÎÉè¼Æ¡¢ÈçºÎÂ䵨µÄ£¬Ï£ÍûÄÜ´Ó¼¼ÊõÂäµØÊµ¼ùµÄ½Ç¶È£¬¸øÍ¬ÐÐÒµµÄͬѧÃÇһЩ²Î¿¼ºÍÆô·¢¡£
±¾ÎÄÀ´×ÔÓÚÐÂÀË΢²©£¬ÓÉLinda±à¼­¡¢ÍƼö¡£

Ëæ×Ź«Ë¾ÒµÎñµÄ²»¶ÏÀ©ÕÅ£¬Óû§Á÷Á¿ÔÚ²»¶ÏÌáÉý£¬Ñз¢ÌåϵµÄ¹æÄ£ºÍ¸´ÔÓÐÔÒ²ËæÖ®Ôö¼Ó¡£ÏßÉÏ·þÎñµÄÎȶ¨ÐÔÒ²Ô½À´Ô½ÖØÒª£¬·þÎñÐÔÄÜÎÊÌ⣬ÒÔ¼°ÈÝÁ¿ÎÊÌâÒ²Ô½·¢Ã÷ÏÔ¡£Òò´ËÓбØÒª´î½¨Ò»¸öÓÐЧѹ²âϵͳ£¬Ìṩ°²È«¡¢¸ßЧ¡¢ÕæÊµµÄÏßÉÏÈ«Á´Â·Ñ¹²â·þÎñ£¬ÎªÏßÉÏ·þÎñ±£¼Ý»¤º½¡£

¹ØÓÚÈ«Á´Â·Ñ¹²âµÄ½¨É裬ҵ½çÒѾ­ÓÐÁ˷dz£¶àÎÄÕ£¬µ«ÊÇÉæ¼°µ½¾ßÌåµÄ¼¼ÊõʵÏÖ·½Ã棬ȴºÜÉÙ½éÉÜ¡£±¾ÎÄÏëͨ¹ýÊáÀíÈ«Á´Â·Ñ¹²âϵͳ´ÓÉè¼Æµ½Â䵨µÄÕû¸öʵ¼ù¹ý³Ì£¬À´Ïêϸ½éÉÜÈ«Á´Â·Ñ¹²âϵͳ¾ßÌåÊÇÈçºÎÉè¼Æ¡¢ÈçºÎÂ䵨µÄ£¬Ï£ÍûÄÜ´Ó¼¼ÊõÂäµØÊµ¼ùµÄ½Ç¶È£¬¸øÍ¬ÐÐÒµµÄͬѧÃÇһЩ²Î¿¼ºÍÆô·¢¡£

1. ½â¾ö·½°¸

1.1 ÒµÄÚʵ¼ù

È«Á´Â·Ñ¹²âÔÚÒµÄÚÒѾ­ÓÐÁ˹㷺µÄʵ¼ù£¬Èç°¢ÀïµÄ Amazon¡¢PTS[1][2]£¬ÃÀÍÅµÄ Quake[3][4]£¬¾©¶«µÄµÄ ForceBOT[5]£¬¸ßµÂµÄ TestPG[6]µÈµÈ£¬¶¼ÎªÎÒÃÇÌṩ·á¸»µÄʵ¼ù¾­Ñ飬ºÍ´óÁ¿ÓÅÐãµÄ¼¼Êõ·½°¸¡£ÎÒÃǹ㷺ÎüÊÕÁ˸÷´ó»¥ÁªÍø¹«Ë¾µÄÈ«Á´Â·Ñ¹²â½¨Éè¾­Ñ飬²¢»ùÓÚ×Ö½ÚÌø¶¯ÒµÎñÐèÇó£¬Éè¼Æ¿ª·¢ÁËÒ»¸öÈ«Á´Â·Ñ¹²âϵͳ Rhino¡£

1.2 ¼Ü¹¹Í¼

Rhino ƽ̨×÷Ϊ¹«Ë¾¼¶µÄÈ«Á´Â·Ñ¹²âƽ̨£¬ËüµÄÄ¿±êÊǶÔÈ«¹«Ë¾ËùÓÐÒµÎñ£¬Ìṩµ¥·þÎñ¡¢È«Á´Â·£¬°²È«¿É¿¿¡¢ÕæÊµ¡¢¸ßЧµÄѹ²â£¬À´°ïÖúÒµÎñ¸ßЧ±ã½ÝµÄÍê³ÉÐÔÄܲâÊÔÈÎÎñ£¬¸ü¾«È·ÆÀ¹ÀÏßÉÏ·þÎñÐÔÄÜ&ÈÝÁ¿·½Ãæ·çÏÕ¡£

Òò´ËÔÚ Rhino ƽ̨Éè¼ÆÖ®³õ£¬ÎÒÃǾÍÈ·¶¨ÁËÒÔÏÂÄ¿±ê£º

°²È«£ºËùÓÐѹ²â¶¼ÊÇÔÚÏßÉÏÍê³ÉµÄ£¬ËùÒÔÀíÂÛÉÏËùÓеÄѹ²â¶ÔÏßÉÏÓû§¶¼ÊÇÓÐËðµÄ¡£Ñ¹²âƽ̨½«´Ó·þÎñ״̬£¬ÒÔ¼°Ñ¹²âÊý¾ÝÁ½·½ÃæÈ¥±£Ö¤Ñ¹²âµÄ°²È«ÐÔ¡£

¸ßЧ £º½ÏÉÙѹ²â½Å±¾±àд³É±¾£¬Êý¾Ý¹¹ÔìºÍѹ²â¼à¿Ø³É±¾£¬¾¡Á¿×Ô¶¯»¯Íê³Éѹ²â¹ý³ÌµÄ¸÷¸ö½×¶Î¡£

׼ȷ £º¾«È·µÄѹÁ¦¿ØÖÆ£¬×¼È·µÄÁ´Â·Ñ¹²â¼à¿Ø£¬¾«È·µÄѹ²â±¨¸æ½á¹û£¬ÒÔ¼°ÐÔÄÜ&ÈÝÁ¿Êý¾Ý¡£

¸ß¸²¸Ç £ºÐèÒªÖ§³Å¹«Ë¾ÄÚ²»Í¬µÄÒµÎñÏßµÄѹ²âÐèÇó£¬ÈçËÑË÷£¬¹ã¸æ£¬µçÉÌ£¬½ÌÓý£¬ÓÎÏ·µÈµÈ¡£

Rhino ÊÇÒ»¸ö·Ö²¼Ê½È«Á´Â·Ñ¹²âϵͳ£¬¿ÉÒÔͨ¹ýˮƽÀ©Õ¹£¬À´ÊµÏÖÄ£Ä⺣Á¿Óû§ÕæÊµµÄÒµÎñ²Ù×÷³¡¾°£¬¶ÔÏßÉϸ÷ÖÖÒµÎñ½øÐÐÈ«·½Î»µÄÐÔÄܲâÊÔ¡£ËüÖ÷Òª·ÖΪ¿ØÖÆÖÐÐÄ(Rhino Master)Ä£¿é¡¢Ñ¹²âÁ´Â··þÎñÄ£¿é¡¢¼à¿ØÏµÍ³Ä£¿é¡¢Ñ¹²âÒýÇæÄ£¿é£¬Èçͼ¡£ £¨Ã¿Ò»¸öÄ£¿é¶¼ÊÇÓɶà¸ö΢·þÎñÀ´Íê³ÉµÄ¡£ÈçÏÂͼÿ¸öʵÏßͼ¶¼´ú±íÒ»¸ö΢·þÎñ»ò¶à¸ö΢·þÎñ£© ¡£

2. ºËÐŦÄܽéÉÜ

´î½¨È«Á´Â·Ñ¹²âƽ̨£¬×îºËÐÄÖ÷ÒªÓУºÊý¾Ý¹¹Ô졢ѹ²â¸ôÀë¡¢Á´Â·ÖÎÀí¡¢ÈÎÎñµ÷¶È¡¢Ñ¹²âÈÛ¶Ï¡¢Ñ¹²âÒýÇæ¡¢Ñ¹²â¼à¿ØµÈ¡£ÏÂÃæÎÒÃǽ«´ÓÕâЩ·½ÃæÏêϸ½éÉÜÏ£¬ÔÚ Rhino ƽ̨ÖÐÊÇÈçºÎÉè¼ÆºÍʵÏֵġ£

2.1 Êý¾Ý¹¹Ôì

ѹ²â¹ý³ÌÖÐÊý¾Ý¹¹ÔìÊÇ×îÖØÒª£¬Ò²ÊÇ×îΪ¸´ÔӵĻ·½Ú¡£Ñ¹²âÊý¾ÝµÄ½¨Ä££¬Ö±½ÓÓ°ÏìÁËѹ²â½á¹ûµÄ׼ȷÐÔ¡£

¶ÔÓÚ·þÎñÐÔÄÜȱÏÝɨÃè¡¢ÐÔÄܵ÷ÓÅÒÔ¼°ÐÂÉÏÏß·þÎñ¡¢ÍƼö¹¹Ôì Fake Êý¾Ý¡¢À´Ñ¹²âÖ¸¶¨Â·¾¶¡£

¶ÔÓÚÏßÉÏÈÝÁ¿¹æ»®¡¢ÐÔÄÜÄÜÁ¦ÑéÖ¤ÒÔ¼°ÐÔÄÜ Diff¡¢ÍƼöʹÓÃÏßÉÏÕæÊµÁ÷Á¿¡¢Ê¹Ñ¹²â½á¹û¸üÌù½üÕæÊµÇé¿ö¡£

¶ÔÓÚÉæ¼°µ½Óû§Õ˺ţ¬Óû§µÇ¼̬±£³ÖµÄÇé¿ö£¬ÍƼöʹÓÃѹ²âרÊô²âÊÔÕ˺ţ¬±ÜÃâÓ°ÏìÏßÉÏÕæÊµÓû§¡£

2.1.1 »ù´¡Êý¾Ý¹¹Ôì

ΪÁ˸ßЧµÄ¹¹ÔìÌØ¶¨µÄ Fake ѹ²âÊý¾Ý£¬Rhino ѹ²âƽ̨Ìṩ´óÁ¿Êý¾Ý¹¹Ô췽ʽ£º

CSV Îļþ£º°´ÁзָîÊý¾Ý£¬×Ö¶ÎÃûÈ¡ CSV ÎļþµÚÒ»ÐС£Êý¾Ý¶ÁÈ¡·½Ê½Êǰ´ÐеÝÔöÑ­»·¡£Èç¹ûÒ»¸öѹ²âÈÎÎñ»á²ð·Ö³É¶à¸ö Job£¬ÄÇôÊý¾ÝÎļþÒ²»á²ð·Ö£¬±ÜÃâ Job Ö®¼äµÄÊý¾ÝÖØ¸´¡£

×ÔÔö£º±äÁ¿ÀàÐ;ùΪÊý×ÖÀàÐÍ¡£Ã¿´Î·¢Ñ¹Ê±+1£¬µ½×î´óÖµºó´Ó×îСֵѭ»·Ê¹Óá£

Ëæ»ú£º±äÁ¿ÀàÐ;ùΪÊý×ÖÀàÐÍ¡£Ã¿´Î·¢Ñ¹Ê±Ëæ»úÉú³É¡£

³£Á¿£ºConstant£¬¿É×Ô¶¨ÒåΪÈÎÒâÖµ¡£

2.1.2 ѹ²âÕ˺Å

ÔÚѹ²â¹ý³ÌÖУ¬ÓÐЩѹ²âÇëÇóÐèÒª½øÐеǼ£¬²¢±£³Ö»á»°£»´ËÍâÔںܶàѹ²âÇëÇóÖÐÉæ¼°µ½Óû§Õ˺ÅÐÅÏ¢UserID£¬DeviceIDµÈÊý¾Ý¡£Óû§Õ˺ŵĹ¹ÔìÎÊÌ⣬һֱÊÇѹ²â¹ý³ÌÖзdz£¼¬ÊÖµÄÎÊÌâ¡£Rhinoƽ̨´òͨµÄÓû§ÖÐÐÄ£¬ÉèÖÃÁËѹ²âרÊôµÄÕ˺ŷþÎñ£¬ÍêÃÀµØ½â¾öÁËѹ²â¹ý³ÌÖеĵǼ̬£¬ÒÔ¼°²âÊÔÕ˺ŵÈÎÊÌâ¡£¾ßÌåÁ÷³ÌºÍʹÓýçÃæ£¬ÈçÏÂͼ¡£

2.2 ѹ²â¸ôÀë

ѹ²â¸ôÀëÖÐÐèÒª½â¾öµÄѹ²âÁ÷Á¿¸ôÀ룬ÒÔ¼°Ñ¹²âÊý¾ÝµÄ¸ôÀë¡£

ѹ²âÁ÷Á¿¸ôÀ룬Ö÷ÒªÊÇͨ¹ý¹¹½¨Ñ¹²â»·¾³À´½â¾ö£¬ÈçÏßÏÂѹ²â»·¾³£¬»òÓ¾µÀ»¯/Set »¯½¨É裬½«Ñ¹²âÁ÷Á¿ÓëÏßÉÏÁ÷³ÌÍêÈ«¸ôÀë¡£ÓŵãÊÇѹ²âÁ÷Á¿ÓëÏßÉÏÁ÷Á¿ÍêÈ«¸ôÀ룬²»»áÓ°Ïìµ½ÏßÉÏÓû§¡£È±µã£º»úÆ÷×ÊÔ´¼°Î¬»¤³É±¾¸ß£¬ÇÒѹ²â½á¹ûÐèÒª¾­¹ýÒ»¶¨µÄ»»Ë㣬²ÅÄܵÃÏßÉÏÈÝÁ¿£¬½á¹û׼ȷÐÔ´æÔÚÒ»¶¨µÄÎÊÌ⡣Ŀǰ¹«Ë¾ÄÚѹ²â¶¼ÊÇÔÚÏßÉϼ¯ÈºÉÏÍê³ÉµÄ£¬ÏßÉÏÓ¾µÀ»¯ÕýÔÚ½¨ÉèÖС£

ѹ²âÊý¾Ý¸ôÀ룬Ö÷ÒªÊÇͨ¹ý¶Ôѹ²âÁ÷Á¿½øÐÐȾɫ£¬ÈÃÏßÉÏ·þÎñÄÜʶ±ðÄÄЩÊÇѹ²âÁ÷Á¿£¬ÄÄЩÊÇÕý³£Á÷Á¿£¬È»ºó¶Ôѹ²âÁ÷Á¿½øÐÐÌØÊâ´¦Àí£¬ÒÔ´ïµ½Êý¾Ý¸ôÀëµÄÄ¿µÄ¡£Ä¿Ç° Rhino ƽ̨ÕûÌåѹ²â¸ôÀë¿ò¼ÜÈçͼ¡£

2.2.1 ѹ²â±ê¼Ç

ѹ²â±ê¼Ç¾ÍÊÇ×î³£¼ûµÄѹ²âÁ÷Á¿È¾É«µÄ·½Ê½¡£

¶ÔÓÚ RPC ЭÒ飬»áÔÚÇëÇóµÄÍ·²¿ÖÐÔö¼ÓÒ»¸ö Key£ºValue µÄ×Ö¶Î×÷Ϊѹ²â±ê¼Ç¡£

¶ÔÓÚ HTTP ºÍÆäËûЭÒ飬»áÔÚÇëÇóÍ·£¬×Ô¶¯×¢ÈëÒ»¸ö Stress ±ê¼Ç(Key-Value) ¡£

ѹ²â±ê¼Ç Key:Value£¬ÆäÖÐ key Êǹ̶¨µÄ Stress_Tag Öµ£¬µ«ÊÇÿ¸öѹ²âÈÎÎñ¶¼ÓÐΨһµÄ Stress_Value Öµ£¬Ö÷ÒªÓÃÓÚ½â¾öѹ²âÊý¾Ý³åÍ»¡¢ÐÔÄÜÎÊÌⶨλ¡£

2.2.2 ѹ²â±ê¼Ç͸´«

Ŀǰ¹«Ë¾ÄÚ¸÷¸ö»ù´¡×é¼þ¡¢´æ´¢×é¼þ£¬ÒÔ¼° RPC ¿ò¼Ü¶¼ÒѾ­Ö§³ÖÁËѹ²â±ê¼ÇµÄ͸´«¡£ÆäÔ­ÀíÊǽ«Ñ¹²â±ê¼ÇµÄ KV Öµ´æÈë Context ÖУ¬È»ºóÔÚËùÓÐÏÂÓÎÇëÇóÖж¼´øÉϸà Context£¬ÏÂÓηþÎñ¿ÉÒÔ¸ù¾Ý Context ÖÐѹ²â±ê¼ÇÍê³É¶Ôѹ²âÁ÷Á¿µÄ´¦Àí¡£ÔÚʵ¼ÊÒµÎñÖУ¬´úÂë¸ÄÔìÒ²·Ç³£¼òµ¥£¬Ö»ÐèҪ͸´« Context ¼´¿É¡£

Golang ·þÎñ£º½«Ñ¹²â±ê¼ÇдÈë Context ÖС£

Python ·þÎñ£ºÀûÓà threading.local()´æ´¢Ïß³Ì Context¡£

Java ·þÎñ£ºÀûÓà ThreadLocal ´æ´¢Ïß³Ì Context¡£

2.2.3 ѹ²â¿ª¹Ø

ΪÁ˽â¾öÏßÉÏѹ²â°²È«ÎÊÌ⣬ÎÒÃÇ»¹ÒýÈëÁËѹ²â¿ª¹Ø×é¼þ¡£

ÿ¸ö·þÎñÿ¸ö¼¯Èº£¬¶¼ÓÐÒ»¸öѹ²â¿ª¹Ø¡£Ö»Óдò¿ªÑ¹²â¿ª¹ØÊ±£¬Ñ¹²âÁ÷Á¿²ÅÄÜÁ÷Èëµ½·þÎñÄÚ£¬·ñÔò¾Í»á±»µ×²ã΢·þÎñ¿ò¼ÜÖ±½Ó¾Ü¾ø£¬ÒµÎñ²ãÎ޸С£

ÔÚÿ¸öIDCÇøÓò£¬¶¼»áÓÐÒ»¸öÈ«¾ÖµÄѹ²â×Ü¿ª¹Ø¡£Ö»Óдò¿ªÁËÕâ¸öÈ«¾Öѹ²â¿ª¹Ø£¬Ñ¹²âÁ÷Á¿²Å±»ÔÊÐíÔÚÕâ¸öIDCÄÚÁ÷ת¡£

µ±ÏßÉϳöÏÖѹ²âÎÊÌ⣬³ýÁË´ÓÔ´Í·¹Ø±Õѹ²âÁ÷Á¿ÒÔÍ⣬¹Ø±ÕÄ¿±ê·þÎñµÄѹ²â¿ª¹Ø£¬Ò²ÄÜÁ¢¼´×è¶Ïѹ²âÁ÷Á¿¡£

2.2.4 ѹ²âÊý¾Ý¸ôÀë

ÏßÉÏѹ²âÖУ¬×ÔÓµÄÎÊÌâ¾ÍÊÇѹ²âÁ´Â·ÖÐÉæ¼°µ½Ð´²Ù×÷£¬ÈçºÎ±ÜÃâÎÛȾÏßÉÏÊý¾Ý£¬²¢ÇÒÄܱ£Ö¤Ñ¹²âÇëÇó±£³ÖºÍÏßÉÏÏàͬµÄÇëÇó·¾¶¡£Òµ½çÓкܶà½â¾ö·½°¸£¬³£¼ûµÄÓÐÓ°×Ó±í£¬Ó°×ӿ⣬ÒÔ¼°Êý¾ÝÆ«ÒÆ£¬Èçͼ[7]¡£

Rhino ƽ̨Õë¶Ô²»Í¬´æ´¢£¬Óв»Í¬µÄ½â¾ö·½°¸£º

MySQL¡¢MongoDB£ºÓ°×Ó±í¡£SDK ÅжÏÊÇ·ñÊÇѹ²âÁ÷Á¿£¬ÈôÊÇÔò¸ù¾ÝÅäÖÃÓ³ÉäÖÁбíÃû¡£ÅäÖòßÂÔÓÐÁ½ÖÖ£¬Ò»ÊǶÁдӰ×Ó±í£¬¶þÊǶÁÏßÉÏ±í¡¢Ð´Ó°×Ó±í¡£

Redis£ºRedis Key ¼ÓÉÏ Stress ǰ׺¡£Èç Stress_Tag=Valuex£¬ÄÇô¶Áд Redis µÄ Key=Valuex_Key¡£ÕâÑù¿ÉÒÔ½â¾ö¶à¸öѹ²âÈÎÎñÊý¾Ý³åÍ»µÄÎÊÌ⡣ѹ²â½áÊøºó£¬Ö»ÐèÒª¶Ô Prefix=Valuex ×öÇå³ý»ò¹ýÆÚ²Ù×÷¼´¿É¡£

MQ£º¶ÔÓÚÏûÏ¢¶ÓÁУ¬Rhino ƽ̨ÓÐÁ½ÖÖ²ßÂÔ¡£Ò»ÊÇÖ±½Ó¶ªÆú£¬È»ºóÕë¶ÔÏûÏ¢¶ÓÁеÄÐÔÄÜ£¬µ¥¶À½øÐÐѹ²â£»¶þÊÇÔÚ Header ÖÐ͸´«Ñ¹²â±ê¼Ç£¬Consumer ¸ù¾Ýѹ²â±ê¼ÇºÍÒµÎñÐèÇó£¬ÔÙ×öÌØÊâ´¦Àí¡£Ä¬ÈÏ×ß¶ªÆú²ßÂÔ£¬ÒµÎñ·½¿É¸ù¾ÝÐèÇó½øÐÐÅäÖá£

ÆäËû´æ´¢£¬Èç ES£¬ClickHouse µÈ£¬¶¼ÓÐѹ²â¼¯Èº¡£Ñ¹²âʱ£¬»á½«Ñ¹²âÇëÇó´òµ½Ö¸¶¨µÄѹ²â¼¯ÈºÖС£

2.2.5 ·þÎñѹ²â¸ÄÔì

ÔÚѹ²â֮ǰ£¬ÐèÒª¶Ô·þÎñ½øÐÐѹ²âÑéÖ¤¡£¶ÔÓÚ²»Âú×ãѹ²âÒªÇó(¼´Ñ¹²âÊý¾Ý¸ôÀë)µÄ·þÎñ£¬ÐèÒª½øÐÐѹ²â¸ÄÔì¡£

ѹ²âÑéÖ¤£º¶ÔÓÚ´æ´¢·þÎñ£¬ÔÚ²»´ò¿ªÑ¹²â¿ª¹ØµÄǰÌáÏ£¬Í¨¹ýѹ²âÇëÇ󣬷¢ËͶÁд²Ù×÷¶¼Êǻᱻ¾Ü¾ø¡£Èç¹ûûÓоܾø£¬ËµÃ÷ÔÚ²Ù×÷´æ´¢·þÎñʱ£¬Ã»ÓдøÉÏѹ²â Context£¬ÐèÒª½øÐиÄÔì¡£

ѹ²â¸ÄÔ죺ѹ²â¸ÄÔìÊÇÏßÉÏÈ«Á´Â·Ñ¹²âÍÆ½øÖзdz£¹Ø¼ü£¬¶øÓַdz£À§ÄѵÄÒ»¸ö»·½Ú¡£¶ÔÓÚÒѾ­ÉÏÏߵķþÎñ£¬Ñ¹²â¸ÄÔ컹¼«ÓпÉÄÜ»áÒýÈëÐ嵀 BUG£¬ËùÒÔ¾­³£Íƶ¯ÆðÀ´±È½ÏÀ§ÄÑ¡£Òò´ËΪÁ˽â¾öÕâЩÎÊÌ⣬Rhino ƽ̨ÓÐÒÔϼ¸¸ö½â¾ö·½°¸£º

¾¡Á¿¼õÉÙ´úÂë¸Ä¶¯£¬²¢¸ø³öÍêÕûµÄÖ¸µ¼Êֲἰ´úÂëʾÀý£¬¼õÉÙ RD µÄ¹¤×÷Á¿£¬½µµÍ´úÂë´íÎóµÄ¿ÉÄÜÐÔ¡£

Ìṩ¼òµ¥±ã½ÝµÄÏßÉÏÏßÏ HTTP&RPC µÄѹ²âÇëÇó Debug ¹¤¾ß£¬·½±ã´úÂë¸Ä¶¯µÄÑéÖ¤¡£

¶ÔÓÚÐÂÏîÄ¿£¬ÏîÄ¿¿ªÊ¼³õÆÚ£¬¾Í½«Ñ¹²â¸ÄÔì¼ÓÈëÏîÄ¿¿ª·¢¹æ·¶ÖУ¬¼õÉÙºóÆÚµÄ´úÂë¸Ä¶¯¡£

2.3 Á´Â·ÖÎÀí

2.3.1 Á´Â·ÊáÀí

ÇëÇóµ÷ÓÃÁ´£¬¶ÔÓÚÏßÉÏѹ²âÊǷdz£ÖØÒªµÄ£º

ÌṩÇåÎúѹ²âÁ÷Á¿µØÍ¼£¬²¢ÌṩÍêÕûµÄÁ´Â·¼à¿Ø¡£

Íê³É·þÎñÒÀÀµµÄÊáÀí£¬¼ì²âѹ²âËùÒÀÀµµÄ·þÎñ/ÖÐ̨ÊÇ·ñ¾ß±¸Ñ¹²âµÄÌõ¼þ£¬ÊÇ·ñÐèҪѹ²â¸ÄÔì¡£

Á´½Óѹ²â¿ª¹Ø¹ÜÀí£¬Ñ¹²âÉÏÏÂÓÎÖÜÖªµÈ¡£

Rhino ƽ̨ͨ¹ý¹«Ë¾µÄÁ÷ʽÈÕ־ϵͳÀ´Íê³Éµ÷ÓÃÁ´¼ìË÷µÄ¡£Ò»¸ö·þÎñÔÚ±»ÇëÇó»òÕßÇëÇóÏÂÓÎʱ£¬¶¼»á͸´«Ò»¸ö LogID¡£RPC ¿ò¼Ü»á´òÓ¡µ÷ÓÃÁ´ÈÕÖ¾£¨°üÀ¨ RPC ÈÕÖ¾-µ÷ÓÃÕßÈÕÖ¾£¬Access ÈÕÖ¾-±»µ÷ÓÃÕßÈÕÖ¾£©£¬ËùÓÐÈÕÖ¾Öж¼»á°üº¬Õâ¸ö LogID¡£Í¨¹ý LogID ½«Ò»¸öÇëÇóËù¾­¹ýµÄËùÓзþÎñÈÕÖ¾´®ÆðÀ´£¬¾ÍÍê³Éµ÷ÓÃÁ´¼ìË÷¡£

Rhino ƽ̨ÔÚ¹«Ë¾Á÷ʽÈÕ־ϵͳÌṩµÄÁ´Â·ÊáÀí¹¦ÄÜ»ù´¡ÉÏ£¬½øÐÐÁ˽øÒ»²½ÓÅ»¯£¬ÒÔÂú×ãѹ²âÐèÒª£º

×Ô¶¯ÊáÀí£ºÓÉÓÚ¹«Ë¾²ÉÓÃ΢·þÎñ¼Ü¹¹£¬Ã¿¸öÇëÇ󱳺óµÄµ÷ÓÃÁ´Â·¼°Æä¸´ÔÓ£¬µ¥´¿¿¿È˹¤Î¬»¤ÊÇÎÞ·¨Íê³ÉµÄ¡£Óû§Ö»ÐèÒªÌṩÇëÇóÖÐ LogID£¬Rhino ƽ̨¾ÍÄÜ¿ìËÙÊáÀí³ö¸ÃÇëÇó¾­¹ýµÄ·þÎñ½Úµã£¬Èçͼ¡£

ʵʱÊáÀí£ºÓÉÓÚÏßÉÏ·þÎñ²»¶ÏÔڱ仯£¬ÉÏÏßÏÂÏßÐÂÔöµÈ£¬Òò´Ëͬһ¸öÇëÇóµÄµ÷ÓÃÁ´Ò²ÊDz»¶Ï±ä»¯µÄ¡£Rhino ƽ̨½¨ÒéÒ»°ãʹÓà 1 ¸öСʱÄÚµÄ LogID ½øÐÐÊáÀí¡£

¶àµ÷ÓÃÁ´Â·ºÏ²¢£ºÍ¬Ò»¸ö½Ó¿Ú£¬²»Í¬²ÎÊýϵĵ÷ÓÃÁ´ÊDz»¾¡ÏàͬµÄ¡£Rhinoƽ̨»á½«¶à¸öLogIDÊáÀíµÄ½á¹û×Ô¶¯½øÐкϲ¢£¬À´²¹È«µ÷ÓÃÁ´£¬±£Ö¤Á´Â·ÊáÀí½á¹ûµÄ׼ȷÐÔºÍÍêÕûÐÔ¡£

2.3.2 ѹ²âÖÜÖª

ËäÈ» Rhino ƽ̨¶ÔÓÚѹ²âÓкܶàµÄ°²È«±£ÕÏ´ëÊ©£¬µ«ÊǶÔÓÚ´óÐÍѹ²â£¬±£Ö¤ÐÅÏ¢µÄͨ³©Á÷ͨҲÊǷdz£ÖØÒªµÄ¡£Òò´ËÔÚѹ²âÖÜÖª·½Ã棬Rhino ƽ̨ҲÌṩÁ˺ܶà½â¾ö·½°¸£º

Ò»¼üÀ­Èº£ºÊáÀíÍêÁ´Â·ºó£¬ÔÚѹ²âǰ¿ÉÒÔÒ»¼üÀ­Èº£¬½«Á´Â·ÖÐÉÏÏÂÓηþÎñµÄ Owner À­µ½Í¬Ò»¸öȺÀͬ²½Ñ¹²âÐÅÏ¢¡£

ѹ²âÖÜÖª£ºÃ¿¸öѹ²â¿ªÊ¼Ö´ÐÐʱ£¬¶¼»áÏòѹ²âÖÜ֪ȺÀïÍÆËÍÏûÏ¢£¬Èçѹ²â QPS£¬Ñ¹²âʱ³¤µÈÐÅÏ¢¡£

ѹ²âʼþ£ºÔÚѹ²â¿ªÊ¼Ö´ÐÐʱ£¬Rhino ƽ̨»¹»áÏòÄ¿±ê·þÎñµÄʼþ¶ÓÁÐÖз¢ËÍÒ»¸öѹ²âʼþ£¬·½±ã¿ìËÙÆÀ¹À/¶¨Î»Îȶ¨ÐÔÎÊÌâÊÇ·ñÊÇѹ²âµ¼Ö£¬¼õÉÙ RD ÏßÉÏÎÊÌâÅŲéµÄ¸ÉÈÅ¡£

2.3.3 ѹ²â¿ª¹Ø¹ÜÀí

ÔÚѹ²â֮ǰ£¬ÐèÒª¿ªÆôÕûÌåÁ´Â·µÄѹ²â¿ª¹ØµÄ£¬·ñÔòѹ²âÁ÷Á¿¾Í»á±»·þÎñ¾Ü¾ø£¬µ¼ÖÂѹ²âʧ°Ü¡£

Ò»¼ü¿ªÆô£ºÔÚѹ²âÖ´ÐÐ֮ǰ£¬Rhino ƽ̨¿ÉÒÔÒ»¼ü¿ªÆôÁ´½ÓÉÏËùÓнڵãµÄѹ²â¿ª¹Ø¡£

ѹ²â¿ª¹Ø¿ªÆôÖÜÖª£ºÑ¹²â¿ª¹Ø¿ªÆôʱ£¬Rhino ƽ̨»á×Ô¶¯¸ø¶ÔÓ¦·þÎñ Owner ÍÆËÍÏà¹ØÐÅÏ¢£¬È·±£·þÎñ Owner Á˽âÏà¹ØÑ¹²âÐÅÏ¢£¬ÉÏÓλáÓÐѹ²âÁ÷Á¿»á¾­¹ýÆä·þÎñ¡£

¾²Ä¬¹Ø±Õ£ºÑ¹²â¿ª¹Øµ½ÆÚºó£¬Rhino »á×Ô¶¯¾²Ä¬¹Ø±Õѹ²â¿ª¹Ø£¬ÒÔ±£Ö¤ÏßÉÏ·þÎñµÄ°²È«¡£

2.3.4 ·þÎñ Mock

¶ÔÓÚµ÷ÓÃÁ´Öв»ÄÜѹ²âµÄ·þÎñ(Ãô¸Ð·þÎñ)£¬»òÕßµÚÈý·½·þÎñ£¬ÎªÁËѹ²âÇëÇóµÄÍêÕûÐÔ£¬¾ÍÐèÒª¶ÔÕâЩ·þÎñ½øÐÐ Mock¡£Òµ½çͨÓÃµÄ Mock ·½°¸ÓУº

ÐÞ¸ÄÒµÎñ´úÂ룬Ð޸ķþÎñµ÷ÓÃΪ¿Õת´úÂë¡£Óŵ㣺ʵÏֳɱ¾µÍ¡£È±µã£º·µ»ØÖµ¹Ì¶¨£¬´úÂë&ÒµÎñÈëÇָߣ¬Íƶ¯À§ÄÑ¡£ÈçÒª Mock λÖñȽϿ¿ÏÂÓΣ¬³¬³ö²¿ÃŸ²¸ÇÒµÎñ·¶Î§£¬Íƶ¯¾Í·Ç³£Âé·³¡£

ͨÓà Mock ·þÎñ¡£Í¨Óà MockServer£¬»á¸ù¾Ý²»Í¬Óû§ÅäÖò»Í¬ Mock ¹æÔò£¬Ö´ÐжÔÓ¦µÄÏìÓ¦ÑÓʱ£¬²¢·µ»Ø¶ÔÓ¦ÏìÓ¦Êý¾Ý¡£Óŵ㣺ÎÞ´úÂëÈëÇÖ£¬ÒµÎñ·½ÎÞ¸ÐÖª¡£È±µã£ºÊµÏֳɱ¾¸ß¡£

ÓÉÓÚ×Ö½ÚÌø¶¯Õû¸ö¹«Ë¾¶¼²ÉÓÃ΢·þÎñ¼Ü¹¹£¬µ¼ÖÂÒ»´Îѹ²âÉæ¼°Á´Â·¶¼±È½Ï³¤£¬¿ìËÙÎÞÒµÎñÈëÇÖµÄ Mock ·½Ê½³ÉΪÁËÊ×Ñ¡ ¡£Rhino ƽ̨ÊÇͨ¹ý¹«Ë¾ Service Mesh ºÍ ByteMock ϵͳÀ´ÊµÏÖÁ˸ßЧµÄ£¬¶ÔÒµÎñ͸Ã÷µÄ·þÎñ Mock¡£

ѹ²âÖ´ÐÐǰ£¬Rhino ƽ̨ÐèÒªÏò Service Mesh ×¢²áȾɫת·¢¹æÔò£¬²¢Ïò Mock ·þÎñ×¢²á Mock ¹æÔò¡£È»ºóÔÚѹ²âÁ÷Á¿ÖÐ×¢Èë Mock Ⱦɫ±ê¼Ç£¬²ÅÄÜÍê³É·þÎñ Mock£º

»ùÓÚ Service Mesh µÄȾɫÁ÷Á¿×ª·¢¡£Ê×ÏÈÐèÒªÔÚѹ²âÁ÷Á¿ÖÐ×¢Èëת·¢È¾É«±ê¼Ç£¬²¢ÔÚ Service Mesh ÖÐ×¢²á¶ÔÓ¦µÄת·¢¹æÔò¡£Service Mesh ¼ì²âµ½È¾É«Á÷Á¿ºó£¬¾Í»á½«Æäת·¢µ½Ö¸¶¨µÄ Mock Server ÉÏ£¬Èçͼ¡£

»ùÓÚ Mock Server µÄÇëÇó¹æÔòÆ¥Åä¡£Ê×ÏÈÔÚ Mock Server ÉÏ×¢²á Mock ¹æÔò£¬ÒÔ¼°Æ¥ÅäµÄ Response ºÍÏìӦʱÑÓ¡£µ± Mock Server ½ÓÊÕµ½ÇëÇóºó£¬»á¸ù¾Ý¹æÔò½øÐÐÏìÓ¦£¬Èçͼ¡£

2.4 ·¢Ñ¹Ä£Ê½

2.4.1 ×îСµ÷¶Èµ¥Ôª

Rhino ƽ̨ÖУ¬Ñ¹²â Agent ¾ÍÊÇÒ»¸ö×îСµ÷¶Èµ¥Ôª¡£Ò»´Îѹ²âÈÎÎñ£¬Í¨³£»á²ð·Ö³É¶à¸ö×Ó Job£¬È»ºóÏ·¢µ½¶à¸ö Agent ÉÏÀ´Íê³É¡£

×îС»¯ÈÝÆ÷²¿Ê𣬼õÉÙ×ÊÔ´ÀË·Ñ¡£Ñ¹²â¶Ô»úÆ÷×ÊÔ´ÏûºÄÊǷdz£¸ßµÄ£¬Í¨³£ CPU &Memory µÄʹÓÃÂʶ¼ÔÚ 80%ÒÔÉÏ¡£µ«ÊÇûÓÐѹ²âÖ´ÐÐʱ¼äÄÚ£¬»úÆ÷×ÊԴʹÓÃÂÊ<5%¡£Èç¹û³¤ÆÚÕ¼ÓôóÁ¿µÄ×ÊÔ´£¬½«»á¶Ô»úÆ÷×ÊÔ´Ôì³É¼«´óµÄÀË·Ñ¡£Ñ¹²â Agent ¶¼²ÉÓÃÈÝÆ÷»¯²¿Ê𣬲¢ÇÒÿ¸öÈÝÆ÷µÄ×ÊÔ´¹æ¸ñÒ²¾¡¿ÉÄÜС£¬ÕâÑù¼ÈÄÜÂú×ãÈÕ³£Ñ¹²âÐèÇó£¬Ò²²»»áÕ¼ÓÃÌ«¶àµÄ»úÆ÷×ÊÔ´¡£

¶ÀÕ¼ Agent£¬Ôö¼Óѹ²âÖ´ÐÐÎȶ¨ÐÔ£ºµ¥¸öÈÝÆ÷ÄÚÖ»Æô¶¯Ò»¸ö Agent ½ø³Ì£¬µ¥¸ö Agent ͬʱֻÄܱ»Ò»¸öѹ²âÈÎÎñÕ¼Ó㬱ÜÃâ¶àÈÎÎñ¶à½ø³ÌµÄ¸ÉÈźÍ×ÊÔ´¾ºÕù£¬Ôö¼Óѹ²âµÄÎȶ¨ÐÔ¡£

¶¯Ì¬À©ÈÝ£¬Ö§³Åº£Á¿ QPS ·¢Ñ¹£ºÑ¹²â¸ß·åÆÚ£¬Rhino ƽ̨»áÁÙʱÉêÇë»úÆ÷×ÊÔ´£¬¿ìËÙÀ©ÈÝ£¬Íê³Éº£Á¿ QPS µÄÖ§³Å¡£Ñ¹²âÍê³Éºó£¬»áÁ¢¼´ÊÍ·Å»úÆ÷×ÊÔ´£¬¼õÉÙ×ÊÔ´ÀË·Ñ¡£

2020 Äê´º½ÚÇÀºì°üѹ²âÖУ¬Rhino ÁÙʱÀ©ÈÝÔÚ 4000+¸öʵÀý£¬Ö§³ÅÁ˵¥´Î 3kw+QPS µÄѹ²â£¬µ«ÈÕ³£ Rhino ƽֻ̨²¿ÊðÁË 100+¸öʵÀý£¬¾ÍÄÜÂú×ãÈÕ³£Ñ¹²âÐèÇó¡£

2.4.2 ÖÇÄÜѹÁ¦µ÷½Ú

¶¯Ì¬·ÖÅäѹ²â Agent£ºÔÚѹ²â¹ý³Ì£¬¾­³£³öÏÖѹ²â Agent µÄ CPU/Memory ʹÓÃÂʹý¸ß(>90%)£¬µ¼ÖÂѹÁ¦Éϲ»È¥£¬´ï²»µ½Ä¿±ê QPS£»»òÕßѹ²âÑÓʱ¹ý¸ß£¬Ñ¹²â½á¹û²»×¼È·µÄÎÊÌâ¡£Rhino ƽ̨ÔÚ·¢Ñ¹µÄ¹ý³ÌÖУ¬»áʵʱ¼à¿ØÃ¿¸öѹ²â Agent µÄ CPU/Memory ʹÓÃÂÊ£¬µ±³¬¹ýãÐֵʱ(>90%)£¬»á¶¯Ì¬·ÖÅä¶îÍâµÄ Agent£¬ÒÔ½µµÍÿ¸ö Agent µÄ¸ºÔØ£¬±£Ö¤Ñ¹²âµÄÎȶ¨ÐÔ¡£

ÖÇÄܵ÷½ÚѹÁ¦£ºÔÚѹ²â¹ý³Ì£¬Í¨³£ÐèÒª²»¶ÏµÄµ÷½Ú QPS ´óС£¬ÒÔ´ïµ½ÐÔÄÜѹ²âÄ¿±ê¡£Õâ¹ý³Ì·Ç³£ºÄ·Ñ¾«Á¦ºÍʱ¼ä¡£Rhino ƽ̨£¬¿ÉÒÔ¸ù¾Ýѹ²âÈÎÎñÉ趨µÄÐÔÄÜÖ¸±ê£¬ÖÇÄܵ÷½Ú QPS ´óС£¬µ±´ïµ½Ñ¹²âÄ¿±êºó£¬»á×Ô¶¯ÈÛ¶Ï£¬Í£Ö¹Ñ¹²â¡£

2.4.3 ѹ²âÁ´Â·Ä£Äâ

Rhino ƽ̨ĬÈϽ«È«Á´Â·Ñ¹²â·ÖΪ¹«ÍøÑ¹²âºÍÄÚÍøÑ¹²â¡£¹«ÍøÑ¹²âÖ÷Òª IDC ÍøÂç´ø¿í£¬ÑÓʱ£¬IDC Íø¹ØÐ½¨Á¬½Ó¡¢×ª·¢µÈÄÜÁ¦£»ÄÚÍøÑ¹²â£¬Ö÷ÒªÊÇѹ²âÄ¿±ê·þÎñ£¬Ä¿±ê¼¯ÈºµÄÐÔÄÜ£¬ÈÝÁ¿µÈ¡£

¶ÔÓÚÄÚÍøÑ¹²â£¬Ä¬È϶¼ÒªÇóͬ IDC ÄÚ·¢Ñ¹£¬¼õÉÙÍøÂçÑÓʱµÄ¸ÉÈÅ¡£

¶ÔÓÚ¹«ÍøÑ¹²â£¬Rhino ƽ̨ÔÚ¹«Ë¾ CDN ½ÚµãÉ϶¼Óв¿Êð Agent ½Úµã£¬ÀûÓÃÁË CDN ½ÚµãÊ£Óà¼ÆËãÄÜÁ¦£¬Íê³ÉÁ˹«ÍøÑ¹²âÄÜÁ¦µÄ½¨Éè¡£

2.4.4 ͬ³Ç¶à»ú·¿£¬ÒìµØ¶à»ú·¿

Rhino ƽ̨ÔÚ¸÷¸ö IDC ¶¼Óв¿Êð Agent ¼¯Èº¡£¸÷¸ö IDC ÄÚ·þÎñµÄѹ²â£¬Ä¬ÈÏ»á¾Í½üÑ¡Ôñѹ²â Agent£¬À´¼õÉÙÍøÂçÑÓʱ¶Ôѹ²â½á¹ûµÄ¸ÉÈÅ£¬Ê¹µÃѹ²â½á¹û¸ü¾«×¼£¬Ñ¹²âÎÊÌⶨλ¸ü¼òµ¥¡£

2.4.5 ±ßÔµ¼ÆËã½Úµã Agent

³ýÁ˶à»ú·¿²¿ÊðÖ®Í⣬Rhino ƽ̨»¹ÔÚ±ßÔµ¼ÆËã½ÚµãÉÏÒ²²¿ÊðÁËѹ²â Agent£¬À´Ä£Äâ¸÷ÖÖ²»Í¬µØÓò²»Í¬ÔËÓªÉ̵ÄÁ÷Á¿ÇëÇó£¬È·±£Á÷Á¿À´Ô´£¬Á÷Á¿·Ö²¼¸üÌù½üÕæÊµÇé¿ö¡£ÔÚ Rhino ƽ̨ÉÏ¿ÉÒÔÑ¡Ôñ²»Í¬µØÓò²»Í¬ÔËÓªÉÌ£¬´ÓÈ«¹ú¸÷¸öµØÇø·¢Æðѹ²âÁ÷Á¿¡£

2.5 ѹ²âÈÛ¶Ï

ΪÁËÓ¦¶ÔÏßÉÏѹ²â·çÏÕ£¬Rhino ƽ̨ÌṩÁ½ÖÖÈÛ¶Ï·½Ê½£¬À´Ó¦¶Ôѹ²â¹ý³ÌÖеÄÍ»·¢Ê¼þ£¬À´½µµÍ¶ÔÏßÉÏ·þÎñÔì³ÉµÄÓ°Ïì¡£

2.5.1 »ùÓڸ澯¼à¿ØµÄÈÛ¶Ï

ÿ¸öѹ²âÈÎÎñ£¬¶¼¿ÉÒÔ¹ØÁªµ÷ÓÃÁ´ÖÐÈÎÒâ·þÎñµÄ¸æ¾¯¹æÔò¡£ÔÚѹ²âÈÎÎñÖ´Ðйý³Ì£¬Rhino ƽ̨»áÖ÷¶¯¼àÌý¸æ¾¯·þÎñ¡£µ±µ÷ÓÃÁ´ÖÐÓзþÎñ³öÏÖÁ˸澯£¬»áÁ¢¼´Í£Ö¹Ñ¹²â¡£¶ÔÓÚûÓйØÁªµÄ¸æ¾¯£¬Rhino ƽ̨Ҳ»á¼Ç¼ÏÂÀ´£¬±ãÓÚѹ²âÎÊÌⶨλ¡£

2.5.2 »ùÓÚ Metric µÄÈÛ¶Ï

×Ô¶¨Òå¼à¿ØÖ¸±ê¼°ãÐÖµ£¬µ½´ïãÐÖµºó£¬Ò²»á×Ô¶¯Í£Ö¹Ñ¹²â¡£Ä¿Ç°Ö§³Ö CPU¡¢Memory¡¢ ÉÏÓÎÎȶ¨ÐÔ¡¢´íÎóÈÕÖ¾£¬ÒÔ¼°ÆäËû×Ô¶¨ÒåÖ¸±ê¡£

´ËÍ⣬³ýÁË Rhino ƽ̨×ÔÉíÌṩµÄÈÛ¶Ï»úÖÆÒÔÍ⣬¹«Ë¾·þÎñÖÎÀí¼Ü¹¹Ò²ÌṩÁ˺ܶà¶îÍâµÄÈÛ¶Ï»úÖÆ£¬Èçѹ²â¿ª¹Ø£¬Ò»¼üÇжÏѹ²âÁ÷Á¿£»¹ýÔØ±£»¤£¬·þÎñ¹ýÔØÊ±×Ô¶¯¶ªÆúѹ²âÁ÷Á¿¡£

2.6 ÈÎÎñÄ£ÐÍ

2.6.1 HTTP ÈÎÎñ

¶ÔÓÚ HTTP ЭÒ飬²Î¿¼ÁË Postman£¬È«²¿¿ÉÊÓ»¯²Ù×÷£¬±£Ö¤ËùÓÐÈ˶¼ÄÜÉÏÊÖ²Ù×÷£¬¼«´ó½µµÍÁËѹ²âµÄʹÓÃÃż÷ºÍ³É±¾¡£

2.6.2 RPC ÈÎÎñ

¶ÔÓÚ RPC ÈÎÎñ£¬Rhino Ò²×Ô¶¯Íê³ÉÁË¶Ô IDL µÄ½âÎö£¬È»ºóת»»³É JSON ¸ñʽ£¬±ãÓÚÓû§²ÎÊý»¯´¦Àí¡£

2.6.3 ×Ô¶¨Òå-Go Plugin

¶ÔÓÚ·Ç HTTP/RPC µÄЭÒ飬ÒÔ¼°Óи´ÔÓÂß¼­µÄѹ²âÈÎÎñ£¬Rhino ƽ̨ҲÌṩÁËÍêÉÆµÄ½â¾ö·½°¸¡ª¡ªGo Plugin¡£

Go Plugin ÌṩÁËÒ»ÖÖ·½Ê½£¬Í¨¹ýÔÚÖ÷³ÌÐòºÍ¹²Ïí¿âÖ±½Ó¶¨ÒåһϵÁеÄÔ¼¶¨»òÕß½Ó¿Ú£¬¾Í¿ÉÒÔ¶¯Ì¬¼ÓÔØÆäËûÈ˱àÒëµÄ Go ÓïÑÔ¹²Ïí¶ÔÏó£¬Ê¹µÃÖ÷³ÌÐò¿ÉÒÔÔÚ±àÒëºó¶¯Ì¬¼ÓÔØ¹²Ïí¿â£¬ÊµÏÖÈȲå°ÎµÄ²å¼þϵͳ¡£´ËÍâÖ÷³ÌÐòºÍ¹²Ïí¿âµÄ¿ª·¢Õß²»ÐèÒª¹²Ïí´úÂ룬ֻҪ˫·½µÄÔ¼¶¨²»±ä£¬Ð޸Ĺ²Ïí¿âºóÒ²²»ÔÙÐèÒªÖØÐ±àÒëÖ÷³ÌÐò¡£

Óû§Ö»Òª¸ù¾Ý¹æ·¶ÒªÇó£¬ÊµÏÖÒ»¶Î·¢Ñ¹ÒµÎñÂß¼­´úÂë¼´¿É¡£Rhino ƽ̨¿ÉÒÔ×Ô¶¯À­È¡´úÂ룬´¥·¢±àÒë¡£²¢½«±àÒëºóµÄ²å¼þ SO Îļþ·Ö·¢µ½¶à¸öѹ²â Agent¡£Agent ¶¯Ì¬¼ÓÔØ SO Îļþ£¬²¢·¢ÔËÐÐÆðÀ´£¬¾Í¿ÉÒԴﵽѹ²âµÄÄ¿µÄ¡£´ËÍ⣬Rhino »¹Õë¶Ô³£¼û Go Plugin ѹ²â³¡¾°£¬½¨Á¢ÁËѹ²â´úÂëʾÀý´úÂë¿â¡£¶ÔÓÚѹ²âÐÂÊÖ£¬¼òµ¥ÐÞ¸ÄÏÂÒµÎñÂß¼­´úÂ룬¾Í¿ÉÒÔÍê³Éѹ²âÁË¡£ÕâÑù¾Í½â¾öÁ˷dz£¼ûЭÒ飬ÒÔ¼°¸´ÔÓѹ²â³¡¾°µÈµÄѹ²âÎÊÌâ¡£

2.7 ѹ²âÒýÇæ

2.7.1 µ¥ Agent ¶àÒýÇæ

ѹ²âµ÷¶ÈµÄ×îСµ¥ÔªÊÇѹ²â Agent£¬µ«ÊÇʵ¼Êÿ¸ö Agent ÖÐÓйÒÔØ¶àÖÖѹ²âÒýÇæµÄÀ´Ö§³Å²»Í¬µÄѹ²â³¡¾°¡£Rhino ƽ̨ÔÚѹ²âÊý¾ÝºÍѹ²âÒýÇæÖ®¼äÔö¼ÓÁËÒ»¸öѹ²âÒýÇæÊÊÅä²ã£¬ÊµÏÖÁËѹ²âÊý¾ÝÓëѹ²âÒýÇæµÄ½âñѹ²âÒýÇæÊÊÅä²ã£¬»á¸ù¾ÝÑ¡Ôñ²»Í¬µÄѹ²âÒýÇæ£¬Éú³É²»Í¬ Schema µÄѹ²âÊý¾Ý£¬ÆôÓò»Í¬µÄÒýÇæÀ´Íê³Éѹ²â£¬¶øÕâЩ¶ÔÓû§ÊÇ͸Ã÷µÄ¡£

2.7.2 ѹ²âÒýÇæ

ÔÚѹ²âÒýÇæÉÏ£¬ÎÒÃÇÓпªÔ´µÄѹ²âÒýÇæ£¬Ò²ÓÐ×ÔÑеÄѹ²âÒýÇæ¡£

¿ªÔ´Ñ¹²âÒýÇæµÄÓŵãÊÇά»¤È˶࣬¹¦ÄܱȽϷḻ£¬Îȶ¨ÇÒÐÔÄܺã¬È±µã¾ÍÊÇÊäÈë¸ñʽ¹Ì¶¨£¬¶¨ÖÆÄѶȴ󡣴ËÍâ Agent Ó뿪Դѹ²âÒýÇæÖ®¼äͨ³£ÊDz»Í¬½ø³Ì£¬½ø³ÌͨÐÅÒ²´æÔڱȽϴóµÄÎÊÌ⣬²»ÈÝÒ׿ØÖÆ¡£

×ÔÑÐѹ²âÒýÇæ£¬ÓŵãÊÇºÍ Agent ͨ³£ÔËÐÐÔÚµ¥½ø³ÌÄÚ£¬±È½ÏÈÝÒ׿ØÖÆ£»È±µã¿ÉÄܾÍÊÇÐÔÄÜÉÔ΢²îһЩ¡£µ«ÊÇ Golang ÌìȻ֧³Ö¸ß²¢·¢£¬Òò´Ë×ÔÑкͿªÔ´Ö®¼äµÄÐÔÄܲî¾à²¢²»Ã÷ÏÔ¡£

HTTP ЭÒ飺ĬÈÏ Gatling £¬µ¥»ú·¢Ñ¹ÐÔÄܷdz£ºÃ£¬Ô¶³¬ÓÚ Jmeter¡£¶ÔÓÚÖÇÄÜѹ²â£¬»ò¶¯Ì¬µ÷½ÚµÄÇé¿ö£¬»áÇл»µ½×ÔÑÐѹ²âÒýÇæÉÏ¡£

RPC ЭÒ飺×ÔÑÐÒýÇæ£¬Ö÷ÒªÀûÓà Golang Э³Ì+ RPC Á¬½Ó³Ø£¬À´Íê³É¸ß²¢·¢Ñ¹²â¡£

GoPlugin ЭÒ飺×ÔÑÐÒýÇæ£¬ÀûÓà Golang Plugin ¿É¶¯Ì¬×°ÔصÄÌØÐÔ£¬×Ô¶¯×°ÔØ×Ô¶¨Òåѹ²â²å¼þ£¬À´Íê³Éѹ²â¡£

2.8 ѹ²â¼à¿Ø

2.8.1 ¿Í»§¶Ë¼à¿Ø

ÓÉÓÚ¹«Ë¾¼à¿ØÏµÍ³£¬×îСʱ¼äÁ£¶ÈÊÇ 30s£¬30s ÄÚµÄÊý¾Ý»á¾ÛºÏ³ÉÒ»¸öµã¡£Õâ¸öʱ¼äÁ£¶È¶ÔÓÚѹ²âÀ´ËµÊDZȽÏÄÑÒÔ½ÓÊܵġ£Òò´Ë£¬Rhino ƽ̨×Ô¼º´î½¨ÁËÒ»Ì׿ͻ§¶Ë¼à¿ØÏµÍ³¡£

ÿ¸ö Request ¶¼»áÒÔÇëÇó¿ªÊ¼Ê±¼äΪ»ù×¼´òÒ»¸öµã¡£

µ¥¸ö Agent ÄÚ£¬»á½«ÏàͬÈÎÎñÏàͬ½Ó¿Ú£¬1s ÄڵĴòµãÊý¾ÝÔÚ±¾µØ×öÒ»´Î»ã×Ü£¬Éϱ¨µ½ Kafka ÖС£

¼à¿Ø·þÎñ»áÏû·Ñ Kafka ÖеĴòµãÊý¾Ý£¬½«¶à¸ö Agent Éϱ¨µÄÊý¾Ý½øÐÐÔٴλã×Ü£¬È»ºóдÈëÊý¾Ý¿âÖС£

ǰ¶Ë¼à¿Ø±¨±í»áʵʱÀ­È¡Êý¾Ý¿âÖÐ¼à¿Ø»ã×ÜÊý¾Ý£¬»æÖÆÊµÊ±¼à¿ØÇúÏß¡£

ÔÚ¼à¿ØÊý¾Ý»ã×ÜÁ÷³ÌÖУ¬¶ÔÓÚÇëÇóÏìӦʱ¼äµÄ PCT99 ¼ÆË㣬ÊDZȽÏÄÑ´¦ÀíµÄ£º

Ŀǰ Rhino ƽ̨²ÉÓÃµÄ T-Digest Ëã·¨À´¼ÆËã 1 ÃëÄÚµÄ PCT99¡£

Õû¸öʱ¼ä¶ÎÄÚµÄ PCT99 µÄ¼ÆË㣬ÔòÊÇÒÔ PCT & AGV µÄ·½Ê½¾ÛºÏ¡£¼´µ¥Î»Ê±¼äÄÚͨ¹ý T-Digest ¼ÆËã PCT99£»Õû¸öʱ¼ä¶ÎÄÚµÄ PCT99£¬ÔòÊǶÔËùÓеãµÄ PCT99 ȡƽ¾ùÖµ¡£

ÕûÌ弯Ëã·½°¸ÒÑÓ빫˾·þÎñ¶Ë¼à¿ØËã·¨¶ÔÆë£¬Ä¿µÄÊǼõÉÙ¿Í»§¶Ë¼à¿ØÓë·þÎñ¶Ë¼à¿ØÖ®¼äµÄ Gap£¬¼õÉÙѹ²â½á¹û·ÖÎöµÄ¸ÉÈÅÒòËØ¡£

2.8.2 ·þÎñ¶Ë¼à¿Ø

·þÎñ¶Ë¼à¿Ø£¬Ö±½Ó½ÓÈëÁ˹«Ë¾Metricϵͳ¡£

ÔÚѹ²â¹ý³ÌÖУ¬Rhinoƽ̨»áÌṩÕûÌõÁ´Â·ÉÏËùÓнڵãºËÐÄÖ¸±êµÄ¼à¿Ø´óÅÌ£¬²¢¸ßÁÁÏÔʾ¿ÉÄÜ´æÔÚ·çÏյĽڵ㣬À´ÌṩʵʱԤ¾¯¡£

¶ÔÓÚÿ¸ö½ÚµãÒ²¶¼ÌṩÁËʵʱµÄ£¬ÏêϸµÄ¼à¿ØÇúÏßͼ¡£

¶ÔÓÚÿ¸ö½ÚµãĬÈÏÌṩCPU¡¢Memory¡¢QPSºÍError_RateµÈºËÐÄ¼à¿ØÖ¸±ê£¬Óû§¿ÉÒÔÔÚRhinoƽ̨ÉÏÐÞ¸Ä¼à¿ØÅäÖã¬Ôö¼ÓÆäËû×Ô¶¨Òå¼à¿ØÖ¸±ê¡£

2.8.3 ÐÔÄÜ Profile

ÔÚѹ²â¹ý³ÌÖУ¬Rhino ƽ̨»¹¿ÉÒÔʵʱ²É¼¯Ä¿±ê·þÎñ½ø³ÌµÄÐÔÄÜ Profile£¬²¢Í¨¹ý»ðÑæÍ¼µÄ·½Ê½Õ¹Ê¾³öÀ´£¬·½±ãÓû§½øÐÐÐÔÄÜÎÊÌâ·ÖÎöºÍÓÅ»¯£¬Èçͼ¡£

3. ѹ²âʵ¼ù

Rhino ѹ²âƽ̨ÊÇÒ»¸öÃæÏòÈ«×Ö½ÚÌø¶¯¹«Ë¾µÄ£¬ÎªÁËËùÓÐÑз¢Í¬Ñ§ÌṩµÄһվʽȫÁ´Â·Ñ¹²âµÄƽ̨¡£Rhino ƽ̨µÄÑз¢ÍŶӣ¬²»½ö¸ºÔð Rhino ƽ̨µÄÑз¢ÈÎÎñ£¬»¹»áÅäºÏ QA&RD À´Íê³É¹«Ë¾´óÐÍÏîÄ¿£¬ÖصãÒµÎñµÄÐÔÄÜѹ²â¹¤×÷¡£

3.1 ÖØ´óÏîĿ֧³Å

¹«Ë¾ÄÚÖØ´óÏîÄ¿µÄѹ²â£¬Rhino ƽ̨¶¼»á»ý¼«²ÎÓ룬ȫÁ¦Ö§³ÅµÄ¡£ÆäÖУ¬±È½ÏµäÐ͵ÄÏîÄ¿Óж¶Òô´ºÍí£¬Î÷¹Ï°ÙÍòÓ¢ÐÛ£¬´º½Úºì°üÓêµÈ»î¶¯¡£ÆäÖÐ×Ö½ÚÌø¶¯´º½Úºì°üÓê»î¶¯µÄÍê³ÉÊÇÓÉ Rhino ÍŶÓÀ´¸ºÔðºÍÍê³ÉµÄ¡£×Ö½Ú´º½Úºì°üÓê»î¶¯ÊÇÔÚ´º½ÚÆÚ¼ä£¬ËùÓÐ×Ö½Ú¿Í»§¶Ë·¢ÆðµÄ£¬ÖîÈç³é¿¨·ÖÏֽ𣬺ì°ü½õÀ𣬺ì°üÓêµÈһϵÁеij¬´ó¹æÄ£µÄºì°üÒýÁ÷»î¶¯¡£ÆäÁ÷Á¿¹æÄ£¾Þ´ó£¬Á÷Á¿Í»·¢ÐÔÇ¿£¬ÒµÎñÂß¼­ºÍÍøÂç¼Ü¹¹¸´ÔӶȸߵȵȣ¬¶¼¶Ô Rhino ƽ̨Ìá³ö²»Ð¡µÄÌôÕ½¡£

ÔÚ´º½Úºì°üÓê»î¶¯ÖУ¬ËùÓÐÓû§Á÷Á¿¶¼¾­¹ýÔËÓªÉÌרÏß½ÓÈëµ½ÍøÂç±ßÔµµÄ»ã¾Û»ú·¿£¬È»ºó¾­¹ý¹ýÂ˺ÍÑéÖ¤ºó£¬ÔÙת·¢µ½ºËÐÄ»ú·¿¡£ÆäÖи÷¸ö IDC »¥Îª±¸·Ý£¬Æä¾ßÌåÁ÷Á¿Â·ÏßÈçͼ¡£ÔÚÕâÀ²»½öÒªÑéÖ¤ºó¶Ë¸÷·þÎñÊÇ·ñÄܳÐÔØÔ¤ÆÚÁ÷³Ì£¬»¹ÒªÑéÖ¤¸÷¸öרÏß´ø¿í£¬¸÷¸öÍø¹Ø´ø¿í¼°×ª·¢ÄÜÁ¦£¬¸÷ IDC ³ÐÔØÄÜÁ¦ÒÔ¼°Ö®¼ä´ø¿íµÈµÈ¡£

Ϊ´Ë£¬ÎÒÃǽ«Õû¸öѹ²â²ð·Ö³É¶à¸ö½×¶Î£¬À´¼ò»¯Ñ¹²â¸´ÔÓÐÔ£¬Ò²½µµÍѹ²âÎÊÌⶨλµÄÄѶȣº

ͨ¹ý²¦²â/CDN ѹ²âÀ´·Ö±ðÑéÖ¤¸÷¸ö»ã¾Û»ú·¿µÄ³ÐÔØÄÜÁ¦£¬´ø¿í£¬ÒÔ¼°Íø¹ØÐÔÄÜ¡£

ÔÚ¸÷¸ö»ã¾Û»ú·¿²¿Êðѹ²â Agent£¬À´Ä£ÄâÓû§Á÷Á¿·Ö²¼£¬À´Ñ¹²â²¿ÊðÔÚºËÐÄ»ú·¿µÄºó¶Ë·þÎñÐÔÄÜ¡£

µ¥½Ó¿Úµ¥ÊµÀýѹ²â£¬µ¥½Ó¿Úµ¥»ú·¿Ñ¹²â£¬³¡¾°»¯È«Á´Â·µ¥»ú·¿Ñ¹²â£¬³¡¾°»¯È«Á´Â·È«×ÊԴѹ²â£¬·Ö½×¶ÎÀ´ÑéÖ¤ºó¶Ë·þÎñÐÔÄÜ¡£

×îºó»áͨ¹ýÈ«Íø²¦²â£¬À´Ä£ÄâÕæÊµ´º½Úºì°üÓê¸ß·åÆÚÁ÷Á¿£¬ÕûÌåÑé֤ȫϵͳÐÔÄÜ¡£

ÔÚÕâЩ´óÐÍÏîÄ¿µÄÖ§³ÅÖУ¬Rhino ÍŶӲ»½öѧµ½ÁË´óÁ¿µÄÒµÎñºÍ¼Ü¹¹Éè¼ÆÖªÊ¶£¬»¹Á˽⵽ҵÎñÑз¢Í¬Ñ§ÈçºÎ¿´´ýѹ²â£¬ÈçºÎʹÓÃÆ½Ì¨£¬°ïÖúÎÒÃÇ·¢ÏÖ¸ü¶àƽ̨µÄÎÊÌ⣬´Ù½øÆ½Ì¨²»¶Ïµü´úÓÅ»¯¡£

3.2 ÈÕ³£Ñ¹²âÈÎÎñÖ§³Å

ÈÕ³£Ñ¹²âÖ§³Å£¬Ò²ÊÇ Rhino ƽ̨·Ç³£ÖØÒªµÄÒ»ÏîÈÎÎñ¡£¶ÔÓÚÈÕ³£Ñ¹²âÖÐÓöµ½µÄ¸÷ÖÖÎÊÌ⣬ÎÒÃDzÉÓÃÁ˸÷ÖÖ·½°¸À´½â¾ö£º

רÈË Oncall ÖµÖÜ£¬Ò»¶ÔÒ»Ö¸µ¼¡£

ÏêϸÍêÉÆµÄѹ²â֪ʶ¿â£¬²»½ö½éÉÜÁËÆ½Ì¨ÈçºÎʹÓ㬻¹°üÀ¨Ñ¹²âÈçºÎ¸ÄÔ죬ѹ²â·½°¸ÈçºÎÖÆ¶¨£¬Ñ¹²âÎÊÌâÈçºÎ¶¨Î»¡£

ÍêÉÆµÄÐÔÄÜÅàѵÌåϵ£º¶¨ÆÚ¿ªÕ¹ÐÔÄܲâÊÔÏà¹Ø·ÖÏí£¬²¢¶ÔÓÚ QA&RD ÍŶӣ¬Ò²»á¿ªÕ¹×¨ÒµµÄѹ²âÅàѵ¡£

3.3 ÏßÉÏÁ÷Á¿µ÷¶È

Rhino ƽ̨»¹ÊµÏÖÁËÏßÉÏÁ÷Á¿µÄ¶¨ÆÚµ÷¶È£¬ÒÔ´ïµ½ÏßÉÏʵÀý×Ô¶¯Ñ¹²âµÄÄ¿µÄ[8]£º

½«ÏßÉÏÁ÷Á¿Öð²½µ÷¶Èµ½Ä¿±êʵÀýÉÏ£¬À´²âÊÔ·þÎñʵÀýÐÔÄܼ«ÏÞ£¬²¢¸ø³öʵÀýÐÔÄÜ Profile£¬·ÖÎö³öʵÀýÐÔÄÜÆ¿¾±¡£

ͨ¹ý³¤ÆÚµÄÁ÷Á¿µ÷¶È£¬À´¹Û²ì·þÎñʵÀýÐÔÄܱ仯£¬ÒÔ¼à¿Ø·þÎñÐÔÄܵı仯Ç÷ÊÆ¡£

ͨ¹ý²»Í¬×ÊԴˮλϵÄʵÀýÐÔÄÜ£¬À´Ô¤¹À³öÕû¸ö¼¯ÈºÈÝÁ¿¡£Íê³É¶Ô·þÎñÈÝÁ¿Ô¤¹À£¬ÒÔ¼°ÏßÉÏ·çÏÕÆÀ¹À¡£

»ùÓÚÓ¾µÀ»¯µÄÁ÷Á¿µ÷¶È£¬¿ÉÒÔ¾«È·µÄÔ¤¹À·þÎñ¼¯ÈºÈÝÁ¿¡£

Æä¾ßÌåʵÏÖ·½°¸ÈçÏ£º

Ð޸ĸºÔؾùºâÖÐÄ¿±êʵÀýµÄÈ¨ÖØ Weight Öµ£¬Öð²½µ÷´ó¸Ã Weight Öµ£¬½«¸ü¶àÁ÷Á¿¼¯Öдòµ½Ä¿±êʵÀý£¬Ö±µ½´ïµ½ÉèÖõÄÍ£Ö¹ãÐÖµ¡£

ĿǰÒѾ­ÓÐ 500+΢·þÎñ½ÓÈ룬ÿÌ춨ʱִÐÐÁ÷Á¿µ÷¶È£¬À´¼à¿ØÏßÉÏ·þÎñÐÔÄܱ仯Ç÷ÊÆ£¬ÈçÏÂͼ¡£

3.4 ³£Ì¬»¯Ñ¹²â

Rhino ƽ̨Ŀǰ»¹ÔÚ¹«Ë¾ÄÚÍÆÐг£Ì¬»¯Ñ¹²â£¬Í¨¹ýÖÜÆÚ¶¨Ê±»¯µÄ×Ô¶¯»¯È«Á´Â·Ñ¹²â£¬À´ÊµÏÖÒÔÏÂÄ¿±ê£º

ʵʱ¼à¿ØÏßÉÏ·þÎñ¼¯ÈºÈÝÁ¿£¬·ÀÖ¹·þÎñÐÔÄÜÁÓ»¯¡£

ʵʱ¼à¿ØÏßÉÏÁ´Â·ÈÝÁ¿£¬·ÀÖ¹Á´Â·ÐÔÄÜÁÓ»¯¡£

Ŀǰ Rhino ƽ̨Éϵij£Ì¬»¯Ñ¹²â£¬»áÖÜÆÚ¶¨Ê±£¬ÒÔÎÞÈËÖµÊØµÄ·½Ê½£¬×Ô¶¯Ö´ÐÐѹ²âÈÎÎñ£¬²¢ÍÆËÍѹ²â½á¹û¡£ÔÚѹ²âÖ´Ðйý³ÌÖУ¬»á¸ù¾Ýµ÷ÓÃÁ´×Ô¶¯Íê³Éѹ²â¿ª¹Ø¿ªÆô£¬·¢Æðѹ²âÁ÷Á¿¡£ÊµÊ±¼à¿Ø·þÎñÐÔÄÜÖ¸±ê£¬²¢¸ù¾Ý Metric ¼°¸æ¾¯¼à¿Ø£¬×Ô¶¯Íê³Éѹ²âÈÛ¶Ï£¬ÒÔ±£Ö¤Ñ¹²â°²È«¡£

ĿǰÒѾ­Óжà¸öÒµÎñ·½½ÓÈ볣̬»¯Ñ¹²â£¬ÒԴ˱£Ö¤ÏßÉÏ·þÎñµÄÎȶ¨ÐÔ¡£

3.5 DevOps Á÷Ë®ÏßÖеÄѹ²â

·þÎñÔÚÉÏÏßʱ£¬¶¼»á¾­¹ýÔ¤·¢²¼¡¢ÏßÉÏСÁ÷Á¿»Ò¶È¡¢ÏßÉÏÈ«Á¿·¢²¼¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÏßÉϲâÊÔ Case ÒÔ¼°»Ò¶È·¢²¼£¬À´À¹½Ø·þÎñÏßÉϹ¦ÄÜȱÏÝ¡£µ«ÊǶÔÓÚÐÔÄÜȱÏݵÄÀ¹½Ø£¬È´²»¹»ÓÐЧ¡£

´ÓÏßÉϹÊÕϸú×ÙϵͳÀï¾Í¿ÉÒÔ·¢ÏÖ£¬ÓÉÓÚÉÏÏßǰûÓÐ×öºÃÐÔÄÜѹ²â£¬ºÜ¶àÐÔÄÜȱÏݶ¼ÌÓÒݵ½ÁËÏßÉÏ¡£

ΪÁËÀ¹½Ø¸÷ÖÖÐÔÄÜȱÏÝ£¬Rhino ƽ̨Íê³ÉÁË DevOps ƽ̨µÄ´òͨ¡£½«Ñ¹²â·þÎñÔÚ DevOps ƽ̨ÉÏ×¢²á³ÉÒ»¸öÔ­×Ó·þÎñ £¬Ñз¢ÈËÔ±¿ÉÒÔ½«Ñ¹²â½Úµã±àÅÅÔÚÈÎÒâÁ÷Ë®ÏßµÄÈÎÒâλÖã¬ÊµÏÖÉÏÏßǰµÄÀýÐÐѹ²â¡£DevOps Á÷Ë®ÏßÖеÄѹ²â£¬²»½ö¿ÉÒÔ°ïÖú RD ·¢ÏÖ´úÂëÖеÄÐÔÄÜÎÊÌ⣬»¹ÄÜÓëÐÔÄÜ»ùÏß½øÐÐ Diff£¬À´·¢ÏÖ´úÂëÐÔÄܱ仵µÄζµÀ¡£

4. ×ܽáÓëÕ¹Íû

4.1 ×ܽá

Rhino ѹ²âƽ̨´ÓÁ¢Ïîµ½ÏÖÔÚ£¬²»µ½Á½ÄêµÄʱ¼äÄÚ£¬Æä·¢Õ¹ÒѾ­³õ¾ß¹æÄ££¬Èçͼ£¨Ã¿ÔÂѹ²âÖ´ÐÐͳ¼Æ£©¡£Õâ¸öÆÚ¼ä£¬·Ç³£·Ç³£¸Ðл¹«Ë¾ÄÚËùÓкÏ×÷ÍŶӣ¬ÓÈÆäÊǼܹ¹ÍŶӣ¬ÖÐ̨ÍŶӶÔѹ²âƽ̨µÄÖ§³Å£¬Ã»ÓÐËûÃǵÄÖ§³Å£¬È«Á´Â·Ñ¹²â½¨ÉèÊÇÄÑÒÔÍê³ÉµÄ¡£

4.2 δÀ´·¢Õ¹

4.2.1 ÒµÎñÉî²ã´Î¶¨ÖÆ»¯

ͨÓÃѹ²âƽ̨ÒѾ­³õ²½´î½¨Íê³É£¬»ù±¾ÉÏÄÜÂú×ãÒµÎñÏßÈÕ³£Ñ¹²âÐèÇó¡£µ«ÔÚÈÕ³£Ñ¹²âÖ§³Å¹ý³ÌÖУ¬·¢ÏÖ²»Í¬ÒµÎñÏßÔÚѹ²âʱ£¬µ«ÊÇÈÔÈ»ÓдóÁ¿µÄǰÖúͺó¼Ì¹¤×÷ÐèÒªÈ˹¤À´Íê³É£º

ÈçºÎ¸ü½øÒ»²½½µµÍÒµÎñ·½Ñ¹²â¸ÄÔìµÄ³É±¾£¿

ÈçºÎ¼õÉÙѹ²â»·¾³Êý¾ÝÔ¤Öóɱ¾£¿

ÈçºÎ¿ìËÙÍê³Éѹ²âÊý¾ÝÇåÀí£¿

ÈçºÎ¿ìËÙ¶¨Î»³öÐÔÄÜÎÊÌâµÈµÈ¡£

Rhino ѹ²âƽ̨ºóÐø½«¸ü½øÒ»²½ÉîÈëÒµÎñ£¬Óë¸÷´óÒµÎñ·½¿ªÕ¹¸üÉîÈëµÄºÏ×÷£¬Ìṩ¸üÉî¶ÈµÄÒµÎñ¶¨ÖÆ£¬ÎªÑз¢ÌáЧ£¬ÖúÁ¦ÒµÎñÏß·¢Õ¹¡£

4.2.2 ѹ²âÓëÈÝÁ¿¹æ»®

ÒµÎñĿǰ×ÊÔ´ÊÇ·ñ³ä×㣬Æä¾ßÌåÈÝÁ¿ÊǶàÉÙ£»°´ÕÕĿǰҵÎñÔö³¤£¬Æä»úÆ÷×ÊÔ´»¹ÄÜÖ§³Å¶à¾Ã£¿

Ŀǰ·þÎñ×ÊÔ´ÀûÓÃÈçºÎ£¬ÊÇ·ñ¿ÉÒÔÓÅ»¯£¬ÈçºÎ¸ü½øÒ»²½ÌáÉý×ÊÔ´ÀûÓÃÂÊ£¬½µµÍ»úÆ÷×ÊÔ´³É±¾£¿

ij´óÐͻ£¬ÐèÒªÉêÇë¶àÉÙ×ÊÔ´£¿ÊÇ·ñ²»ÐèҪѹ²â£¬»òÕß×Ô¶¯»¯ÀûÓÃÏßÉÏÁ÷Á¿Êý¾Ý£¬»òÕßÀûÓÃÈÕ³£Ñ¹²âÊý¾Ý£¬¾Í¿ÉÒÔ¸ø³öÉÏÊöÎÊÌâµÄ½áÂÛ£¿

4.2.3 ѹ²âÓë SRE

ÈçºÎ±£Ö¤·þÎñÎȶ¨ÐÔ£¬ÈçºÎ¼à¿Ø·þÎñÐÔÄÜÁÓ»¯²¢¼°Ê±Ô¤¾¯£¬ÏÞÁ÷¡¢³¬Ê±¡¢ÖØÊÔÒÔ¼°È۶ϵȷþÎñÖÎÀí´ëÊ©ÅäÖÃÊÇ·ñºÏÀí£¿ÒÔ¼°ÈçºÎÅäºÏ»ìãç²âÊÔ½øÐÐÈÝÔÖÑÝÁ·£¬±£Ö¤·þÎñÎȶ¨ÐԵȵȣ¬ÕâЩ Rhino ƽ̨¶¼»á×ö¸ü½øÒ»²½Ì½Ë÷¡£

 
   
5853 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨²âÊÔ
΢·þÎñ¼Ü¹¹ÏµIJâÊÔÖ®µÀ
´ÓÁã¿ªÊ¼ÕÆÎÕ΢·þÎñÈí¼þ²âÊÔ
ÈçºÎ½øÐвâÊÔÐèÇó·ÖÎö£º´Ó½ÓÊÕÐèÇóµ½ÓÃÀýÉè¼Æ
python_selenium×Ô¶¯»¯²âÊÔ¿ò¼Ü
×îпγÌ
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀýÉè¼Æ
ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
×Ô¶¯»¯²âÊÔ¿ò¼ÜÉè¼Æ¸ß¼¶Êµ¼ù
½Ó¿Ú×Ô¶¯»¯²âÊÔ·½·¨Ó빤¾ß
Èí¼þ²âÊÔ·½·¨Óëʵ¼ù(¹á´©°¸Àý)
³É¹¦°¸Àý
ij֧¸¶ÆóÒµ µ¥Ôª²âÊÔÓëÖØ¹¹Åàѵ
±±¾© Óû§ÌåÑé¡¢¿ÉÓÃÐÔ²âÊÔÓëÆÀ¹À
ij¾ü¹¤Ñо¿µ¥Î» ×Ô¶¯»¯²âÊÔ·½·¨¡¢°¸ÀýÓ빤¾ß
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ̽Ë÷ÐÔ²âÊÔÓë²âÊÔ·ÖÎö
±±¾© º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Èí¼þ²âÊԼܹ¹Ê¦