当前位置: 代码网 > it编程>编程语言>Java > 某马2024SpringCloud微服务开发与实战 bug记录与微服务知识拆解(MybatisPlus、Docker、MQ、ES、Redis)第四章

某马2024SpringCloud微服务开发与实战 bug记录与微服务知识拆解(MybatisPlus、Docker、MQ、ES、Redis)第四章

2024年08月06日 Java 我要评论
2024最新SpringCloud微服务开发与实战 bug记录与微服务知识拆解 Day4背景颜色是槐花黄绿

2024最新springcloud微服务开发与实战,java黑马商城项目微服务实战开发(涵盖mybatisplus、docker、mq、es、redis高级等)day 4

我启动不了项目!!它一直滚动报错!!!项目报错java.util.concurrent.executionexception: com.alibaba.nacos.shaded.io.grpc.statusruntimeexception: unavailable: io exception

  • 如图所示,你发现自己使用docker start mysql/nacos打开了mysql容器和nacos容器,也没有其他问题,但还是一直报错

image-20240622161958497

  • 这是因为nacos启动需要mysql中的数据库数据,所以你需要先启动mysql容器,然后启动nacos

  • 而且mysql容器启动也需要时间,所以不能连着敲

image-20240710152231514

  • 具体情况可以打开 docker logs naocs进行查看

网关概述与粗浅使用

image-20240622163328468

  • 单体项目对用户账号、多模块业务进行一次认证就好了,而微服务项目将认证说不定都拆分成一个模块,因此需要一个网关,网关本身也是微服务中的一个模块

image-20240622163621898

image-20240622163603100

image-20240622163653475

image-20240624095736881

  • 配置网关路由为重点

image-20240625100140646

  • 通过路由网关,实现了什么效果?

  • 本来需要访问8081端口才能到数据,但有了网关后,访问8080也能得到8081模块的数据

image-20240625100306038

网关路由的具体属性

image-20240625100724015

image-20240625100904101

image-20240625101221512

  • stripprefix用户帮助前后端的项目不同格式请求。
  • 这里添加请求头呀、移除请求头都有局部和全局之分,通过不同的属性来进行判断

网关登录校验

image-20240625102314963

image-20240625102449614

image-20240625102608915

image-20240625102736106

globalfilter

image-20240711082447676

如何找到nettyroutingfilter?

image-20240711083334430

  • 使用ctrl+左击这里

image-20240711083434430

  • 在这个包里面,找找就到了

gatewayfilter

image-20240711090025305

  • 关于工厂类,可以看我的博客 https://blog.csdn.net/qq_61654952/article/details/138126798?ops_request_misc=%257b%2522request%255fid%2522%253a%2522172065957216800180617352%2522%252c%2522scm%2522%253a%252220140713.130102334.pc%255fblog.%2522%257d&request_id=172065957216800180617352&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-138126798-null-null.nonecase&utm_term=%e8%ae%be%e8%ae%a1&spm=1018.2226.3001.4450

image-20240712094133619

  • 全局过滤器局部过滤器也是通过实现的ordered接口数字大小来决定谁先执行的
过滤器携带参数

image-20240712094605849

案例:登录校验

image-20240712102441376

报错failed to bind properties under ‘hm.jwt.location’ to cn.hutool.core.io.resource.resource:

***************************
application failed to start
***************************

description:

failed to bind properties under 'hm.jwt.location' to cn.hutool.core.io.resource.resource:

    property: hm.jwt.location
    value: "classpath:hmall.jks"
    origin: class path resource [application.yaml] - 36:15
    reason: org.springframework.core.convert.converternotfoundexception: no converter found capable of converting from type [java.lang.string] to type [cn.hutool.core.io.resource.resource]

action:

update your application's configuration


进程已结束,退出代码为 1
  • 遇到这种情况,直接删除config文件夹下的东西,再次导入一遍

网关传递用户

image-20240712211133643

image-20240712213302366

image-20240712213930265

  • 这里指挥拦截从网关发过来的请求

openfeign

image-20240712215210702

  • 就是微服务之间,互相需要调用。这个调用不走网关,因此需要再写一个类似拦截器的东西保存用户id

总结 微服务登录体系下三种拦截器

image-20240712220359885

特性网关拦截器 (globalfilter)微服务拦截器 (handlerinterceptor)openfeign拦截器 (requestinterceptor)
作用范围所有进入网关的请求微服务内部的请求处理feign 客户端发起的 http 请求
典型用途鉴权、日志记录、流量控制、请求预处理认证与授权、日志记录、数据验证修改请求、添加认证信息、日志记录
实现接口globalfilterhandlerinterceptorrequestinterceptor
触发时机请求进入网关时请求到达控制器之前和之后feign 客户端发起请求前
依赖框架spring cloud gatewayspring mvcopenfeign
配置复杂度中等
适用场景全局拦截、网关层面的统一处理各微服务内部的请求预处理和后处理feign 调用时需要统一处理请求信息+
  • feign 客户端是用来发送请求的

配置共享

添加配置

第一步

image-20240712222358307

第二步

image-20240712222115188

拉取配置

image-20240712222735936

  • nacos会先运行,但会面对加载失败问题,因为nacos的配置还没加载进来

image-20240712222920291

  • 使用bootstrap来解决问题,解决了先运行的时候配置没有加载的问题

image-20240712223027565

在这里插入图片描述

  • 添加一个bootstrap和修改原本配置即可

配置热更新

image-20240712223931620

image-20240712223951349

第一步:添加使用的文件

image-20240712225032188

第二步:修改原本写死的文件

image-20240712225100740

第三步:在nacos中添加配置

image-20240712225158593

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com