前言

分布式分为分布式缓存(Redis)、分布式锁(Redis 或 Zookeeper)、分布式服务(Dubbo 或 SpringCloud)、分布式服务协调(Zookeeper)、分布式消息队列(Kafka 、RabbitMq)、分布式 Session 、分布式事务、分布式搜索(Elasticsearch)等。不可能所有分布式内容都熟悉,一定要在某个领域有所专长。

1、集群、分布式、SOA、微服务的概念及区别

集群:不同服务器部署同一套应用服务对外提供访问,实现服务的负载均衡或者互备(热备,主从等),指同一种组件的多个实例,形成的逻辑上的整体。单个节点可以提供完整服务。集群是物理形态

分布式:服务的不同模块部署在不同的服务器上,单个节点不能提供完整服务,需要多节点协调提供服务(也可以是相同组件部署在不同节点、但节点间通过交换信息协作提供服务),分布式强调的是工作方式

SOA:面向服务的架构,一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中。各个服务之间通过网络调用。

微服务:在 SOA 上做的升华,微服务架构强调的一个重点是业务需要彻底的组件化和服务化,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成

2、简述CAP理论

3、简述Base理论

4、数据一致性模型有哪些

5、选举算法Quorum 机制、WARO

6、简述paxos算法

7、简述raft算法

8、简述zab协议

9、负载均衡策略有哪些

10、分布式系统的设计目标

二、分布式事务

1、分布式事务有哪些解决方案

2、对比两阶段,三阶段有哪些改进

3、简述TCC事务模型

三、分布式服务

1、如何理解RPC

2、zk的初始化选举和崩溃选举过程

3、zk的watch机制实现原理

4、zk分布式锁实现原理

5、Zookeeper 的典型应用场景

6、zk的数据同步原理

7、zk中一个客户端修改了某个节点的数据,其他客户端能够马上获取到这个最新数据吗?

8、请谈谈ZooKeeper对事务性的支持

9、简述zk中的观察者机制

10、zk的会话管理机制

11、zk和eureka的对比

12、Dubbo是什么?能做什么?

13、简述dubbo的分层设计

14、能说下Dubbo的工作流程吗

15、dubbo服务暴露过程

16、dubbo服务引入过程

17、dubbo服务调用过程

18、Dubbo支持的注册中心有哪些?

19、dubbo集群容错策略有哪些

20、dubbo的SPI机制

四、分布式存储

1、如何实现分库分表

2、存储拆分后如何解决唯一主键问题

3、雪花算法原理

4、如何解决不使用分区键的查询问题

5、session的分布式方案

五、分布式缓存

1、如何避免缓存穿透、缓存击穿、缓存雪崩?

2、分布式系统中常用的缓存方案有哪些

3、如何保证数据库与缓存的一致性?

4、缓存过期都有哪些策略?

5、常见的缓存淘汰算法

6、布隆过滤器原理,优缺点

7、分布式缓存寻址算法

8、redis的持久化机制

9、Redis单线程为什么这么快

10、说一下你知道的redis高可用方案

11、redis 主从同步机制

12、简述Redis事务实现

13、简述redis数据结构

14、数据库实现分布式锁的问题及解决方案

15、redis分布式锁实现

六、分布式高可用

1、什么是服务降级、什么是熔断

降级是解决系统资源不足和海量业务请求之间的矛盾

在暴增的流量请求下,对一些非核心流程业务、非关键业务,进行有策略的放弃,以此来释放系统资源,保证核心业务的正常运行,尽量避免这种系统资源分配的不平衡,打破二八策略,让更多的机器资源,承载主要的业务请求。服务降级不是一个常态策略,而是应对非正常情况下的应急策略。

服务降级的结果,通常是对一些业务请求,返回一个统一的结果,可以理解为是一种 FailOver 快速失败的策略。一般通过配置中心配置开关实现开启降级熔断模式保护的是业务系统不被外部大流量或者下游系统的异常而拖垮。

2、高并发场景下如何实现系统限流?

限流一般需要结合容量规划和压测来进行。当外部请求接近或者达到系统的最大阈值时,触发限流,采取其他的手段进行降级,保护系统不被压垮。常见的降级策略包括延迟处理、拒绝服务、随机拒绝等。

七、消息中间件

1、消息队列的优缺点,使用场景

2、如何保证消息不被重复消费

3、Kafka、ActiveMQ、RabbitMQ、RocketMQ 对比

4、RabbitMQ架构设计

5、简述RabbitMq的交换机类型

6、rabbitmq可以直连队列么?

7、rabbitmq的持久化机制

8、RabbitMQ事务消息

9、RabbitMQ如何保证消息的可靠性传输

10、rabbitmq的死信队列、延迟队列原理

11、rabbitmq的普通集群原理

12、rabbitmq的镜像队列原理

13、kafka架构设计

14、kafka高性能高吞吐的原因

15、kafka的副本同步机制

16、Kafka消息高可靠解决方案

17、kafka的rebalance机制

18、RocketMQ 架构设计

19、RocketMQ 事务消息原理

20、RocketMQ 顺序消息原理

