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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
¿ªÔ´ | Service Mesh Êý¾ÝÆ½Ãæ SOFAMosn Éî²ã½ÒÃØ
 
×÷Õߣº¶äÏþ¶«
  1779  次浏览      27
 2019-10-22
   
 
±à¼­ÍƼö:
ÎÄÕ½éÉÜÁË SOFAMesh µÄÕûÌå¼Ü¹¹¼°ºËÐÄ˼·£¬±¾´Î¾Û½¹ÔÚÊý¾ÝÆ½ÃæÔÚÂìÒÏÂ䵨µÄ˼¿¼ºÍ̽Ë÷
±¾ÎÄÀ´×ÔÓÚ΢ÐŹ«ÖÚºÅQunar¼¼ÊõɳÁú£¬ÓÉ»ðÁú¹ûÈí¼þç÷ç÷±à¼­¡¢ÍƼö¡£

ÎÒÃÇÊ×ÏÈÀ´¿´Ò»ÏÂΪʲôÂìÒÏ»áÑ¡Ôñ Service Mesh ÖØµã¹éÄÉΪ 4 ¸ö·½Ã棺

ÂìÒÏÕýÔÚÈ«ÃæÓµ±§Î¢·þÎñ£¬ÔÆÔ­Éú£¬²»¹ÜÊÇ SOFA5£¬»¹ÊǼæÈÝ K8S µÄÈÝÆ÷ƽ̨ Sigma Â䵨£¬Service Mesh ¶¼ÊDz»¿É»ñÈ¡µÄÖØÒª×é¼þ¡£

Æä´Î£¬ÂìÒϵÄÔËάÌåϵÔÚ·þÎñ²ãÃæ»ùÓÚÁ÷Á¿µ÷¶È¹¤×÷£¬±ÈÈç˵ LDC ¼Ü¹¹ÔÚÂß¼­ zone ¼äµÄµ÷¶ÈÁ÷Á¿£¬ÔÙ±ÈÈ絯ÐÔÉìËõ£¬±¾ÖÊÉÏÒ²ÊÇÔÚÒì¹¹»ú·¿¼äµ÷¶ÈÁ÷Á¿£¬´ËÍ⻹ÓÐÏñÂß¼­ zone À¶ÂÌ·¢²¼£¬»ú·¿ÈÝÔֵȶ¼ÐèÒªÔÚÁ÷Á¿µ÷¶ÈÄÜÁ¦Éϸü½¡×³£¬¸üÁé»î£¬¸ü¾ßÀ©Õ¹ÐÔ¡£

´ËÍ⣬ÓÉÓÚÂìÒϵĽðÈÚÊôÐÔ£¬ÎÒÃÇÔÚ·þÎñ¼øÈ¨µÈ·½ÃæÓиüÑϸñµÄÒªÇ󣬱ÈÈç˵¹úÃܵÄÂ䵨£¬¼ÓÃÜ¿¨ÄÚµÄÖ¤Êé¹ÜÀí£¬¼Ó½âÃܵȷ½Ã棬²»Ö¹ÒªÇó¸ü¸ßµÄ°²È«¼¶±ð£¬»¹ÒªÓгÐÔØ´óÁ÷Á¿µÄÄÜÁ¦¡£Í¬Ê±ÎÒÃÇ¿´µ½£¬zero trustÍøÂç¼Ü¹¹Ò²ÔÚ¼ÓËÙ·¢Õ¹£¬ÕâÓëÎÒÃǵÄËßÇó²»Ä±¶øºÏ¡£

×îºó£¬ÂìÒÏÄÚ²¿¼¼ÊõÕ»¶àÑù£¬µ«¶àÖÖÓïÑÔÌåϵÈÚºÏÈÔÈ»³É±¾ºÜ¸ß¡£

