单点登录SSO和集中式认证服务CAS和开放授权OAuth的简要解释

什么是SSO?

维基百科中对SSO的解释:

单点登录(英语:Single sign-on,缩写为 SSO),又译为单一签入,一种对于许多相互关连,但是又是各自独立的软件系统,提供访问控制的属性。当拥有这项属性时,当用户登录时,就可以获取所有系统的访问权限,不用对每个单一系统都逐一登录。这项功能通常是以轻型目录访问协议(LDAP)来实现,在服务器上会将用户信息存储到LDAP数据库中。相同的,单一退出(single sign-off)就是指,只需要单一的退出动作,就可以结束对于多个系统的访问权限。

简单来说,单点登陆就是用户登陆过一个系统后访问其它需要认证的系统,不用用户再重复输入用户名和密码。

单点登陆包含 单点登陆 单点登出

可以看下单点登陆图解:

Redis缓存相关面试题

怎么保证redis是高并发以及高可用的?

Redis如何通过读写分离来承载读请求QPS超过10万+?

一般来说 读高并发 而不是 写高并发 (读多写少)(写多读少最好用异步【消息队列】)

所以读写分离:主从架构 主负责写 从节点负责读

QPS太高可以直接增加从节点即可

分库分表原理及中间件相关面试题

为什么要分库分表?

数据库扛不住太大的流量,单表数据量太大,查询慢

什么是分库?什么是分表?

所谓分库就是把一个库中的数据拆分到多个库中,避免了单库流量太大

分表就是把一个表的数据放到多个表中,然后查询的时候你就查一个表。比如按照用户id来分表,将一个用户的数据就放在一个表中。然后操作的时候你对一个用户就操作那个表就好了。这样可以控制每个表的数据量在可控的范围内,比如每个表就固定在200万以内。

常用消息中间件扫盲及面试题

写在前面: 这篇文章是看Java工程师面试突击第1季(可能是史上最好的Java面试突击课程)-中华石杉老师视频的一个总结,文章中第三方图片均归原作者所有。

什么是消息队列?

在计算机科学中,消息队列(英语:Message queue)是一种进程间通信或同一进程的不同线程间的通信方式,软件的贮列用来处理一系列的输入,通常是来自用户。消息队列提供了异步的通信协议,每一个贮列中的纪录包含详细说明的数据,包含发生的时间,输入设备的种类,以及特定的输入参数,也就是说:消息的发送者和接收者不需要同时与消息队列交互。消息会保存在队列中,直到接收者取回它。

简单来说,消息队列是用来收发消息的。这里边的消息并不是单纯的指字符消息,也可以是一些字节序列等等。