Dubbo支持的多種協(xié)議抡草,如下:
1觅赊、dubbo協(xié)議
?缺省協(xié)議怔揩,使用基于netty5.0+hessian3.2.1交互捉邢。
連接個(gè)數(shù):?jiǎn)芜B接
連接方式:長(zhǎng)連接
傳輸協(xié)議:TCP
傳輸方式:NIO異步傳輸
序列化:Hessian二進(jìn)制序列化
適用范圍:傳入傳出參數(shù)數(shù)據(jù)包較小(建議小于100K)商膊,消費(fèi)者比提供者個(gè)數(shù)多伏伐,單一消費(fèi)者無(wú)法壓滿提供者,盡量不要用dubbo協(xié)議傳輸大文件或超大字符串晕拆。
適用場(chǎng)景:常規(guī)遠(yuǎn)程服務(wù)方法調(diào)用
2藐翎、rmi協(xié)議
RMI協(xié)議采用JDK標(biāo)準(zhǔn)的java.rmi.*實(shí)現(xiàn),采用阻塞式短連接和JDK標(biāo)準(zhǔn)序列化方式实幕。
連接個(gè)數(shù):多連接
連接方式:短連接
傳輸協(xié)議:TCP
傳輸方式:同步傳輸
序列化:Java標(biāo)準(zhǔn)二進(jìn)制序列化
適用范圍:傳入傳出參數(shù)數(shù)據(jù)包大小混合吝镣,消費(fèi)者與提供者個(gè)數(shù)差不多,可傳文件昆庇。
適用場(chǎng)景:常規(guī)遠(yuǎn)程服務(wù)方法調(diào)用末贾,與原生RMI服務(wù)互操作
3、hessian協(xié)議
Hessian協(xié)議用于集成Hessian的服務(wù)整吆,Hessian底層采用Http通訊拱撵,采用Servlet暴露服務(wù),Dubbo缺省內(nèi)嵌Jetty作為服務(wù)器實(shí)現(xiàn)掂为。
連接個(gè)數(shù):多連接
連接方式:短連接
傳輸協(xié)議:HTTP
傳輸方式:同步傳輸
序列化:Hessian二進(jìn)制序列化
適用范圍:傳入傳出參數(shù)數(shù)據(jù)包較大裕膀,提供者比消費(fèi)者個(gè)數(shù)多员串,提供者壓力較大勇哗,可傳文件。
適用場(chǎng)景:頁(yè)面?zhèn)鬏敶缙耄募鬏斢担蚺c原生hessian服務(wù)互操作
4、http協(xié)議
基于http表單的遠(yuǎn)程調(diào)用協(xié)議渺鹦,采用Spring的HttpInvoker實(shí)現(xiàn)扰法。
連接個(gè)數(shù):多連接
連接方式:短連接
傳輸協(xié)議:HTTP
傳輸方式:同步傳輸
序列化:表單序列化(JSON)
適用范圍:傳入傳出參數(shù)數(shù)據(jù)包大小混合,提供者比消費(fèi)者個(gè)數(shù)多毅厚,可用瀏覽器查看塞颁,可用表單或URL傳入?yún)?shù),暫不支持傳文件。
適用場(chǎng)景:需同時(shí)給應(yīng)用程序和瀏覽器JS使用的服務(wù)祠锣。
5酷窥、webservice協(xié)議
基于WebService的遠(yuǎn)程調(diào)用協(xié)議,基于CXF的frontend-simple和transports-http實(shí)現(xiàn)伴网。
連接個(gè)數(shù):多連接
連接方式:短連接
傳輸協(xié)議:HTTP
傳輸方式:同步傳輸
序列化:SOAP文本序列化
適用場(chǎng)景:系統(tǒng)集成蓬推,跨語(yǔ)言調(diào)用。
6澡腾、thrift協(xié)議
Thrift是Facebook捐給Apache的一個(gè)RPC框架沸伏,當(dāng)前 dubbo 支持的 thrift 協(xié)議是對(duì) thrift 原生協(xié)議的擴(kuò)展,在原生協(xié)議的基礎(chǔ)上添加了一些額外的頭信息动分,比如service name毅糟,magic number等。