¾Ù¸öÀý×Ó£¬·Ç SOFA ÓïÑÔÓë SOFA »¥Í¨ÒªÀí½âÅäÖÃÖÐÐÄ£¬SOFARPC µÄÐòÁл¯µÈÂß¼­£¬Èç¹ûÔÚÉú²ú»·¾³²¿Êð»¹ÒªÀí½â LDC ·ÓɹæÔò£¬¶øÕâЩ¹²ÐÔÐèÇ󶼿ÉÒÔͨ¹ýϳÁµ½ Mesh ÌåϵÀ´½â¾ö¡£

Á˽â SOFAMesh µÄͬѧӦ¸ÃÖªµÀ£¬ÂìÒÏÑ¡ÔñÁËʹÓà Golang ×ÔÑÐÊý¾ÝÆ½Ãæ£¬×öÕâ¸ö¾ö¶¨ÎÒÃÇÖØµã¿¼ÂÇÁËδÀ´µÄ¼¼ÊõÑ¡ÐÍ£¬¿çÍŶÓÑз¢Ð§ÂÊ£¬ÂìÒÏÏÖÓм¼ÊõÌåϵ£¬ÔËάÌåϵµÈÒòËØ£»Í¬Ê±Í¨¹ýµ÷ÑкÍÑéÖ¤£¬Golang °æ±¾µÄÐÔÄÜÒ²ÊÇÎÒÃÇ¿ÉÒÔ½ÓÊܵġ£

½ÓÏÂÀ´£¬ÎÒ»áÏò´ó¼Ò½éÉÜÓÉÂìÒÏºÍ UC ÁªºÏÑз¢µÄ Mesh Êý¾ÝÆ½Ãæ£¬ÎÒÃÇΪËûÈ¡Ãû SOFAMosn

SOFAMesh µÄÕûÌå¼Ü¹¹

´ó¼Ò¿´µ½µÄͼʾÊÇ»ùÓÚ Istio µÄ¼Ü¹¹£¬ÔÚÊý¾ÝÆ½ÃæÎÒÃÇʹÓà SOFAMosn Ìæ´úÁË Envoy£¬Í¬Ê±¼ÓÈëÁËһЩÂìÒÏʵ¼ùÖÐÃþË÷µÄ¸Ä½ø¡£

0.1.0 °æ±¾µÄ SOFAMosn Ö§³ÖÁË xDS V0.4 api ºËÐÄÄÜÁ¦£¬ÖصãÖ§³ÖÁË SOFARPC ЭÒ飬²¢ÔÚÂìÒÏÄÚ²¿ÔÚÉú²ú»·¾³Ê¹Óã»Í¬Ê±Ö§³ÖÁËHTTP/1.1£¬HTTP/2.0µÄ»ù±¾¹¦ÄÜ£¬µ«Ä¿Ç°ÔÝδÔÚÉú²ú»·¾³Ê¹Óá£

SOFAMosn µÄºËÐÄÉè¼ÆË¼Â·

Ê×ÏÈ£¬½« SOFAMosn ×÷Ϊ´úÀí´¦ÀíµÄÊý¾ÝÁ÷»®·ÖΪ4²ã£¬ÔÚÈë·½ÏòÊý¾ÝÒÀ´Î¾­¹ýÍøÂç IO ²ã£¬¶þ½øÖÆÐ­Òé´¦Àí²ã£¬Ð­ÒéÁ÷³Ì´¦Àí²ã£¬×ª·¢Â·ÓÉ´¦Àí²ã£»³öÏòÓëÈëÏò¹ý³Ì»ù±¾Ïà·´¡£

Á˽âÁË·Ö²ãµÄ»ù±¾Ë¼Â·£¬¾ßÌå½éÉÜһϸ÷²ãµÄ¾ßÌåÖ°ÄÜ£º

IO ²ãÌṩÁË IO ¶ÁдµÄ·â×°ÒÔ¼°¿ÉÀ©Õ¹µÄ IO ʼþ¶©ÔÄ»úÖÆ

PROTOCOL ²ãÌṩÁ˸ù¾Ý²»Í¬Ð­Òé¶ÔÊý¾Ý½øÐÐÐòÁл¯/·´ÐòÁл¯µÄ´¦ÀíÄÜÁ¦

