微博跨语言服务化与WeiboMesh,微博跨语言服务化与

什么用 4
WeiboMesh —微博研发中心/周晶 内容提要 Ὂ为什么要做跨语言服务化ὊPHP跨语言服务化所面临的挑战ὊWeiboMesh与泛服务化附能PHP微服务 为什么要做跨语言服务化 为什么要做跨语言服务化 Ὂ痛点Ὂ趋势 ೨㵩 需求·性能·成本 ̨̻ᠧӻ API+JAR चԭOpenDCPጱ୨௔ԯᦇᓒ 2009 2013 2015 2016 ཛྷࣘ۸‫֛ܔ‬๐‫ۓ‬ RPC Ⴐ‫ݳ‬ԯ चԭMotanRPCጱங๐‫ۓ‬ ̨̻ᠧӻ ؂䕂‫ٙء‬e䕆ሿᨮ᫹ѩፅeࠥᕆeࠢ‫ݴ‬‫߆‬ᕆ䕏෸ፊછІ䕃ʷ‫࢙‬ඎᦧП౽ঐ୨‫ܓ᧣׌‬І䕃ಘᖽ‫࢙‬᧗Ӌ䕃ா༩͟ 3FHJTUSZ 0QFO%$
1 +"7"4FSWFS+"7"$MJFOU $ 03 (
P 1)
1 n ฆ௹Ȩѓᕁ̍ฆ௹ᦾ᷌."1* ฆ௹ฤ॰ᅾ䔊ฆ௹ฆ௹˴१n ̨̻ᠧӻ 3FTUGVM"1*+BWB31$ ᩽۠ 微服务·容器化·云化·标准化·工程化 更快的交付更低的成本服务与实现方式不应该有强耦合关系 PHP跨语言服务化所面临的挑战 跨语言服务化核心问题 ʹʝ€᧍Ԋʕͭeε᧍Ԋ)551(31$€1#n‫ط‬ଣ€㣇‫̙ݺ‬ಘ‫࢝‬؂䕂‫ٙء‬᝺䕆ሿᨮ᫹ѩፅn 挑战一:迁移成本与性能 Server istryReg GRPC Registry SubsNcribe otify Client Motan-PHP-Client 挑战二:服务治理与RPCServer LVS、HA、Nginx PHP-FPM ClusterHA+LBPHP-GRPC GRPCCall 䕏ሿϓ͉‫ط‬ଣঐɢ WorkingNode PHPDeamon NginxTimer GlobalData Discover Server1Server2 …… Registry Registry ❌PHPServerGRPC 经验总结 1)1؂䕂ʷٙሿᇫ-/03.1‫ݖ‬ᦻʹ˹ࣖଟ䞍୅ϓ͉n1)1᧍Ԋ͉Ԓٙ҅ࠢ‫׌׌‬ঐ੬Ḧঐɢn㣇‫̙ݺ‬ಘ‫ٙ࢝‬؂䕂‫ط‬ଣ‫ڢ‬ʕːʷ‫$ࠠڢ‬MJFOUn 我们需要适合自己的跨语言解决方案 ʹʝs‫ط‬ଣ 跨语言服务化方式对比 Ꮈ‫ݎ‬౮๜ᖌಷ౮๜ֵአ౮๜လቘᚆ‫ێ‬ಘ઀ᚆ‫ێ‬ HTTPդቘ֗֗֗Ӿ֗ RPCཛྷࣘṛṛ֗ṛӾ AgentդቘӾӾӾṛṛ 交互(语言中立、多语言) 协议 HeaderPayload MotanHeader MetaDataSizeDataReqBodySizeData 序列化 基础类型复合类型 治理(灵活可扩展) WM-proto 㣇‫̙ݺ‬ಘ‫ٙ࢝‬؂䕂‫ط‬ଣ 1)1 /snapshot/ (P"HFOU 3FHJTUSZ +"7"4FSWFS+"7"$MJFOU Motan-PHP跨语言调用 if($connection->buildConnection($agent_addr)){$this->_url_obj->setEndpoint(Constants::ENDPOINT_AGENT);$this->_endpoint=newAgent($this->_url_obj); }else{$this->_endpoint=newCluster($this->_url_obj); } Motan-PHPCluster直连策略 publicfunctioncall(){ return$this->_ha_strategy->call($this->_load_balance);} AGENT_RUN_PATH."/snapshot/".$this->_group.'_'.$this->_service_str; Endpointerಘ઀‫כ‬ବ PHP做Server 1)
1 $(*e)551 (P"HFOU 3FHJTUSZ +"7"4FSWFS+"7"$MJFOU Motan-GoProvider与PHP extFactory.RegistExtProvider(CGI,func(url*motan.URL)motan.Provider{ return&CgiProvider{url:url}}) extFactory.RegistExtProvider(HTTP,func(url*motan.URL) motan.Provider{ return&HTTPProvider{url:url} }) MOTAN_* [MOTAN_M_p]=>.weibo.motan.HelloWorldService[MOTAN_SERIALIZATION]=>simple[MOTAN_M_g]=>motan-server-mesh-example[MOTAN_M_m]=>Hello[MOTAN_M_pp]=>motan2 03(
P 1)
1 $(*e)551 (P"HFOU 3FHJTUSZ +"7"4FSWFS+"7"$MJFOU WeiboMesh与泛服务化附能PHP微服务 传统PHP服务化演进 API+COMMON चԭVanillaጱAPIGateway … 2012 2015 2016 …… ཛྷࣘ۸๐‫ۓ‬ PHP-BE Vasina चԭPHP-BEጱங๐‫ۓ‬ೆ‫ړ‬ APIGateway与服务治理 * LVS、HA Respons Vasina 公共逻辑…PageCache LRU/ShDictᴳᕆ̵ᆤෙ SYSConf… SubRequest 内网调用 PHP-FPM News CacheAPI …… PHP-FPM Ads …… PHP-FPM Userinfo …… ServiceMesh是什么 Aservicemeshisadedicatedinfrastructurelayerforhandlingmunication.It’sresponsibleforthereliabledeliveryofrequeststhroughthe ologyofservicespriseamodern,cloudnativeapplication.Inpractice, theservicemeshistypicallyimplementedasanarrayofworkproxiesthatare deployedalongsideapplicationcode,withouttheapplicationneedingtobeaware. https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/ ServiceMesh是什么 dedicatedinfrastructurelayerhandlingservice-to- munication ologyofservices Inpractice workproxies withouttheapplicationneedingtobeaware https://buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/ "1*(BUFXBZ 4FSWJDF

" 4FSWJDF
# 4FSWJDF
$ "1*(BUFXBZ NJDSP4FSWJDF
" 4FSWJDF
# 4FSWJDF
$ "1*(BUFXBZ NJDSP4FSWJDF
" 4FSWJDF
# 4FSWJDF
$ 4FSWJDF.FTI "1*(BUFXBZ NJDSP4FSWJDF
" 4FSWJDF
# 4FSWJDF
$4FSWJDF ༆ᇩsɨӐ 4FSWJDF.FTI 4FSWJDF.FTI ᭗‫޾מ‬๐‫ۓ‬လቘdedicatedinfrastructurelayer 业界ServiceMesh实现 ‫ݷ‬ᑍ ‫ࠟܯ‬ istio Google̵IBM̵Lyft conduit Buoyant nginmesh Nginx Linkerd Buoyant serviceComb HUAWEI ᇇ๜
0.7.10.4.10.7.21.4.01.0.0 चᰂCNCF //CNCFApache ServiceMesh事实规范 %BUB1MBOFjӫ‫ء‬4FSWJDF䞯᧗ӋහỼփ䜲dҁϓ؂䕂ʘ䞯ٙʹʝ$POUSPM1MBOFjӫ‫ء‬؂䕂‫ط‬ଣe‫ݴ‬ඎ༩͟eಗБഄଫഃ istio DIFDL
SFQPSU .JYFS 4USBUFHZ 4FSWJDF
" ServiceContainer &OWPZ DataPlane &OWPZ $" .JYFS ControlPlane Y%
4
SPVUFS "1*.PEFM"EBQUPS 1JMPU ,
4 .FTPT 4FSWJDF
# ControlPlane WeiboMesh -JHIU$MJFOU 4FSWJDF
" ServiceContainer 䁑ഄӻ䕠‫ݴ‬ඎ᧣‫ܓ‬ 䕃䕃ா˿၍ଣᠧӻІ ؂䕂ܸ 8FJCP
.FTI 8FJCP
.FTI 3FHJTUSZ DataPlane -JHIU$MJFOU ControlPlane 4FSWJDF
# ControlPlane WeiboMesh泛服务化 4FSWFS(P03+"7"1)1.$3FEJTn .PUBO.$3FEJTn8FJCP.FTI .PUBO 8FJCP.FTI $MJFOU.PUBOn (P03+"7"1)1n 服务的刻画/MotanSchema ๐‫ܐۓ‬ᦓ 版本号 Service grpc://host:port/0.1/helloworld.Greeter?
group=idevz-test ፓຽᜓᅩ ๐‫ړۓ‬ᕟ URL
唯一刻画 我们依赖的只有服务 附能PHP微服务 跨语言服务化能力提高性能(点对点直连、长链接)统一服务治理能力:流量调度、双发、多发、资源服务化(redis、mc、kafka、hbase、cacheservice等)无感知持续功能更新 .FTI74)551 #BDLVQ3FRVFTU THEEND Motan Agent ThanksQ.A Client

标签: #计算机网络技术 #网络维护 #盛世 #毕业生 #编导 #电子商务 #互联网 #主要是