文章目录
-
目录
文章目录
安装流程
小结
- 概要
- 安装流程
- 技术细节
- 小结
概要
网关作为微服务集群唯一的对外入口,可以实现很多功能.
例如:
统一的解决跨域(一个ajax请求 origin域名和请求目标url中域名不同,ip不同,域名不同,端口不同,都会引发的问题)问题.
统一的身份认证.认证解析JWT.
如果网关能够结合一些其它的插件 可以实现入口流量控制(sentinel).做到监控预警(Prometheus)等
网关的落地方案(Spring cloud gateway),还有其它选择
- netflix zuul: 原来比较火的一个网关组件,但是netflix奈飞停更了,zuul2流产了.
- Kong: 也是一种选择
- Nginx: 反向代理网关,并发能力,速度都可以保证. 一般要配合网关组件实现更前端的入口控制
spring cloud gateway 实现的具体功能:
- 请求转发: 网关不具备处理某个请求的能力,所以一定要转发给微服务.
- 路由匹配: (网络路由表示 端到端的路径网络选择)根据请求条件(包括地址,头,),功能判断具体由哪个服务来完成这次处理.
- 过滤器(拦截功能): 可以在过滤逻辑中,对请求做自定义的逻辑处理(比如验证身份.记录请求次数,记录并发)
配置流程
第一步创建一个新的子工程和第二步添加main启动类
第三步添加依赖
<!--spring boot web环境--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--gateway 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency><!--nacos-client 注册中--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--http负载均衡组件--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency>
第四步配置启动信息yml文件信息
server:port: 30000
spring:application:name: medical-gateway#切换一下底层web容器类型main:web-application-type: reactive#配置网关 完成入门案例的需求cloud:gateway:
# 网关的路由们routes:# 当前路由对象的id值- id: demo01# 网关转发的目标uri: http://localhost:19081# 转发判断路由的条件(判断断言)predicates:# Path断言 进入网关 匹配请求的path路径- Path=/**
第五步启动启动类,如果启动报错请参考技术细节有详细讲解问题解决
技术细节
出现以下启动问题 这个报错通常是由于在使用 Spring Boot 中的 WebFlux(响应式编程)时,缺少了 Reactive Web 服务器工厂(ReactiveWebServerFactory)的配置而导致的
解决方式如图所示:先清除一下,再编译
第一步骤:
执行命令:mvn clean compile -X
第二步骤:
第三步骤:重启idea,再运行
如果以上还不行,可以私信给作者帮你解决或者关注《全栈鍾猿》公众号私信作者解决哦