STREAMING ²ãÌṩÏòÉϵÄЭÒéÒ»ÖÂÐÔ£¬¸ºÔð STREAM ÉúÃüÖÜÆÚ£¬¹ÜÀí Client / Server ģʽµÄÇëÇóÁ÷ÐÐΪ£¬¶Ô Client ¶Ëstream Ìṩ³Ø»¯»úÖÆµÈ

Proxy ²ãÌṩ·ÓÉÑ¡Ôñ£¬¸ºÔؾùºâµÈµÄÄÜÁ¦£¬ÈÃǰºó¶Ë stream Á÷תÆðÀ´¡£´ó¼Ò¿ÉÒÔ´ÓÕâÕÅͼÇåÎúµÄ¿´µ½µ¥ÏòÇëÇóÁ÷תµÄ¹ý³Ì¡£

Á˽âÁË·Ö²ãÉè¼ÆºÍת·¢Á÷³Ì£¬ÎÒÃÇÔÙ¿´ÏÂÏß³ÌÄ£ÐÍ¡£´Ó 0.1.0 °æ±¾µÄÏß³ÌÄ£ÐÍ£¬¿ÉÒÔ¿´µ½Ã¿¸öÁ´½ÓµÄ IO Э³ÌÊdzɶԳöÏֵ쬶ÁЭ³Ì¸ºÔð¶ÁÈ¡£¬Ê¼þ»úÖÆ¼° Codec Âß¼­£¬Êý¾ÝÉÏÉýµ½ steam ²ã£¬¾ßÌåµÄ stream ʼþÓɶÀÁ¢µÄ³£×¤ worker Э³Ì³Ø¸ºÔð´¦Àí¡£

ÔÚ 0.2.0 °æ±¾ÖÐÎÒÃǽ«»á½øÐжàºËÓÅ»¯£¬¶ÁЭ³Ì½«²»ÔÙ¸ºÔð codec Âß¼­£¬½«×ª·¢ÓÉ codec worker pool À´½øÐС£´Ó·¢Õ¹·½ÏòÉÏ¿´£¬ÎÒÃÇ»á½è¼ø SEDA µÄ˼·£¬½«×ª·¢Á÷³ÌÖÐÿһ½×¶ÎµÄ´¦Àí³éÏóΪһ¸ö stage£¬Í¨¹ý task queue£¬worker Э³Ì³Ø£¬controller µÄ»úÖÆÀ´¶Ôÿһ¸ö½×¶Î½øÐд¦Àí¡£´Ó¼¼ÊõʵÏÖÉÏ¿´£¬Golang ʵÏÖ SEDA »úÖÆµÄ×é¼þÒ²¸ü¼òµ¥¡£

SOFAMosn µÄÄ£¿é»®·Ö

³ýÁ˸ղŽéÉÜÁË 4 ¸öºËÐÄÄ£¿é£¬»¹ÓÐÈç·ÓÉÄ£¿é¸ºÔðÇëÇóµÄ·ÓÉѰַ£¬ºó¶Ë¹ÜÀíÄ£¿é¸ºÔð¹ÜÀíºó¶ËµÄÉúÃüÖÜÆÚ£¬½¡¿µ¶ÈµÈ¡£ÆäÖÐÀ¶É«µÄ¿òÊÇ SOFAMosn 0.1.0 »áÉæ¼°µ½µÄ¹¦ÄÜÄ£¿é£¬ºìÉ«µÄÐéÏß¿òÊÇÎÒÃǹ滮ȥʵÏÖ£¬»òʵÑéµÄһЩtopic¡£Õâ·½ÃæÒ²»¶Ó­´ó¼Ò¼ÓÈëÎÒÃÇÒ»ÆðÀ´½¨Éè¡£

×îºó×ܽáһϣ¬Ä£¿é»¯£¬·Ö²ã½âñîÊÇ SOFAMosn Éè¼ÆµÄ³õÖÔ£¬´ËÍâ¿É±à³ÌÐÔ£¬Ê¼þ»úÖÆ£¬À©Õ¹ÐÔ£¬¸ßÍÌÍÂÁ¿£¬¶¼ÊÇÉè¼ÆÖеÄÖØÒª¿¼Á¿ÒòËØ¡£

