微服务面试要点

本文主要探讨了微服务架构中的Nacos与Sentinel组件,以及Redis的关键概念和优势。Nacos作为服务发现和配置中心,Sentinel实现流量控制,Redis则作为高性能的分布式缓存。Redis的特点包括支持多种数据结构、持久化和单线程运行,其单线程模型反而提升了效率。文章还详细介绍了Java中使用Jedis操作Redis的方法,以及单点登录(SSO)的流程和原理。
摘要由CSDN通过智能技术生成

Nacos

原理:

  • 服务实例在启动时注册到服务注册表,并在关闭时注销

  • 服务消费者查询服务注册表,获得可用实例

  • 服务注册中心需要调用服务实例的健康检查API来验证它是否能够处理请求

sentinel

redis

概念:

Redis是一个key-value存储系统,是一个分布式缓存数据库。

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份。

优点:

性能极高、丰富的数据类型、原子性、丰富的特性

数据类型:

1.string是redis最基本的类型,可以理解成与memcached一模一样的类型,一个key对应一个value。

2.Hash是一个键值(key-value)的集合

3.list列表是简单的字符串列表,按照插入顺序排序

4.set是string类型的无序集合

5.zset和set一样是string类型元素的集合,且不允许重复的元素

redis是单线程

为什么redis是单线程,效率还高?

1.纯内存操作

2.单线程操作,避免了频繁的上下文切换

3.采用了非阻塞I/O多路复用机制

Java中操作redis,使用jedis

单点登录流程

什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分

  1. 用户访问系统的受保护资源,系统发现用户未登录,跳转至认证中心,并将自己的地址作为参数
  2. sso认证中心发现用户未登录,将用户引导至登录页面
  3. 用户输入用户名密码提交登录申请
  4. sso认证中心校验用户信息,创建用户与sso认证中心之间的会话,称为全局会话,同时创建授权令牌
  5. sso认证中心带着令牌跳转最初的请求地址
  6. 系统拿到令牌,去sso认证中心校验令牌是否有效
  7. sso认证中心校验令牌,返回有效,注册系统1
  8. 系统1使用该令牌创建与用户的会话,称为局部会话,返回受保护资源
  9. 用户访问系统2的受保护资源
  10. 系统2发现用户未登录,跳转至sso认证中心,并将自己的地址作为参数
  11. sso认证中心发现用户已登录,跳转回系统2的地址,并附上令牌
  12. 系统2拿到令牌,去sso认证中心校验令牌是否有效
  13. sso认证中心校验令牌,返回有效,注册系统2
  14. 系统2使用该令牌创建与用户的局部会话,返回受保护资源
  15. sso认证中心一直监听全局会话的状态,一旦全局会话销毁,监听器将通知所有注册系统执行注销操作
  16. 用户向系统1发起注销请求
  17. 系统1根据用户与系统1建立的会话id拿到令牌,向sso认证中心发起注销请求
  18. sso认证中心校验令牌有效,销毁全局会话,同时取出所有用此令牌注册的系统地址
  19. sso认证中心向所有注册系统发起注销请求
  20. 各注册系统接收sso认证中心的注销请求,销毁局部会话
  21. sso认证中心引导用户至登录页面
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值