第一步:按照示例改造api接口,接口需要引入dubbo-gateway-api jar包
<dependency> <groupId>com.atommiddleware</groupId> <artifactId>dubbo-gateway-api</artifactId> <version>1.0.5</version> </dependency>第二步:网关引入改造后的jar包,同时引用以下jar包
` <dependency> <groupId>com.atommiddleware</groupId> <artifactId>dubbo-gateway-spring-boot-starter</artifactId> <version>1.0.5</version> </dependency>`第三步:没有了。。就是这么简单
项目说明dubbo-gateway-api 是核心的api,相关注解都是在此项目中定义
dubbo-gateway-core 核心实现,实现dubbo-gateway的相关逻辑都在此项目中
dubbo-gateway-spring-boot-autoconfigure dubbo-gateway的自动装配
dubbo-gateway-spring-boot-starter dubbo-gateway的starter
dubbo-gateway-sample-api 示例服务api定义在此项目中
dubbo-gateway-sample-provider 基于spring cloud的dubbo 服务提供者示例
dubbo-gateway-sample 基于webflux(spring cloud gateway、zuul2)的接入dubbo-gateway示例
dubbo-gateway-sample-web-provider 基于sevlet类型的dubbo服务提供者示例
dubbo-gateway-sample-web-consumer 基于sevlet类型的项目(包括网关比如zuul-1)接入dubbo-gateway示例
配置中心按照dubbo的正常接入配置进行配置就好了,以下贴出例子使用的配置在nacos配置中心的配置,其中filters使用了Dubbo作为过滤器
服务提供者配置:
dubbo: protocol: name: dubbo port: 20861 server: port: 8861 spring: cloud: nacos: discovery: namespace: dev server-addr: 127.0.0.1:8848服务消费者配置:
dubbo: cloud: subscribed-services: dubbo-gateway-sample-provider server: port: 8862 spring: cloud: nacos: discovery: namespace: dev server-addr: 127.0.0.1:8848 gateway: routes: - id: myGateway uri: :8862 predicates: - Path=http://www.likecs.com/** filters: - Dubbo注意:其中filters下面配的"Dubbo"表示使用的是DubboGatewayFilter去处理,如果不配置则不会生效.
其它说明基于webflux的网关与基于servlet类的web应用接入整合方式是一样的步骤,例子使用的nacos版本2.0.3,如果需要在cookie,header,url,传递复杂参数【非java基本类型】,需先将参数转为json,然后使用UrlEncode进行编码,js中可以使用encodeURIComponent进行编码