没有合适的资源?快使用搜索试试~ 我知道了~
java的JWT令牌和微服务网关使用.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 27 浏览量
2022-07-02
22:14:46
上传
评论
收藏 330KB DOCX 举报
温馨提示
试读
20页
为什么要有微服务网关 不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以下的问题: 客户端会多次请求不同的微服务,增加了客户端的复杂性 存在跨域请求,在一定场景下处理相对复杂 认证复杂,每个服务都需要独立认证 难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将会很难实施 某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难 那么有了微服务网关之后,这些问题就可以得到解决。它有着以下优点。
资源推荐
资源详情
资源评论
为什么要有微服务网关
不同的微服务一般会有不同的网络地址,而外部客户端可能需要调用多个服务
的接口才能完成一个业务需求,如果让客户端直接与各个微服务通信,会有以
下的问题:
客户端会多次请求不同的微服务,增加了客户端的复杂性
存在跨域请求,在一定场景下处理相对复杂
认证复杂,每个服务都需要独立认证
难以重构,随着项目的迭代,可能需要重新划分微服务。例如,可能将多个服务合
并成一个或者将一个服务拆分成多个。如果客户端直接与微服务通信,那么重构将
会很难实施
某些微服务可能使用了防火墙 / 浏览器不友好的协议,直接访问会有一定的困难
那么有了微服务网关之后,这些问题就可以得到解决。它有着以下优点。
安全 ,只有网关系统对外进行暴露,微服务可以隐藏在内网,通过防火墙保护。
易于监控。可以在网关收集监控数据并将其推送到外部系统进行分析。
易于认证。可以在网关上进行认证,然后再将请求转发到后端的微服务,而无须在
每个微服务中进行认证。
减少了客户端与各个微服务之间的交互次数
易于统一授权。
总结:微服务网关就是一个系统,通过暴露该微服务网关系统,方便我们进行
相关的鉴权,安全控制,日志统一处理,易于监控的相关功能。
网关微服务
微服务搭建
一个项目中可能会用到不止一个网关,所以我们将网关微服务放在 changgou-
gateway 父工程下。现在我们创建一个名为 changou-gateway- web 的微服务。
有些依赖是所有网关微服务都要用到的,所以将这些依赖放在父工程下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
启动类和配置文件不能少,启动类就不贴了,配置文件如下
spring:
application:
name: gateway-web
cloud:
gateway:
globalcors:
cors-configurations:
'[/**]': # 匹配所有请求
allowedOrigins: "*" #跨域处理 允许所有的域
allowedMethods: # 支持的方法
- GET
- POST
- PUT
- DELETE
server:
port: 8001
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:7001/eureka
instance:
prefer-ip-address: true
management:
endpoint:
gateway:
enabled: true
web:
exposure:
include: true
网关过滤配置
Host 路由
# 用户请求的域名规格配置,所有以 robod.changgou.com 开头的请求都将被路由
到 http://localhost:18081 微服务
# 例如 http://robod.changgou.com:8001/brand ——>
http://localhost:18081/brand
# 但是首先得在 hosts 文件中配置一下: 127.0.0.1 robod.changgou.com
spring:
cloud:
gateway:
routes:
- id: changgou_goods_route # 唯一标识符
uri: http://localhost:18081
predicates:
- Host=robod.changgou.com**
- Path 路径匹配过滤配置
# 所有以/brand 开头的请求都将路由到 http://localhost:18081
# 例如 localhost:8001/brand ——> localhost:18081/brand
spring:
cloud:
gateway:
routes:
- id: changgou_goods_route
uri: http://localhost:18081
predicates:
- Path=/brand/**
PrefixPath 过滤配置
# 自动加上某个前缀,用户请求/** ——>/brand/**
# 例如 localhost:8001/111 ——> localhost:8001/brand/111 ——>
localhost:18081/brand/111
spring:
剩余19页未读,继续阅读
资源评论
小兔子平安
- 粉丝: 209
- 资源: 1940
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功