SOFAMosn ºËÐÄÄÜÁ¦

½éÉÜÍê½á¹¹Éè¼Æ·½ÃæµÄһЩ˼·£¬ÎÒÃÇÀ´¿´¿´ SOFAMosn 0.1.0 µÄºËÐÄÄÜÁ¦¡£

ÔÚÍøÂçºËÐÄÄÜÁ¦·½Ã棬ÎÒÃǽ« IO ´¦ÀíÏà¹ØÄÜÁ¦·â×°³éÏó³É¿É±à³Ì½Ó¿Ú£¬Õⲿ·ÖÎÒÃÇÒѾ­×ö¹ýÐÔÄÜÓÅ»¯£¬¿ÉÒÔµ¥¶ÀʹÓã»SOFAMosn ÌṩÁËÄÚÖÃµÄ TCP ´úÀí¹¦ÄÜ£¬Ò²×ö¹ýÐÔÄÜÓÅ»¯£¬¿Éµ¥¶ÀʹÓã»´ËÍâ SOFAMosn Ö§³Ö TLS Á´Â·¼ÓÃÜ£¬Ä¿Ç°¸´ÓÃÁË Golang µÄʵÏÖ£¬ºóÃæµÄÕ½ڻá½éÉÜ Golang TLS ÐÔÄÜʵÑé¡£SOFAMosn ¿ÉÒÔÅäºÏ iptables ͸Ã÷ת·¢Ö§³ÖTProxy ģʽ¡£Í¬Ê±£¬MOSN Ö§³Öƽ»¬ reload£¬Æ½»¬Éý¼¶¡£

ÔÚ¶àЭÒé·½Ãæ£¬0.1.0 °æ±¾ÖÐ SOFAMosn ÖØµãÖ§³Ö SOFARPC£¬²¢ÒÑÔËÓÃÔÚÂìÒÏÉú²ú»·¾³ÖС£Í¬Ê± SOFAMosn Ö§³ÖHTTP/1.1£¬HTTP/2.0 µÄ»ù±¾¹¦ÄÜ£¬ÊµÏÖ·½Ê½ÊÇʹÓÿªÔ´µÄ HTTP/1.1ʵÏÖ FastHTTP ºÍ Golang ×Ô´øµÄ HTTP2 ʵÏÖ¡£ÓÉÓÚ FastHTTP ºÍ HTTP2 ¶¼×Ô´øÁË IO£¬Á´½Ó³ØµÈ¹¦ÄÜ£¬ËùÒÔÕâÁ½¸öЭÒéµÄÖ§³ÖÔÝʱÊÇÍÑÀë SOFAMosn ÕûÌåÉè¼ÆµÄ£¬ÐÔÄܵȷ½ÃæÒ²»¹Ã»ÓÐ×öÓÅ»¯£¬ÎÒÃÇ»áÔÚºóÐø°æ±¾µü´ú¿¼Âǽ«ÆäÄÉÈëµ½ SOFAMosn µÄ¿ò¼ÜÌåϵ£¬²¢½øÐÐÐÔÄÜÓÅ»¯¡£´ËÍ⣬ÎÒÃÇÕýÔÚÑз¢ Dubbo£¬HSF µÄÖ§³Ö£¬»áÔÚºóÐø°æ±¾ÖÐÍÆ³ö¡£Í¬Ê±£¬Ä¿Ç°ÒÑÖ§³ÖµÄ SOFARPC£¬HTTP/1.1£¬HTTP/2.0 ¶¼Ö§³Ö Mes h¼äµÄ TLS Á´Â·¼ÓÃÜ¡£

´Ë´¦£¬ÔÚºËÐÄ·ÓÉ·½Ã棬0.1.0 °æ±¾ SOFAMosn ÔÚºËÐŦÄÜÉÏ¶ÔÆë Envoy£¬Ö§³Ö virtual host Æ¥Å䣬֧³Ö route matchÆ¥Å䣬֧³Ö subset ·ÓÉÆ¥Åä/¸ºÔؾùºâ¡£

