在java中的模块比较种类多样和复杂,如果用分布式的思想来说,能够在使用的时候,让不同模块下的工具同时运行,而某一点的出错并不会影响整体的程序。我们在对于分布式知识点的考察上,分为不同的框架理解和其基本使用方法、原理,需要对其中的框架有比较好的掌握,下面来看看具体试题。
1.什么是分布式系统
分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。
2.业务中使用分布式的场景
随着互联网的发展,传统单工程项目的很多性能瓶颈越发凸显,性能瓶颈可以有几个方面:
(1)应用服务层:随着用户量的增加,并发量增加,单项目难以承受如此大的并发请求导致的性能瓶颈
(2)底层数据库层:随着业务的发展,数据库压力越来越大,导致的性能瓶颈
3.分布式事务的理解,分布式事务的协议有哪些
分布式事务是指会涉及到操作多个数据库的事务。目的是为了保证分布式系统中的数据一致性。分布式事务类型:二阶段提交 2PC ,三阶段提交 3PC。
2PC :第一阶段:准备阶段(投票阶段)和第二阶段:提交阶段(执行阶段)。
3PC :三个阶段:CanCommit 、PreCommit 、DoCommit。
4.Redis有哪些优势
速度快,因为数据存在内存中。
支持丰富数据类型,支持 string、list、set 、sorted set、hash。
支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。
丰富的特性:可用于缓存,消息,按 key 设置过期时间,过期后将会自动删除。
单线程,单进程,采用 IO 多路复用技术。
5.Dubbo的底层实现原理和机制
高性能和透明化的RPC远程服务调用方案
SOA服务治理方案
Dubbo缺省协议采用单一长连接和NIO异步通讯,
适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况。
以上就是java分布式面试题的整合,对于一些基础分布式的框架上是高频的考点,大家在复习的时候,可以就常用的框架重新回顾,并对具体的用法进行代码练习。更多Java试题指路: