博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring-Cloud-Finchley | 路由网关 GateWay
阅读量:4104 次
发布时间:2019-05-25

本文共 2529 字,大约阅读时间需要 8 分钟。

一、简介

Spring Cloud Gateway 是 Spring Cloud 官方的亲儿子,用来代替 Zuul 网关,两者的区别在于 Zuul 是基于servlet,使用阻塞 API,不支持任何长的连接,如 websocket,Gateway 建立在 Spring 5 ,Spring Boot 2 之上上,使用非阻塞 API。支持Websockets,因为它与 Spring 无缝集成,可以给开发者更好的开发体验。

下面是一个 GateWay 实现路由转发的实例。

二、实例

1、创建服务 gateway-service,eureka-service

核心依赖

org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
Finchley.RELEASE
org.springframework.cloud
spring-cloud-starter-gateway
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client

配置文件

spring:  application:    name: gateway  cloud:    gateway:      discovery:        locator:        # 根据服务ID查找          enabled: true      routes:      - id: user-route        # uri: http://localhost:8883        uri: lb://user-service        predicates:        - Path=/user-service/**        filters:        # 去掉前缀,转发之前忽略一个前缀,将 /user-service 去掉        - StripPrefix=1eureka: client:   serviceUrl:    defaultZone: http://127.0.0.1:8761/eureka/server:  port: 8889
2、创建服务 user-service

核心依赖

org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
Finchley.RELEASE
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client

代码

@RestControllerpublic class UserController {
@GetMapping("/admin") public String admin() {
return "admin"; } @GetMapping("/guest") public String guest() {
return "guest"; }}

yml 配置文件

server:  port: 8883  servlet.context-path: /usereureka: client:   serviceUrl:    defaultZone: http://127.0.0.1:8761/eureka/spring:  application:    name: user-service

三、测试

访问以下网关地址,路由到用户地址

http://localhost:8889/user-service/user/guest

—— 完

看完觉得有用,记得点赞,关注,转发,养成好习惯,拒绝白嫖,从我做起!

ABOUT

公众号:【星尘Pro】

github:

推荐阅读

参考资料

https://spring.io/projects/spring-cloud-gateway

https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/
https://cloud.spring.io/spring-cloud-gateway/2.2.x/reference/html/appendix.html
https://cloud.tencent.com/developer/article/1443923

转载地址:http://myfsi.baihongyu.com/

你可能感兴趣的文章
早知道这些免费 API,我就可以不用到处爬数据了!
查看>>
Java各种集合类的合并(数组、List、Set、Map)
查看>>
JS中各种数组遍历方式的性能对比
查看>>
Mysql复制表以及复制数据库
查看>>
进程管理(一)
查看>>
linux 内核—进程的地址空间(1)
查看>>
存储器管理(二)
查看>>
开局一张图,学一学项目管理神器Maven!
查看>>
Android中的Binder(二)
查看>>
Framework之View的工作原理(一)
查看>>
Web应用架构
查看>>
设计模式之策略模式
查看>>
深究Java中的RMI底层原理
查看>>
用idea创建一个maven web项目
查看>>
Kafka
查看>>
9.1 为我们的角色划分权限
查看>>
维吉尼亚之加解密及破解
查看>>
DES加解密
查看>>
TCP/IP协议三次握手与四次握手流程解析
查看>>
PHP 扩展开发 : 编写一个hello world !
查看>>