Dubbo结合Gateway实现微服务网关

前言

最近,我发布了Dubbo Demo项目以及Gateway网关的博客,于是奇思妙想到能不能将两者结合起来呢?首先我们可以在Dubbo的官网中看了开发者文档,它推荐使用的网关只有三种KongDubbo Proxy以及Zuul,而Gateway被认为是Zuul的替代品,所以从理论上是完全可行,所以来吧,展示!

Nacos安装以及其使用可参考我的博客:Nacos服务治理中心和配置中心

Gateway安装及使用可参考我的博客:微服务网关-Gateway

正文

网关模块:spring-dubbo-gateway

注入依赖

<dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>2.1.2.RELEASE</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId><version>2.1.2.RELEASE</version></dependency>
</dependencies><dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>Greenwich.RELEASE</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

application.properties:配置文件

server.port=9000
spring.application.name=spring-dubbo-gateway
spring.main.allow-bean-definition-overriding=truespring.cloud.nacos.discovery.server-addr=127.0.0.1:8848spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.discovery.locator.lower-case-service-id=true
spring.cloud.gateway.routes[0].id=gateway-producer-service
spring.cloud.gateway.routes[0].uri=lb://spring-dubbo-producer
spring.cloud.gateway.routes[0].predicates[0]=Path=/producer/**

代理服务模块:spring-dubbo-producer

注入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId><version>0.9.0.RELEASE</version>
</dependency><!--dubbo-->
<dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.6.6</version>
</dependency><!-- Nacos Spring dependency -->
<dependency><groupId>com.alibaba</groupId><artifactId>dubbo-registry-nacos</artifactId><version>2.6.6</version>
</dependency><dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>0.6.1</version>
</dependency><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId>
</dependency>

application.properties:配置文件

server.port=8080
spring.application.name=spring-dubbo-producer
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

验证

启动项目在Nacos可看到服务

测试接口

@RestController
@Slf4j
@RequestMapping("/producer")
public class UserController {@GetMapping("/helloword")public String hello(String input){return "你好,"+input;}
}

访问测试接口:
127.0.0.1:9000/producer/helloword?input=溪源的奇思妙想

Dubbo结合Gateway实现微服务网关相关推荐

  1. 【使用Spring Cloud Gateway构建微服务网关】—— 每天一点小知识

    ·

  2. SpringCloud 微服务网关Gateway介绍及简单路由配置

    概述:什么是微服务网关?为了解决用户客户端在调用微服务系统中的多个消费者工程接口时,需要维护非常多的消费者应用接口地址等信息,以及可能存在不同应用见的调用跨域等问题,微服务网关组件随即出现.网关作为用 ...

  3. 微服务网关鉴权:gateway使用、网关限流使用、用户密码加密、JWT鉴权

    点击上方"芋道源码",选择"设为星标" 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 10:33 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | ...

  4. 微服务网关Zuul迁移到Spring Cloud Gateway

    https://juejin.im/post/5ba8daa56fb9a05cfe486ebf 背景 在之前的文章中,我们介绍过微服务网关Spring Cloud Netflix Zuul,前段时间有 ...

  5. 微服务网关Gateway

    使用场景 不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 客户端会多次请求不同的微服务,增加了客户端 ...

  6. spring cloud gateway 网关_微服务网关Spring Cloud Gateway全搞定

    一.微服务网关Spring Cloud Gateway 1.1 导引 文中内容包含:微服务网关限流10万QPS.跨域.过滤器.令牌桶算法. 在构建微服务系统中,必不可少的技术就是网关了,从早期的Zuu ...

  7. SpringCloud 微服务网关Gateway 动态路由配置

    概述:在上一章节<SpringCloud 微服务网关Gateway介绍及简单路由配置>中我们讲述了Gateway的最简单的路由配置方式.但是其中比较明显的问题就是我们在配置路由服务的地址时 ...

  8. 微服务网关总结之 —— Gateway

    前言 在上一篇我们聊了下zuul作为微服务网关的简单使用,本节继续探讨一下微服务中的另一个网关Gateway 为什么使用Gateway 既然zuul已经提供了很强大而且灵活的网关功能了,为什么还要考虑 ...

  9. 网关 跨域_好文推荐:微服务网关实战—Spring Cloud Gateway

    作者:博云BoCloud| 前言 作为Netflix Zuul的替代者,Spring Cloud Gateway是一款非常实用的微服务网关,在Spring Cloud微服务架构体系中发挥非常大的作用. ...

最新文章

  1. win8.1远程连接Redis数据库
  2. Shiro之从数据库初始化角色权限信息
  3. P3165 [CQOI2014]排序机械臂
  4. spring源码编译和导入eclipse
  5. 马拉车(manacher)算法——最长回文(hdu3068)
  6. springboot(六):如何优雅的使用mybatis
  7. 面对 Google、Facebook、微软等科技巨头的围剿,夹缝中的初创企业该何去何从?...
  8. idea设置控制台字体大小
  9. 层次分析法(AHP)——算数平均值法、几何平均值法、特征值法(Python实现,超详细注释)
  10. 【嗅探工具】wireshark初步认识
  11. Java中IO和NIO的区别
  12. 大年三十问候导师的后果
  13. SIM不识卡简单分析流程
  14. 11月20日 如何在场景开启Debug,自定义AI任务,EQS,创建自己的环境任务,使用Pawn环境检测来检测周围的环境,让AI动作更顺滑(动画混合
  15. 一文了解新型AMM方案Caspian,解决L2导致的流动性碎片化问题
  16. python人像绘制_CVPR 2019 | APDrawingGAN:人脸秒变艺术肖像画
  17. 动态模糊神经网络用于自学习
  18. 二重积分的计算.01
  19. groupcache源码解析(IRU)
  20. php 项目操作日志文件,什么是操作日志?关于操作日志实例用法汇总

热门文章

  1. 2017 年节点——T 型成长,持续学习
  2. Blog-Freshman
  3. android 发短信 oppo,oppo手机怎么自动回复短信?oppo手机自动回复信息设置教程
  4. Mac电脑SecureCRT安装步骤
  5. 小型直播系统系列-乐聊TV的开发(一)
  6. php公众号向多个用户推送消息,如何实现微信公众号给指定互动用户推送多次消息?...
  7. 【工业智能】知识进化论:卓越运营是如何拥抱工业智能,如虎添翼的?
  8. 黑客与画家:硅谷创业之父Paul Graham文集
  9. 那时本该像风一样把你忘记
  10. 练习2-4:重新编写函数squeeze(s1,s2),将字符串s1中的任何字符与字符串时s2中的字符匹配的字符都删除