不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要,希望这份Java分布式面试真题可以对大家今年的金三银四面试跳槽有帮助。

需要领取这份分布式笔记的可以点击下面卡片备注 csdn 即可获取。

Boss说:你要是能搞懂这六个分布式技术栈,我给你薪资翻倍相关推荐

  1. Java程序员应该搞懂的六个问题

    Java程序员应该搞懂的六个问题 太平洋电脑网 作者:雷少 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题 ...

  2. Java初学者都应该搞懂的六个问题

    对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容均来自于CSDN的经典老贴. ...

  3. 每个Java初学者都应该搞懂的六个问题

    对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容均来自于CSDN的经典老贴. ...

  4. 一图搞懂扫码登录的技术原理

    现在扫码登录是一种很常见的登录方式.当用户需要登录某个网站时,网站会提供一种扫码登录的方式,用户打开相应的手机App,扫描网站上显示的二维码,然后在App中确认登录,网站监测到用户确认登录后,跳转到登 ...

  5. JVM - 结合代码示例彻底搞懂Java内存区域_线程栈 | 本地方法栈 | 程序计数器

    文章目录 Pre 运行时数据区总览 线程栈 概要 栈内部主要组成部分 局部变量 操作数栈 动态链接 方法出口 小结 程序计数器 本地方法栈 附 测试demo javap JVM字节码指令集手册 Pre ...

  6. 搞懂深浅拷贝JavaScript内存之栈和堆

    对于前端来说,平时开发业务代码的时候根本不会关心JavaScript的内存问题,因为根本用不到,也因此对于内存分配没有一点概念.只有理解了内存分配,对于深拷贝和浅拷贝才能真正理解.当然,理解内存分配对 ...

  7. 一篇搞懂MySQL 8.0 Clone技术在线搭建主从复制全过程

    墨墨导读:MySQL从8.0.17开始新增了克隆Clone技术,可以在线进行MySQL的本地克隆或远程克隆,从此搭建从库可以不再需要备份工具来实现了,本文分享Clone技术在线搭建主从复制全过程,希望 ...

  8. mysql在线主从复制_一篇搞懂MySQL 8.0 Clone技术在线搭建主从复制全过程

    墨墨导读:MySQL从8.0.17开始新增了克隆Clone技术,可以在线进行MySQL的本地克隆或远程克隆,从此搭建从库可以不再需要备份工具来实现了,本文分享Clone技术在线搭建主从复制全过程,希望 ...

  9. 【一篇文章搞懂】什么是分布式锁?为什么要用分布式锁?看这篇文章准没错!

    简介 HikariCP 是用于创建和管理连接,利用"池"的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制.连接可靠性测试.连接泄露控制.缓存语句等功能,另外,和 dr ...

  10. 一文彻底搞懂I/O多路复用及其技术

    前言 ​ 高性能是每个程序员的追求,无论写一行代码还是做一个系统,都希望能够达到高性能的效果.高性能架构设计主要集中在两方面: 尽量提升单服务器的性能,将单服务器的性能发挥到极致 如果单服务器无法支撑 ...

最新文章

  1. JavaScript 兼容新旧版chrome和firefox的桌面通知
  2. 在Centos7安装mysql
  3. Python——三级菜单
  4. 没有Wi-Fi?三种方法通过iPhone让Macbook连上网络
  5. 洛谷 P1278 单词游戏 【状压dp】
  6. 苹果mac应用程序卸载软件:App Uninstaller
  7. 当内存512遇上Access数据库600M,IO磁盘受伤了
  8. spring-boot-starter-parent 包maven依赖报错
  9. Java技术栈(跳槽,面试必备)
  10. 实验二 Linux下Vi编辑器的使用
  11. 外汇风险管理:德鲁克日志之五月十一日
  12. Socket聊天室(基于C语言)
  13. 房屋托管网络管理系统_学习管理系统和共享托管
  14. VFP6.0运行exe文件后显示:程序错误 “不能存取文件”
  15. “北大数学系扫地僧” 等十人获奖,均分1000万元,达摩院2021青橙奖出炉
  16. 【可达性分析中的增量更新和原始快照】
  17. android framework实战车机手机系统开发环境相关问题补充
  18. Cell | 深度突变学习预测SARS-CoV-2受体结合域组合突变对ACE2结合和抗体逃逸的影响...
  19. 解决打开管家婆软件报表慢的问题
  20. 在学校游说开源和Linux

热门文章

  1. 算法设计与分析期末考试
  2. sqlserver200864位下载_SQL2008下载 SQL Server 2008 R2 简体中文版(64位) 下载-脚本之家
  3. Ubuntu--安装gcc--方法/教程
  4. 《高质量C++/C编程指南(林锐)》学习笔记
  5. 中国精算师资格考试-考试指南
  6. php抓取访客国旗,爬取世界各国和地区数据国旗和国徽的高清图标和图片
  7. 最经济方案 谈P2P电影服务器
  8. python贪心算法几个经典例子_Python笔试——贪心算法
  9. 天锐绿盾技术大讲堂:解密审批流程管理
  10. C#百度OCR-身份证图片识别提取信息