Spring Cloud微服务

news/2024/11/14 0:56:40/

认识微服务

单体项目->微服务

高耦合->低耦合

单体架构

将业务的所有功能集中在一个项目中开发

系统可用性差,耦合性高

微服务

架构方案。把单体架构中的功能模块拆分为多个独立项目

黑马商城

用户登录

通过拦截器拿到用户信息,然后threadlocal存入用户信息

在拦截器里面存入当前线程的线程域,在后续UserContext里面存着

最后要清除threadlocal防止内存泄漏

微服务拆分方式

独立project

不方便管理

maven聚合服务

一个父工程,里面几个子工程

新建maven的module

网关

基本功能

前端服务发给单体服务只用请求一个端口,请求多个微服务就需要请求多个端口?每个微服务都需要用户的登录信息,各自做登录信息校验很麻烦

网关就是路由转发身份校验

网关是对外暴露的微服务,可以从注册中心拿到各个微服务的地址,这样前端就是和单体架构一样只用请求一个端口就可以了,网关再去转发到各个微服务负载均衡选择具体实例。

 

自定义过滤器:

网关转发之前做登录校验

因为每一个微服务都需要获得用户的登录信息,比如购票、选座什么的,不可能让每一个微服务都去做JWT校验,所以把JWT校验放在【网关】中。

网关向微服务发起的是HTTP请求,所以把JWT校验信息保存在请求头中。

globalFilter全局处理器

控制过滤器的顺序【如何保证登录校验过滤器在转发过滤器之前?】

继承Order接口,getOrder返回小值,过滤器按照order从小到大的顺序执行

gatewayFilter指定接口过滤器

不是直接实现接口,要去继承抽象类工厂,而且要在yml文件中做配置

过滤器工厂类为了读取配置,创建定制化对象?

TokenValidateGatewayFilterFactory 必须以此为后缀

在yml文件中配置名称就是TokenValidate

定义顺序可以实现orderGatewayFilter

网关登录校验


http://www.ppmy.cn/news/1546432.html

相关文章

深入解析Hadoop:大数据处理的基石

随着信息技术的快速发展和互联网的普及,数据的产生速度极具增加。面对如此海量的数据,传统的数据处理工具显得力不从心。在这种背景下,诞生了一系列用于处理大数据的框架与工具,而Apache Hadoop便是其中最为知名和应用最广泛的一个…

Sqoop是一款用于在Hadoop生态系统和关系型数据库之间高效传输数据的工具

Sqoop是一款用于在Hadoop生态系统和关系型数据库之间高效传输数据的工具,它可以方便地将数据从关系型数据库(如MySQL、Oracle等)导入到Hadoop分布式文件系统(HDFS)、Hive表或HBase表中,也可以将数据从Hadoop导出到关系型数据库。以下是使用Sqoop操作HBase的一般步骤: 1…

计算机网络——SDN

分布式控制路由 集中式控制路由

第四十二章 Vue中使用mutations修改Vuex仓库数据

目录 一、mutations修改仓库数据 1.1. 概述 1.2. mutations修改数据基本步骤 1.3. 完整代码 1.3.1. main.js 1.3.2. App.vue 1.3.3. index.js 1.3.4. Son1.vue 1.3.5. Son2.vue 二、mutations传参语法 2.1. mutations传参基本步骤 2.2. 完整代码 2.2.1. index.js …

【更新中】《硬件架构的艺术》笔记(二):时钟与复位

本章主要针对ASIC设计给出建议,独立于CAD工具以及工艺,主要针对模块设计和存储器接口。 同步设计 这是对时钟域控制最安全的方法,单个主时钟和单个主置位/复位信号驱动设计中所有时序器件。 避免使用行波计数器 行波计数器:用…

导航栏小案例

实现类似于这样的效果 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>导航栏</title><style>*{margin: 0;padding: 0;}.div1{width: 100%;height: 60px;/* border: 1px solid blue; */background-color:rgb(…

引入了JUnit框架 却报错找不到:java.lang.ClassNotFoundException

完整报错如下&#xff1a; Internal Error occurred. org.junit.platform.commons.JUnitException: TestEngine with ID junit-jupiter failed to discover tests at org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.discoverEngineRoot(EngineDiscoveryOrc…

工程认证与Spring Boot:计算机课程管理的新探索

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了基于工程教育认证的计算机课程管理平台的开发全过程。通过分析基于工程教育认证的计算机课程管理平台管理的不足&#xff0c;创建了一个计算机管理基于工程教育认…