資料介紹
軟件簡介
Dubbo Gateway是一個基于Java語言的Dubbo網關實現。基于Dubbo注冊中心的元數據,通過將HTTP請求轉換為Dubbo協議,泛化調用的方式返回請求結果。它具有如下的特性:
- 使用簡單,開箱即用,非常適用于一些接口測試場景;
- 靈活可拓展。通過Interceptor的實現,可非常方便實現熔斷、限流、路由、定制響應、用戶授權等功能。系統也內置了部分Interceptor實現;
- 支持僅調用聲明為對外開放的Dubbo服務,安全保證。(基于Feature:apache/dubbo#7660?);
- 文檔自動化生成。基于Javadoc標準的dubbo對外接口生成系統,API寫好即可生成文檔,同時集成了阿里云OSS,全程僅需幾步參數配置,即可可視化預覽文檔。
Requirements
服務提供者Dubbo 版本:Dubbo 2.7.14+ 或 Dubbo 3.x
Java 版本:1.8+
Guides
以Springboot項目方式,啟動Dubbo Gateway網關:
1、添加依賴
新建Springboot工程,添加Dubbo Gateway的核心依賴:
<dependency> <groupId>com.kalman03groupId> <artifactId>gateway-coreartifactId> <version>1.2.0version> dependency>
當然,還需要添加Dubbo的注冊中心依賴,以Zookeeper為例:
<dependency> <groupId>org.apache.zookeepergroupId> <artifactId>zookeeperartifactId> <version>${zookeeper_version}version> <exclusions> <exclusion> <groupId>log4jgroupId> <artifactId>log4jartifactId> exclusion> <exclusion> <groupId>org.slf4jgroupId> <artifactId>slf4j-log4j12artifactId> exclusion> exclusions> dependency> <dependency> <groupId>org.apache.curatorgroupId> <artifactId>curator-frameworkartifactId> <version>${curator_version}version> dependency> <dependency> <groupId>org.apache.curatorgroupId> <artifactId>curator-recipesartifactId> <version>${curator_version}version> dependency>
2、參數配置
gateway.netty.server.port=80 gateway.netty.server.host=127.0.0.1 gateway.netty.server.connect-timeout=3000 gateway.netty.business.thread-count=50 gateway.dubbo.registry.address=zookeeper://127.0.0.1:2181 gateway.dubbo.openservice=true
3、啟動服務
@SpringBootApplication @EnableAutoConfiguration public class DubboGatewayTest { public static void main(String[] args) { try { SpringApplication.run(DubboGatewayTest.class, args); } catch (Throwable e) { e.printStackTrace(); } } //可選自定義攔截器 @Component @Order(100) @InterceptorRule(routeRuleType = RouteRuleType.PATH, excludePatterns = { "/api/**" }) class CustomInterceptor implements HandlerInterceptor { @Override public boolean preHandle(GatewayHttpRequest request, GatewayHttpResponse response) throws Exception { System.out.println("preHandle"); return true; } @Override public void afterCompletion(GatewayHttpRequest request, GatewayHttpResponse response, Exception ex) throws Exception { System.out.println("afterCompletion"); } } }
4、訪問目標服務
系統內置了PATH路由
與MIX路由
,也同時支持自定義路由實現。下面演示如何通過不同的路由規則訪問對應的服務。
-
PATH路由(推薦)
PATH路由是系統內置默認的路由,也是系統推薦的路由規則,其擁有較多適用性(既可正常調用,也可以滿足一些第三方系統的調用要求,比如支付消息回調等),路由規則如下
HTTP URL:
http(s)://{domain}:{port}/{appName}/{interfaceName}/{method}/{group}/{version}
HTTP Body?(payload or form-data):
{ "id": 23, "username": "testUser" }
-
MIX路由
考慮到有些參數相對于固定不變,且暴露在URL中不盡友善,系統內置了一種MIX的路由規則,將部分路由參數以Header的參數形式進行傳遞。
HTTP URL:
http(s)://{domain}:{port}/{interfaceName}/{method}
HTTP Header:
x-app-name={appName} x-group={group} x-version={version} x-route-rule=mix
HTTP Body?(payload or form-data):
{ "id": 23, "username": "testUser" }
-
CUSTOM自定義路由
CUSTOM路由
專為一些對PATH路由
與MIX路由
都不滿意的開發者準備,只需要繼承AbstractRouteHandlerInterceptor?類,即可輕松實現自定義的路由規則。
Param Transmission
用戶端通用參數(諸如請求UA/Referer/IP等)以及Token用戶信息等,需要傳遞到服務提供方。Dubbo Gateway與服務提供者之間內置的參數傳遞走Dubbo的RpcContext。
Dubbo網關內置了gatewayConsumerFilter
與gatewayProviderFilter
,可作為Dubbo服務提供者的默認Filter實現,通過該Filter可獲取用戶端請求的一些參數以及自定義攔截器封裝的參數。當然,開發者也可自行在服務提供方讀取RpcContext中的傳遞參數。
更多使用方式,參考:gateway-samples?與?gateway-samples-provider
Attention
Dubbo Gateway對Dubbo服務提供者提供的對外服務有一條要求:只能有一個服務入參,且為對象類型(非普通Java數據類型)。
- 虹科TE媒體網關 MEDIA GATEWAY
- local-data-api-gateway本地數據API網關
- dubbo-doc-static Dubbo文檔鏡像
- 碩士學位論文《家庭智能網關的研究與實現》 24次下載
- 虹科PCAN-Wireless Gateway簡介
- 虹科PCAN-Ethernet Gateway網關
- Java工具軟件免費下載 5次下載
- 互聯網Java工程師的經典面試題免費下載 0次下載
- Java程序設計教程之Java語言的基礎知識概述 36次下載
- Java新IO的Web安全網關設計資料說明 1次下載
- 如何使用Myeclipse進行java可視化開發 5次下載
- java教程之如何進行Java異常處理? 0次下載
- Dubbo源代碼實現服務調用的動態代理和負載均衡 0次下載
- 智能家居和能源網關參考設計原理圖 31次下載
- 利用Gateway實現上位機監控 0次下載
- Kubernetes Gateway API攻略教程 676次閱讀
- Dubbo路由模塊及負載均衡的優化手段 589次閱讀
- 汽車網關Gateway知識介紹 2694次閱讀
- 網關GateWay的基本概念和使用詳解 1994次閱讀
- Dubbo負載均衡策略之一致性哈希 571次閱讀
- Java、Spring、Dubbo三者SPI機制的原理和區別 843次閱讀
- 用Rust語言開發微服務 2536次閱讀
- Spring Cloud Gateway服務網關的部署與使用詳細教程 1575次閱讀
- 如何使用Gateway搭建網關服務及實現動態路由 1669次閱讀
- 物聯網網關具有的能力及研發設計和功能 2824次閱讀
- 網關協議基礎知識你都掌握了沒 949次閱讀
- Java中間件Spring、Dubbo源代碼跟蹤小技巧 1508次閱讀
- Java底層實現,CPU還有10個術語! 6097次閱讀
- 網關禁用怎么辦?解決辦法是什么? 1.9w次閱讀
- java如何實現打印功能 1.2w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多