首先是坑(gateway导包失败)
我是一个商城项目,为其增加网关服务,
给后续登录,放行,权限校验做准备。
但是增加gateway包的时候
1是引入后启动不了,无法注册进Eureka。排除了yml配置文件问题。
2新增了boot web包,启动是能启动了,但变成了web了之后网关就失效了,无法实现我想要的转发效果。
3删除web 或者百度 gateway exclusion web都不行,原因竟是我没有成功导入gateway!(如首图)
我在网上其他人的资料发现这个包可以展开,但我的并没能成功导入进来。
4下载了份正确的包,放入我本地maven,再再libarey里更新了下。成功导入并且启动。
这是个网上其他人遇到过的问题,web冲突
Spring MVC在类路径上找到,目前与Spring Cloud Gateway不兼容。请删除spring-boot-starter web依赖项。问题很见名知意
在使用jwt令牌时,在项目公告模块里创建了jwt生成与检验方法,而公共模块继承的父pom文件里有boot-web的启动类,所以当gateway模块需要调用令牌检验时,我们就需要保证web启动包的唯一性。
总结,
网关项目不需要web启动包,idea自动下包的时候也可能下的不完全,导致不报错也不成功启动。
学习:
gateway架构作用
·为了解决服务与服务之间复杂的调用关系,原是根据id和地址栏一个个去访问,现如今(我当前学习进度)可以根据 地址转Eureka服务名,或者地址转地址,(实际地址不会展现在浏览器)实现服务转发。
·服务进行鉴定身份,如登录模块创建jwt令牌,登录成功时,
1创建一个map,存放用户信息
2根据map转json串,和随机生成的ID调用方法生成token
3把token存放之cookie中
传递方式也是通过请求和响应。
我想这里面验证不光有token是否能成功解析一方面,还得是专门验证是否是这个用户。
·流量控制还没学到
·同