动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

java分布式系统面试题(附答案)

08-18 17:18 641浏览
举报 T字号
  • 大字
  • 中字
  • 小字

掌握分布式系统开发技能是学习java编程的目标之一,对于很多java零基础的初学者来说,吸引他们从事java程序员岗位的原因除了好的发展前景和薪资待遇外,还有一点,分布式开发系统是学习java语言技术层面上的原因之一。下面整理了一些java分布式系统面试题,并附上了答案,正在学习java分布式系统和有面试需要的朋友们可以来学习一下。

1、什么是java分布式系统?

答:要理解分布式系统,主要需要明白两点:(1分布式系统一定是由多个节点组成的系统。其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的;(2这些连通的节点上部署了我们的节点,并且相互的操作会有协同。

java分布式系统对于用户而言,他们面对的就是一个服务器,提供用户需要的服务而已,而实际上这些服务是通过背后的众多服务器组成的一个分布式系统,因此分布式系统看起来像是一个超级计算机一样。

2、什么是分布式架构

答:分布式架构就是将传统结构按照模块进行拆分,不同的人负责不同的模块,不会产生代码冲突问题,方便开发。

3、什么是SOA架构

答:SOA架构就是将业务逻辑层提取出来,将相似的业务逻辑形成一个服务,提供外部访问接口,服务之间访问通过RPC调用实现。

4、微服务架构与SOA架构的区别是什么?

答:SOA基于WebService和ESP实现,底层基于HTTP协议和使用XML方式传输,XML在网络传输过程中会产生大量冗余。微服务由SOA架构演变而来,继承了SOA架构的优点,同时对SOA架构缺点进行改善,数据传输采用JSON格式,相比于XML更轻量和快捷,粒度更细,更加便于敏捷开发。SOA数据库会存在共享,微服务提倡每个服务连接独立的数据库。

5、分布式系统的类型有哪几种?

答:java分布式系统的类型有以下三种:(1)分布式处理,但只有一个总数据库,没有局部数据库;(2)分层式处理,每一层都有自己的数据库;(3)充分分散的分布式网络,没有中央控制部分,各节点之间的联系方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式的联接等。

6、分布式系统怎么做服务治理?

答:针对互联网业务的特点,eg 突发的流量高峰、网络延时、机房故障等,重点针对大规模跨机房的海量服务进行运行态治理,保障线上服务的高SLA,满足用户的体验,常用的策略包括限流降级、服务嵌入迁出、服务动态路由和灰度发布等。

7、Dubbo的服务请求失败怎么处理?

答:Dubbo启动时默认有重试机制和超时机制。超时机制的规则是如果在一定的时间内,provider没有返回,则认为本次调用失败,重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。

8、zookeeper的选举策略是什么?

答:在zookeeper集群中也是一样,每个节点都会投票,如果某个节点获得超过半数以上的节点的投票,则该节点就是leader节点了。zookeeper中有三种选举算法,分别是LeaderElection;FastLeaderElection;AuthLeaderElection。FastLeaderElection此算法和LeaderElection不同的是它不会像后者那样在每轮投票中要搜集到所有结果后才统计投票结果,而是不断的统计结果,一旦没有新的影响leader结果的notification出现就返回投票结果。这样的效率更高。

9、ZooKeeper实现分布式锁的步骤?

答:(1)客户端连接ZooKeeper,并在 /lock下创建临时的且有序的子节点,第一个客户端对应的子节点为 /lock/lock-10000000001,第二个为 /lock/lock-10000000002,以此类推;

2)客户端获取 /lock下的子节点列表,判断自己创建的子节点是否为当前子节点列表中序号最小的子节点,如果是则认为获得锁,否则监听刚好在自己之前一位的子节点删除消息,获得子节点变更通知后重复此步骤直至获得锁;

3)执行业务代码;

4)完成业务流程后,删除对应的子节点释放锁。

10、分布式集群下怎样做到唯一序列号?

答:Redis生成ID这主要依赖于Redis是单线程的,所以也可以用生成全局唯一的ID,可以用Redis的原子操作INCR和INCRBY来实现。

以上就是今天为大家整理的java分布式系统面试题的内容了,使用java分布式系统不仅可以增大系统容量,还可以加强系统可用性,也因为软件服务模块被拆分,开发和发布速度可以并行而变得更快,一系列的优点使得分布式系统应用的很广泛,所以在java面试中少不了对这一方面相关知识的考察,希望整理的这篇java分布式系统面试题可以帮助到大家,顺利通过面试。

0人推荐
共同学习,写下你的评论
0条评论
硬汉宝宝
程序员硬汉宝宝

6篇文章贡献21407字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消