ÔÚºó¶Ë¹ÜÀí¹¦ÄÜ·½Ã棬֧³Ö»ù´¡¸ºÔؾùºâËã·¨£¬Ö§³ÖÖ÷¶¯½¡¿µ¼ì²éµÈ±ØÐ빦ÄÜ¡£

³ýºËÐŦÄÜÍ⣬SOFAMosn ¸ù¾ÝÎÒÃÇÂ䵨µÄһЩ¾­ÑéÌṩÁËһЩÁÁµã¹¦ÄÜ¡£

Ê×ÏÈ£¬SOFAMosn Ö§³Ö X-PROTOCOL£¬Ò»ÖÖ¸üÇáÁ¿¼¶µÄ·½Ê½Ö§³Ö×Ô¶¨Òå RPC ЭÒ飬¶ÔÓÚÎÞÐè½â°üµÄÏà¶Ô¼òµ¥µÄ³¡¾°£¬½« RPC Êý¾Ý×÷Ϊ TCP »òÕß HTTP/2.0 µÄpayload ½øÐÐת·¢£¬Í¬Ê±Ö§³ÖËùÓÐÎÞÐè½â°üµÄ·ÓɸºÔزßÂÔ¡£

ͬʱÎÒÃǼƻ®ÔÚ X-PROTOCOL ÖмÓÈë±à½âÂëÀ©Õ¹µã£¬Ö§³ÖÐèÒª½â°üµÄ³¡¾°¡£ÔÚÆ½»¬Éý¼¶µÄÖ§³ÖÉÏ£¬³ýÁ˾­µäµÄ´«µÝ listener fd+ ЭÒé²ãµÈ´ý·½Ê½£¬SOFAMosn Ö§³Ö¶Ô´æÁ¿Á´½Ó½øÐÐЭÒéÎ޹صÄÇ¨ÒÆ¡£Í¬Ê±ÎªÁ˲¿ÊðÉý¼¶£¬SOFAMosn Ö§³ÖÖ¸¶¨ / ¸üÐÂǰºó¶ËͨÐÅЭÒé¡£

ÔÚ Istio ¼¯³É·½°¸ÉÏ£¬SOFAMosn 0.1.0 Ö§³Ö Istio 0.8 °æ±¾ Pilot V0.4API È«¶¯Ì¬ÅäÖÃÔËÐУ¬Ö§³Ö xDS on ADS ºËÐŦÄÜ£¬ºóÐø°æ±¾»á²»¶Ï²¹Æë¹¦ÄÜ¡£SOFAMosn ͬʱ֧³Ö¾²Ì¬ÅäÖÃÄ£ÐÍÔËÐС£

³ýÁËÄÜÁ¦Ö§³Ö£¬SOFAMosn ÔÚÍøÂç²ã£¬Ð­Òé´¦Àí²ã£¬»ùÓÚ TCP µÄ˽ÓÐЭÒé²ã¶¼ÌṩÁË¿ÉÀ©Õ¹µÄÄÜÁ¦£¬Ê¹µÃ×Ô¶¨ÒåÒµÎñ¿ÉÒÔÓÅÑż¯³É¡£ÔÚÂìÒÏÂ䵨µÄ¹ý³ÌÖÐÎÒÃÇÄÚ²¿µÄ SOFAMosn ÒÀÀµÓÚ¿ªÔ´°æ±¾£¬Í¨¹ý¿ÉÀ©Õ¹µÄ·½Ê½À´ÊµÏÖÂìÒÏÄÚ²¿µÄ×ÔÓÐÒµÎñ£¬ÔÚ¹¤³ÌÂ䵨ÉÏÌṩÁË¿ÉÐеķ½°¸¡£

ÐÔÄÜ

ÔÚ½éÉÜÁ˺ËÐŦÄÜÒÔºó£¬ÎÒÃÇÔÙ¿´ÁíÒ»¸ö´ó¼Ò·Ç³£¹Ø×¢µÄÎÊÌ⣬ÐÔÄÜ£¬ÕâÒ²ÊÇĿǰ¹Ø×¢¶È½Ï¸ßµÄÎÊÌâÖ®Ò»¡£

ÔÚ SOFAMosn 0.1.0 °æ±¾£¬ÎÒÃÇÖØµãÓÅ»¯ÁË»ùÓÚ SOFAMosn ÕûÌå¿ò¼ÜµÄЭÒéÔÚ Sidecar ģʽϵ¥ºËת·¢µÄÐÔÄÜ£¬¼´ TCP£¬SOFARPC µÄµ¥ºËת·¢ÐÔÄÜ¡£

Ê×ÏÈÎÒÃÇ·ÖÏíÒ»ÏÂÎÒÃÇÔÚµ¥ºË³¡¾°ÏÂÓÅ»¯µÄһЩÊֶκ;­Ñé¡£ÎÒÃÇʹÓõķ½Ê½Ö÷ÒªÊǶÀÕ¼°óºË£¬Äڴ棬IO£¬µ÷¶ÈµÈ·½Ãæ½øÐÐÓÅ»¯¡£

Ê×ÏÈ¿´°óºË£¬ÔÚÖ¸¶¨ P=1 µÄÇé¿öÏ£¬¶ÀÕ¼°óºË²»ÂÛÔÚϵͳµ÷ÓÃÖ´ÐÐЧÂÊ£¬cache locality affinity Á½¸ö·½Ãæ¶¼±È¸ü±íÏÖ¸üºÃ£¬ÕûÌåÍÌÍÂÁ¿ÌáÉý´óÔ¼ 30%¡£Æä´ÎÊÇÄÚ´æÓÅ»¯£¬ÎÒÃDzÉÑùÁË SLAB-style µÄ»ØÊÕ»úÖÆÀ´Ìá¸ß¸´Ó㬼õÉÙÄÚ´æ copy£»

ͬʱÔÚÄÚ´æ·ÖÅäÉÏÐèÒª¿¼ÂÇ Golang ÄÚ´æÄ£Ð͵ÄÇ׺ÍÐÔ£¬¾¡Á¿¼õÉÙ arena ÇøÄÚ´æÉêÇ룻×îºó£¬´ó¼Ò¶¼ÖªµÀ GolangµÄ GC ÐèÒªÊÇÄãҪȥÊìϤ²¢ÊÊÓ¦ËûµÄ£¬ºÜ¶àϸ½ÚÐèÒª¹Ø×¢£¬¾¡Á¿¼õÉÙGC scanobjectµÄѹÁ¦¡£

ÔÚ IO ·½°¸£¬Golang µÄ IO Ä£ÐÍÊÇͬ²½»¯µÄ£¬ÔÚ¶Á·½Ãæ¼ÈÒª¾¡¿ÉÄܶà¶Á£¬ÓÖÒª±ÜÃâÆµ·±µ÷Óà SetReadDeadline Ôì³ÉµÄµÄÓ°Ï죬ÔÚÎÒÃÇѹ²âÏÂÃæÆµ·±µ÷Óà SetReadDeadline »á¶ÔÍÌÍÂÁ¿ÓÐÒ»¶¨Ó°Ïì¡£ÔÚд·½ÃæÐèÒªÊÊ¶È buffer£¬ÀýÈçÓɶà worker Э³ÌÇý¶¯Ôì³Éij¸ö IO Э³ÌƵ·±Ð´ÏµÍ³ IO Ò²»áÔì³ÉÍÌÍÂÁ¿Ï½µ¡£ÁíÒ»¸öÐèҪעÒâµÄ·½ÃæÊÇ£¬ÔÚ¶àЭ³Ì³¡¾°ÏÂÐèÒª±ÜÃâ¶ÁдƵÂʲ»¾ùºâ£¬ÕâÒ²ÊÇÔì³ÉÕûÌåÍÌÍÂÁ¿Ï½µµÄÒ»¸öDZÔÚÔ­Òò¡£

