分布式系统面试 - 常见问题

有一些同学,之前呢主要是做传统行业,或者外包项目,一直是在那种小的公司,技术一直都搞的比较简单。他们有共同的一个问题,就是都没怎么搞过分布式系统,现在互联网公司,一般都是做分布式的系统,大家都不是做底层的分布式系统、分布式存储系统 hadoop hdfs、分布式计算系统 hadoop mapreduce / spark、分布式流式计算系统 storm。

分布式业务系统,就是把原来用 Java 开发的一个大块系统,给拆分成多个子系统,多个子系统之间互相调用,形成一个大系统的整体。假设原来你做了一个 OA 系统,里面包含了权限模块、员工模块、请假模块、财务模块,一个工程,里面包含了一堆模块,模块与模块之间会互相去调用,1 台机器部署。现在如果你把这个系统给拆开,权限系统、员工系统、请假系统、财务系统 4 个系统,4 个工程,分别在 4 台机器上部署。一个请求过来,完成这个请求,这个员工系统,调用权限系统,调用请假系统,调用财务系统,4 个系统分别完成了一部分的事情,最后 4 个系统都干完了以后,才认为是这个请求已经完成了。

这两年开始兴起和流行 Spring Cloud,刚流行,还没开始普及,目前普及的是 dubbo,因此这里也主要讲 dubbo。

面试官可能会问你以下问题。

为什么要进行系统拆分?

  • 为什么要进行系统拆分?如何进行系统拆分?拆分后不用dubbo可以吗?dubbo和thrift有什么区别呢?

分布式服务框架

  • 说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?
  • dubbo 支持哪些序列化协议?说一下 hessian 的数据结构?PB 知道吗?为什么 PB 的效率是最高的?
  • dubbo 负载均衡策略和高可用策略都有哪些?动态代理策略呢?
  • dubbo 的 spi 思想是什么?
  • 如何基于 dubbo 进行服务治理、服务降级、失败重试以及超时重试?
  • 分布式服务接口的幂等性如何设计(比如不能重复扣款)?
  • 分布式服务接口请求的顺序性如何保证?
  • 如何自己设计一个类似 dubbo 的 rpc 框架?

分布式锁

  • 使用 redis 如何设计分布式锁?使用 zk 来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?

分布式事务

  • 分布式事务了解吗?你们如何解决分布式事务问题的?TCC 如果出现网络连不通怎么办?XA 的一致性如何保证?

分布式会话

  • 集群部署时的分布式 session 如何实现?

转载来源:https://github.com/doocs/advanced-java/blob/master/docs/distributed-system/distributed-system-interview.md

分布式系统面试 - 常见问题相关推荐

  1. 【基础概念】 Redis简介和面试常见问题

    Redis简介和面试常见问题 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起 ...

  2. html手机端适配怎么调试,html5面试常见问题及答案:移动端布局与适配篇

    原标题:html5面试常见问题及答案:移动端布局与适配篇 1. 移动布局自适应不同屏幕的几种方式 (1)响应式布局 (2)100%布局(弹性布局) (3)等比缩放布局(rem) 2. iscroll安 ...

  3. python面试常见问题-Python面试常见问题,涉及Python各个方面

    原标题:Python面试常见问题,涉及Python各个方面 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问 ...

  4. 【面试】Java面试常见问题汇总(不含答案)、面试指导学习笔记

    面试常见问题角度 String是基本数据类型吗? int和Integer有什么区别? HashMap和HashTable的区别,及其实现原理. ArrayList/HashMap的源码.如何实现源码 ...

  5. tcp当主动发出syn_一文读懂TCP四次挥手工作原理及面试常见问题汇总

    简述 本文主要介绍TCP四次挥手的工作原理,以及在面试中常见的问题. 字段含义 seq序号:Sequence Number,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行 ...

  6. 面试pythone_python面试常见问题有哪些

    python面试常见问题有:1.Python是如何被解释的:2.什么是PEP8:3.Python是怎样管理内存的:4.什么是Python装饰器:5.Python提供哪些内置类型等等. 大量免费学习推荐 ...

  7. 复旦计算机考研复试要口试吗,2017复旦大学考研复试:英语口语面试常见问题汇总...

    2017复旦大学考研复试:英语口语面试常见问题汇总本站小编 辅仁网/2017-12-29 A magazine publisher is trying to decide how many magaz ...

  8. C++面试常见问题一

    C++面试常见问题一 转自:https://oldpan.me/archives/c-interview-answer-1 原作者:[oldpan][https://oldpan.me/] 前言 这里 ...

  9. 分布式系统面试 - 幂等性设计

    分布式系统面试 - 幂等性设计 面试题 分布式服务接口的幂等性如何设计(比如不能重复扣款)? 面试官心理分析 从这个问题开始,面试官就已经进入了实际的生产问题的面试了. 一个分布式系统中的某个接口,该 ...

最新文章

  1. java并发编程系列-内存模型基础
  2. Linux下oracle数据库spfile参数配置文件丢失问题解决,“ORA-32001: write to SPFILE requested but no SPFILE is in use“问题处理
  3. Python有哪些作用
  4. 实体类dao接口mysql_利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件...
  5. 人类历史上最伟大的物理学家
  6. fiddler抓包工具使用技巧
  7. Grunt-Kmc基于KISSY项目打包
  8. java—三大框架详解,其发展过程及掌握的Java技术慨括
  9. 从折叠屏到AR 三星Galaxy新品预热宣传片大招频现
  10. 附录 SpringBoot 默认的扫描包是哪个?
  11. Microsoft Office Mobile 2010 Beta 于 4 月 5 日过期
  12. 计算机存储地址如何,计算机内存地址只有5种表现形式吗,为什么?
  13. 将C#的Dic转成Lua的Table将C#的List转成Lua的Table
  14. 使用web.xml控制Web应用的行为
  15. 3dmax测试软件自动关闭,3dmax软件会自动关闭解决方案
  16. vue项目添加emoji表情
  17. 民航产业发展趋势及对策建议(2021-10-21)
  18. linux gdb 跳出函数,gdb调试程序时跳进函数和跳出函数
  19. 防止系统自动锁屏脚步
  20. 快速开发一个h5游戏

热门文章

  1. CyberArticle和Live Writer的比较
  2. Magento: 设置产品列表默认排序方式 How to sort Magento products by date added as default
  3. Google Adwords 关键字策略 – SEO数据搭配
  4. Swift中文教程(二十三) 高级运算符
  5. php模板技术 实例
  6. Joomla!程序中加载JS和CSS的方法
  7. 缓冲区溢出——初学者必须注意的问题
  8. linux 通配符 元字符 转义字符
  9. oracle重置sys密码
  10. C++——拷贝构造函数和赋值函数的注意点