精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>Dubbo Gateway基于Java的Dubbo網關實現

Dubbo Gateway基于Java的Dubbo網關實現

2022-06-14 | zip | 0.19 MB | 次下載 | 2積分

資料介紹

授權協議 Apache
開發語言 Java
操作系統 跨平臺
軟件類型 開源軟件
所屬分類 程序開發網絡工具包

軟件簡介

Dubbo Gateway是一個基于Java語言的Dubbo網關實現。基于Dubbo注冊中心的元數據,通過將HTTP請求轉換為Dubbo協議,泛化調用的方式返回請求結果。它具有如下的特性:

  1. 使用簡單,開箱即用,非常適用于一些接口測試場景;
  2. 靈活可拓展。通過Interceptor的實現,可非常方便實現熔斷、限流、路由、定制響應、用戶授權等功能。系統也內置了部分Interceptor實現;
  3. 支持僅調用聲明為對外開放的Dubbo服務,安全保證。(基于Feature:apache/dubbo#7660?);
  4. 文檔自動化生成。基于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網關內置了gatewayConsumerFiltergatewayProviderFilter,可作為Dubbo服務提供者的默認Filter實現,通過該Filter可獲取用戶端請求的一些參數以及自定義攔截器封裝的參數。當然,開發者也可自行在服務提供方讀取RpcContext中的傳遞參數。

更多使用方式,參考:gateway-samples??gateway-samples-provider

Attention

Dubbo Gateway對Dubbo服務提供者提供的對外服務有一條要求:只能有一個服務入參,且為對象類型(非普通Java數據類型)

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費