当前位置: 首页 > 图灵资讯 > 技术篇> java分布式系统面试题(附答案)

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

来源:图灵教育
时间:2023-03-28 17:41:57

掌握分布式系统开发技能,学习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什么是选举策略?

答:在zookeper集群也是如此。每个节点都会投票。如果一个节点得到超过一半的节点投票,节点就是leader节点。zookeper中有三种选举算法,分别是leaderelectionn;FastLeaderElection;AuthLeaderElection。Fastleaderelection算法与leaderelection不同的是,它不会像后者那样在每轮投票中收集所有结果,而是持续统计结果。一旦没有影响leader结果的新notifiction出现,它将返回投票结果。这种效率更高。

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

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

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

3)执行业务代码;

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

10、如何在分布式集群下实现唯一的序列号?

答:Redis生成ID主要依赖于Redis是单线程,因此也可以生成全球唯一的ID,可以通过Redis原子操作INCR和INCRBY来实现。

以上是今天为大家整理的。java分布式系统面试问题的内容,使用java分布式系统不仅可以增加系统容量,还可以增强系统的可用性,而且由于软件服务模块被拆分,开发和发布速度可以平行,变得更快,一系列优势使分布式系统应用非常广泛,所以在java面试中,希望这个java分布式系统面试题能帮助大家顺利通过面试。