分布式事务解决方案

两阶段提交方案/XA方案

也叫做两阶段提交事务方案,这个举个例子,比如说咱们公司里经常tb是吧(就是团建),然后一般会有个tb主席(就是负责组织团建的那个人)。

tb,team building,团建

第一个阶段,一般tb主席会提前一周问一下团队里的每个人,说,大家伙,下周六我们去滑雪+烧烤,去吗?这个时候tb主席开始等待每个人的回答,如果所有人都说ok,那么就可以决定一起去这次tb。如果这个阶段里,任何一个人回答说,我有事不去了,那么tb主席就会取消这次活动。

第二个阶段,那下周六大家就一起去滑雪+烧烤了

Java生产环境下性能监控与调优详解

基于JDK命令行工具的监控

X参数

非标准化参数 有可能会变 但变化比较小

  • -Xint

    解释执行

  • -Xcomp

    第一次使用就编译成本地代码

  • -Xmixed

    混合模式,JVM自己来决定是否编译成本地代码

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

什么是SSO?

维基百科中对SSO的解释:

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

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

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

可以看下单点登陆图解:

Redis缓存相关面试题

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

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

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

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

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

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

为什么要分库分表?

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

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

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

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