Nacos 注册中心(SpringCloud)

注册中心 模块向注册中心进行注册 然后可以相互调用
image.png
消费者 (调用方法)根据注册中心得到地址
生产者(提供方法)
- Windows
启动命令:cmd startup.cmd 或者双击startup.cmd运行文件。
访问:http://localhost:8848/nacos
用户名密码:nacos/nacos

-注册nacos
配置nacos客户端的依赖
在项目中导入依赖

  1. <dependency>
  2. <groupId>org.springframework.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  4. </dependency>

配置application.properties 在客户端微服务中添加注册Nacos服务的配置信息

# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

在客户端微服务启动类中添加注解
@EnableDiscoveryClient
启动服务器客户端

实现登录

-单点登录 分布式(sso,single sign on模式)
优点 : 用户身份信息独立管理,更好的分布式管理。 可以自己扩展安全策略
缺点: 认证服务器访问压力较大。

单点登录最常见的三种方式:
1、使用session广播机制实现
session复制,登录一个模块后,访问其他模块将session复制过去。

session.setAttribute();
session.getAttribute();

2、使用cookie+redis实现
在项目的任意模块进行登录后,把数据放到两个地方,
(1)redis,在key中生成唯一随机值(ip、用户id等),在value中是用户数据
(2)cookie,在redis里边的生成key值存放到cookie里等
访问项目中其他模块,发送请求带着cookie进行发送,获取差cookie值,拿着cookie 做事情,
把cookie 获取值,到redis 中进行查询,根据key进行查询,如果查询到数据就是登录
3、使用token实现
token:按照一定的规则生成字符串,字符串可以包含用户信息
在项目的某个模块登录后,按照规则生成字符串,把登录之后的用户信息生成到字符串里边,把字符串返回,
(1)把字符串用过cookie 返回
(2)把字符串通过地址栏返回
再去访问项目其他模块,每次访问在地址栏带着字符串,在访问模块里边获取地址栏字符串,根据字符串获取用户信息,如果可以做到,就是登录。

JWT 官方规则
JWT生成字符串包含三部分:第一部分 jwt头信息,第二部分 有效载荷 包含用户信息,第三部分 签名哈希 指定算法生成哈希 防伪标志