使用SpringCloud技术栈搭建微服务集群,可以选择的组件比较多,由于有些组件已经闭源或停更,这里主要选用spring-cloud-alibaba作为我们的技术栈 。
- 服务注册与发现: nacos-discovery
- 统一配置管理:nacos-config
- 微服务网关:spring cloud gateway
一、微服务架构
文章插图
- 所有的请求先通过Nginx进行负载和转发
- API Gateway负责进行微服务内的路由转发和身份认证
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>复制代码
需要注意的是:如果启动时报错,提示在依赖中发现的springMvc与gateway不能兼容,需要删除spring-boot-starter-web相关引用**********************************************************Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway at this time. Please remove spring-boot-starter-web dependency.**********************************************************复制代码
2. 添加启动类@EnableDiscoveryClient@SpringBootApplicationpublic class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);}}复制代码
- @EnableDiscoveryClient 用于集群下的服务注册与发现
spring:application:name: cloud-api #服务名cloud:nacos:discovery:server-addr: 127.0.0.1:8848 # nacos服务器地址gateway:routes:- id: cloud-useruri: lb://cloud-user# 后端服务名predicates:- Path=/user/**# 路由地址filters:- StripPrefix=1 # 去掉前缀server:port: 8000# 用于actuator暴露监控指标management:endpoints:web:exposure:include: "*"复制代码
- StripPrefix=1 用于在路由转发时去掉前缀地址,若无则将前缀一起转发给后端服务,比如: 请求地址为:http://localhost:8000/user/home 在没有加StripPrefix时,转发给后端服务地址为:http://{cloud-user}/user/home,否则为http://{cloud-user}/home
- management 配置用于暴露监控指标,可请求 http://localhost:8000/actuator/gateway/routes 获取所有的映射路由
1.使用Session,可使用spring security来实现Session的管理,使用redis来存储会话状态,客户端的sessionID需要cookie来存储
文章插图
优点 :
- 使用方便,客户端无感知
- 安全性高
- 会话管理支持较好
- 对客户端应用支持不友好
- 无法实现跨站跨端共享
- 实现方式相对复杂
- 需要客户端Cookie支持
文章插图
优点 :
- 对多端共享支持友好
- 对多端共享会话支持友好
- 实现方式相对简单
- 安全性高
- 无须Cookie支持
- 会话过期时间维护较复杂
- 服务端需要维持会话状态
文章插图
优点 :
- 对多端共享支持友好
- 对多端共享会话支持友好
- 服务端无会话状态
- 无须Cookie支持
- 可携带载荷数据
- 会话过期时间维护较复杂
- 默认情况下,安全性较低
- 一旦签发无法撤销,或撤销较复杂
推荐阅读
- 云原生时代的流量入口:Envoy Gateway
- SpringCloud入门简述
- 可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全
- 淘宝开店身份认证审核需要多久 淘宝店铺多久复核一次
- 普洱茶饼起源之谜,普洱茶饼的第一饼电子身份认证
- 通过淘宝身份认证和规则考试 淘宝如何认证身份信息
- 通过淘宝身份认证和规则考试 用自己身份证认证的淘宝账号会有大问题么
- 淘宝店铺复核认证秒过 淘宝开店身份认证审核需要多久
- 淘宝认证在哪里 淘宝网身份认证在哪里
- 淘宝开店身份认证审核需要多久 淘宝开店审核一般多久通过