HTTP 協定
功能說明
基於 HTTP 表單的遠端呼叫協定,由 Spring 的 HttpInvoker 實作,2.3.0
以上版本支援。
- 連線數:多連線
- 連線方式:短連線
- 傳輸協定:HTTP
- 傳輸方式:同步傳輸
- 序列化:表單序列化
- 適用範圍:進出參數數據包大小混合,提供者數量多於消費者,瀏覽器可查看,參數可通過表單或 URL 傳遞,目前不支持文件傳輸。
- 適用場景:需同時供應用程式和瀏覽器 JS 使用的服務。
限制
- 參數和回傳值必須符合 Bean 規範
使用場景
HTTP 短連線,標準化易讀的協定,易於與外部系統對接,適用於上層業務模組。
使用方法
從 Dubbo 3 開始,Http 協定不再內嵌於 Dubbo 中,需要單獨引入一個獨立的 模組。
<dependency>
<groupId>org.apache.dubbo.extensions</groupId>
<artifactId>dubbo-rpc-http</artifactId>
<version>1.0.0</version>
</dependency>
配置協定
<dubbo:protocol name="http" port="8080" />
配置 Jetty 伺服器(預設)
<dubbo:protocol ... server="jetty" />
配置 Servlet 橋接伺服器(推薦)
<dubbo:protocol ... server="servlet" />
配置 DispatcherServlet
<servlet>
<servlet-name>dubbo</servlet-name>
<servlet-class>org.apache.dubbo.remoting.http.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dubbo</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
如果使用 servlet 來分派請求
- 協定的埠
<dubbo:protocol port="8080" />
必須與 servlet 容器的埠相同,- 協定的上下文路徑
<dubbo:protocol contextpath="foo" />
必須與 servlet 應用的上下文路徑相同。
最後修改日期:2023 年 2 月 22 日:合併重構網站 (#2293) (4517e8c1c9c)