ÁíÍ⣬Èç¹û¶Á»òд´óÁ¿´¥·¢£¬»áÔì³É´óÁ¿ÏµÍ³µ÷Óã¬Õâ»áÒýÆð Golang runtime µ÷¶È³É±¾Éý¸ß¡£ÔÚ Golang runtime µ÷¶È·½Ã棬Ê×ÏȻᴥ·¢Ð­³Ìµ÷¶ÈÔì³Éʱ¼äÏûºÄ£¬Í¬Ê± runtime µ÷¶È±¾ÉíûÓÐ OS Ï̵߳÷¶ÈÁéÃô£¬Ò²»áÓÐÒ»¶¨µÄʱ¼äËðºÄ¡£Í¬Ê± OS ϵͳµ÷Óñ¾ÉíÒ²ÓлáºÄʱ£¬»áÔì³ÉÐÔÄÜϽµ¡£

ÕâÀïÎÒ·ÖÏíһЩÎÒÃÇÔÚÐÔÄÜÓÅ»¯¹ý³ÌÖÐÓöµ½µÄÕæÊµµÄ case£¬³ýÁË IO ·½ÃæµÄ˼¿¼£¬»¹Òª¹Ø×¢Ò»Ïµ÷¶È¾ùºâ·½ÃæµÄÎÊÌâ¡£

Ê×ÏÈÎÒÃÇÀûÓÃЭ³Ì³Ø»¯À´±ÜÃâ runtime.morestack µÄÎÊÌ⣬Æä´ÎÔÚµ¥ºË³¡¾°ÏÂÐèÒªÖØµã¹Ø×¢ G ÊÇ·ñÔÚ¼¢¶ö״̬£¬Ôì³É×ÊÔ´ÀË·Ñ¡£

½éÉÜÍêÐÔÄÜÓÅ»¯µÄһЩ¹ý³Ì£¬ÎÒÃÇÀ´¿´Ò»ÏÂĿǰÎÒÃÇÔÚÐÔÄÜÓÅ»¯ÉϵÄһЩ½á¹û£¬¼´µ¥ºË TCP ת·¢µÄÐÔÄÜ£¬ºÍµ¥ºËSOFARPC ת·¢µÄÐÔÄÜ¡£¿ÉÒÔ¿´µ½£¬ÔÚµ¥ºË TCP ת·¢³¡¾°£¬SOFAMosn 0.1.0 °æ±¾ºÍ Envoy 1.7°æ±¾×ª·¢ÐÔÄܲî¾à¿É¿Ø£¬ºóÐø°æ±¾ÎÒÃÇ»á¼ÌÐøÓÅ»¯¡£

´ËÍâ£¬Ç°ÃæÌáµ½¹ý TLS µÄʵÏÖ£¬ÎÒÃÇÔÙÀ´¿´Ò»ÏÂÐÔÄÜ·½ÃæµÄһЩ̽Ë÷¡£Ê×ÏȽéÉÜÁËһϲâÊԵij¡¾°¡£ÔÚÕâ¸ö³¡¾°Ï£¬ÎÒÃÇ·¢ÏÖ¶ÔÓÚ ECDHE Ëã·¨£¬Golang Ô­ÉúµÄʵÏÖÐÔÄÜËäÈ»µÍÓÚNingx£¨Ê¹Óà OpenSSL£©£¬µ«ÊǸßÓÚ Golang with boring SSL¡£Í¨¹ý¶Ô¾ßÌåËã·¨ºÍЭÒéµÄÐÔÄÜѹ²â£¬´úÂëµ÷ÑÐÎÒÃǵóöÈçϽáÂÛ¡£¿ÉÒÔ¿´³ö¶ÔÓÚ ECDHE-P256¼ÓÃÜÌ×¼þ£¬Golang Ô­ÉúʵÏÖµÄÐÔÄÜÊǺܲ»´íµÄ£¬¿ÉÒÔ·ÅÐÄʹÓá£

³ýÁËÕâЩÓÅ»¯µãÒÔºó£¬ÎÒÃÇ»áÔÚºóÐø°æ±¾³ÖÐø½øÐÐÐÔÄÜÓÅ»¯£¬¶àºËÓÅ»¯£¬ÄÚ´æÓÅ»¯£¬Í¬Ê±ÀûÓÃÓû§Ì¬£¬ÄÚºË̬µÄ¼ÓËÙ¼¼ÊõÀ´ÌáÉý SOFAMosn µÄת·¢ÐÔÄÜ¡£ÔÚTLS¼Ó½âÃÜ·½Ã棬ÎÒÃǽ«»á³¢ÊÔ»ùÓÚ±¾µØ¼ÓËÙ¿¨ºÍ Keyless ¼Ü¹¹µÄ Offload ¼ÓËÙ£¬ÕâÒ²ÊÇÎÒÃÇÔÚÂìÒÏÍøÂç´ÓÖÐÒѾ­Â䵨µÄһЩ¼¼ÊõÊֶΡ£

RoadMap

×îºóÎÒ½éÉÜÒ»ÏÂSOFAMesh µÄ RoadMap

8ÔµÚÒ»ÖÜÎÒÃǽ«·¢²¼ SOFAMesh 0.1.0 °æ±¾£¬Õâ¸ö°æ±¾ÖصãÖ§³Ö Proxy ºËÐÄÄÜÁ¦£¬Ö§³Ö xDS V0.4 API ºËÐŦÄÜ£¬Ö§³Ö SOFARPC µÈͨÐÅЭÒé¡£

8Ôµ×ÎÒÃǽ«·¢²¼ 0.2.0 °æ±¾£¬ÔÚ²»¶ÏÍêÉÆÌáÉýºËÐÄÄÜÁ¦µÄ»ù´¡ÉÏ£¬ÎÒÃÇ»áÍêÉÆ X-Protocol µÄ¹¦ÄܺÍÀ©Õ¹ÐÔ£¬ÒÔÖ§³Ö˽ÓÐ RPC ЭÒéÀ©Õ¹£»Í¬Ê±ÎÒÃǽ«Ö§³Ö Dubbo/HSF ͨѶЭÒ飬²¢½ÓÈë»ùÓÚ ZK µÄ·þÎñ×¢²áÖÐÐÄ¡£Í¬Ê±ÎÒÃǽ«Öصã¼ÓÇ¿ HTTP/2.0 µÄ¹¦ÄÜ£¬ÐÔÄÜÓÅ»¯¡£ÎÒÃÇ»¹½«Ö§³Ö K8S operator£¬Ê¹µÃ SOFA Mesh ¿ÉÒÔ½ÓÈë K8S ×ÊÔ´¡£

³ý¹¦ÄÜÐÔ²¹Ç¿ÒÔÍ⣬ÎÒÃÇ»á³ÖÐøÓŽøÐÐÐÔÄÜÓÅ»¯£¬ÖصãÔÚ¶àºËÐÔÄÜ£¬ÕûÌåÄÚ´æÓÅ»¯¡£´ËÍ⣬ÎÒÃÇ»á³ÖÐøÍÆ½ø´úÂëÓÅ»¯£¬ÍêÉÆ²âÊԵȻù´¡ÐÔ¹¤×÷¡£

9Ôµ×ÎÒÃǽ«·¢²¼ 0.3.0£¬ÖصãÌṩ Mixer ¼¯³É£¬Ìṩ precondition£¬quota£¬report ¹¦ÄÜ¡£Í¬Ê±ÔÚ9ÔÂÌṩÈ۶ϺÍÏÞÁ÷µÄÄÜÁ¦¡£

ĿǰSOFAMosnÈÔÈ»ÊÇÒ»¸ö³õ¼¶°æ±¾£¬ÎÒÃǽ«³ÖÐøÍ¶Èë²¹³ä£¬¸Ä½ø£¬ÓÅ»¯£¬Ò²»¶Ó­¿ªÔ´ÉçÇø¸ÐÐËȤµÄÅóÓÑÒ»Æð¼ÓÈëSOFAMesh¿ªÔ´°æµÄ½¨Éè¡£

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

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù