Java分布式面试题基础部分

大家在就业的时候都会遇到面试的问题,面试题回答的如何关系到能否顺利入职。动力节点java培训机构的小编为大家总结了java分布式面试题基础部分,希望对大家能够有所帮助。

1.Dubbo的底层实现原理和机制

–高性能和透明化的RPC远程服务调用方案

–SOA服务治理方案

Dubbo缺省协议采用单一长连接和NIO异步通讯,

适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况

2.描述一个服务从发布到被消费的详细过程

务。首先先获取zk的配置信息,然后获取需要暴露的url,然后调用registry.register方法将url注册到zookeeper上去。

3.分布式系统怎么做服务治理

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

幂等的意思是同一个操作,重复执行多次,跟执行一次结果一致。消息幂等,即消息发送操作对于消息消费来说是幂等。也就是相同的消息发送多次,跟发送一次是一样的,这个消息只会被消费一次。

5.消息中间件如何解决消息丢失问题

为了解决消息丢失问题,我们引入了一些重发机制,但也带来的另外一个问题:消息重复,我们来看下都有哪些情况会导致消息重复:

消息发送超时,处于不确定状态,导致重试发送消息,有可能之前的消息已经发送成功,会出现消息重复的情况。解决的思路是,每个消息生成一个消息id,如果发送的消息Broker已经存在了,则丢弃。这种解决办法需要维护一个已经接收的消息的messageidlist。

消息在Broker中只有一份,但是consumer重启前,未及时更新offset,导致consumer重启之后重复消费消息。

上游业务给每个message分配一个messageID,下游业务在接收到message之后,执行业务并且保存messageID,而且要讲两部分放到同一个事务中,保证业务执行成功,messageID肯定保存,业务执行失败,messageID肯定不会保存下来,利用db中存储的messageid来做幂等。我们可以重新封装producerclient和consumerclient,将这部分messageID分配和判重的逻辑封装到clientlib里面。

dubbo启动时默认有重试机制和超时机制。

重试机制在出现调用失败时,会再次调用。如果在配置的调用次数内都失败,则认为此次请求异常,抛出异常。

7.重连机制会不会造成错误

dubbo在调用服务不成功时,默认会重试2次。

Dubbo的路由机制,会把超时的请求路由到其他机器上,而不是本机尝试,所以dubbo的重试机器也能一定程度的保证服务的质量。

8.对分布式事务的理解

本质上来说,分布式事务就是为了保证不同数据库的数据一致性。

事务的ACID特性原子性一致性隔离性持久性消息事务+最终一致性

CC提供了一个编程框架,将整个业务逻辑分为三块:Try、Confirm和Cancel三个操作。以在线下单为例,Try阶段会去扣库存,Confirm阶段则是去更新订单状态,如果更新订单失败,则进入Cancel阶段,会去恢复库存。总之,TCC就是通过代码人为实现了两阶段提交,不同的业务场景所写的代码都不一样,复杂度也不一样,因此,这种模式并不能很好地被复用。

9.如何实现负载均衡,有哪些算法可以实现

经常会用到以下四种算法:随机(random)、轮训(round-robin)、一致哈希(consistent-hash)和主备(master-slave)。

10.zookeeperwatch机制

Znode发生变化(Znode本身的增加,删除,修改,以及子Znode的变化)可以通过Watch机制通知到客户端。那么要实现Watch,就必须实现org.apache.zookeeper.Watcher接口,并且将实现类的对象传入到可以Watch的方法中。Zookeeper中所有读操作(getData(),getChildren(),exists())都可以设置Watch选项。

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

12.用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗

RabbitMQ支持AMQP(二进制),STOMP(文本),MQTT(二进制),HTTP(里面包装其他协议)等协议。Kafka使用自己的协议。

Kafka自身服务和消费者都需要依赖Zookeeper。

RabbitMQ在有大量消息堆积的情况下性能会下降,Kafka不会。毕竟AMQP设计的初衷不是用来持久化海量消息的,而Kafka一开始是用来处理海量日志的。

总的来说,RabbitMQ和Kafka都是十分优秀的分布式的消息代理服务,只要合理部署,不作,基本上可以满足生产条件下的任何需求。

13.MQ系统的数据如何保证不丢失

在数据生产时避免数据丢失的方法:

只要能避免上述两种情况,那么就可以保证消息不会被丢失。

(1)就是说在同步模式的时候,确认机制设置为-1,也就是让消息写入leader和所有的副本。

在数据消费时,避免数据丢失的方法:如果使用了storm,要开启storm的ackfail机制;如果没有使用storm,确认数据被完成处理之后,再更新offset值。低级API中需要手动控制offset值。

数据重复消费的情况,如果处理

(1)去重:将消息的唯一标识保存到外部介质中,每次消费处理时判断是否处理过;

(2)不管:大数据场景中,报表系统或者日志信息丢失几条都无所谓,不会影响最终的统计分析结

14.列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题

业务拆分、主从复制,数据库分库与分表

使用用户ID是最常用的分库的路由策略。用户的ID可以作为贯穿整个系统用的重要字段。因此,使用用户的ID我们不仅可以方便我们的查询

垂直分表

水平分表

15.zookeeper的选举策略

在zookeeper集群中也是一样,每个节点都会投票,如果某个节点获得超过半数以上的节点的投票,则该节点就是leader节点了。

zookeeper中有三种选举算法,分别是LeaderElection,FastLeaderElection,AuthLeaderElection,FastLeaderElection此算法和LeaderElection不同的是它不会像后者那样在每轮投票中要搜集到所有结果后才统计投票结果,而是不断的统计结果,一旦没有新的影响leader结果的notification出现就返回投票结果。这样的效率更高。

THE END
1.数据挖掘的算法有哪些种类帆软数字化转型知识库数据挖掘的算法有哪些种类 数据挖掘的算法有很多种类,主要包括分类算法、聚类算法、关联规则挖掘、回归分析、降维算法、序列模式挖掘、时间序列分析、异常检测算法、神经网络、支持向量机、决策树、贝叶斯分类器等。分类算法是数据挖掘中最常用的一类算法,通过学习已有数据来预测新数据的类别。决策树是一种常见的分类算法,https://www.fanruan.com/blog/article/596640/
2.海量样本无从下手?这五种抽样算法分分钟搞定假设有未知数量的大项目流,并且只供迭代一次。 数据科学家可以创建一个算法,从项目流中随机选择一个项目以使每个项目抽中的概率相等。 如何实现这一步骤? 假设必须从无限大的项目流中抽取5个对象,这样每个对象被抽中的概率都相等。 import randomdef generator(max): number = 1http://baijiahao.baidu.com/s?id=1641811193650506947&wfr=spider&for=pc
3.数据挖掘的常见算法有哪些?数据挖掘的常见算法有哪些? 数据挖掘是一种通过从大量数据中提取知识和信息的方法,以支持业务决策、市场分析和科学研究等领域。在数据挖掘过程中,算法是最重要的组成部分之一。以下是常见的数据挖掘算法。 1.分类算法 分类算法是一类用于将数据样本分为不同类别的算法。这些算法通常使用监督学习方法,其中模型基于已标记https://www.cda.cn/bigdata/202782.html
4.Java常见数据结构和算法有哪些问答Java常见的数据结构包括:数组、链表、栈、队列、树、图、堆、哈希表等。 常见的算法有:排序算法(如冒泡排序、插入排序、选择排序、快速排序、归并排序等)、查找算法(如线性查找、二分查找等)、递归算法、动态规划算法、贪心算法、回溯算法、图算法(如深度优先搜索、广度优先搜索等)等。 0 赞 0 踩https://www.yisu.com/ask/86353116.html
5.数据加密常见算法有哪些?数据加密常见算法有哪些? 数据加密常见算法有以下几种: 对称加密算法: DES(Data Encryption Standard):密钥长度为56位,已被破解,不再安全。 3DES(Triple DES):将DES算法重复3次,密钥长度为168位,安全性高,但加密解密速度较慢。 AES(Advanced Encryption Standard):密钥长度为128位、192位或256位,安全性高,加密https://cloud.tencent.com/developer/techpedia/1565/10501
6.数据挖掘有哪些经典算法?人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。 经管之家是国内活跃的在线教育咨询平台! 经管之家新媒体交易平台 提供"微信号、微博、抖音、快手、头条、小红书、百家号、企鹅号、UC号、一点资讯"等虚拟账号交易,真正https://bbs.pinggu.org/jg/kaoyankaobo_kaoyan_3282517_1.html
7.监督学习有哪些常见算法?都是如何应用的人工智能展示和告知图像的过程可以被认为是标记数据,机器学习模型训练过程中,会被告知哪些数据属于哪个类别。 监督学习有什么用?监督学习可用于回归和分类问题。分类模型允许算法确定给定数据属于哪个组别。示例可能包括 True/False、Dog/Cat 等。 由于回归模型能够根据历史数据预测将来的数值,因此它会被用于预测员工的工资或房地产https://www.php.cn/faq/510404.html
8.什么是哈希算法?常见的哈希算法有哪些?区块链技术区块链这篇文章主要介绍了什么是哈希算法?常见的哈希算法有哪些?的相关资料,需要的朋友可以参考下本文详细内容介绍 哈希算法是一种数学函数或者算法,它可以将任意长度的数据(称为“消息”)转换为固定长度的字符串(称为“哈希值”或者简称“哈希”)。哈希算法的作用是将数据进行一次性的加密,从而生成一个唯一且不可逆的标识https://www.jb51.net/blockchain/891421.html
9.启发式搜索算法有哪些启发式搜索算法的主要特点启发式搜索算法a启发式搜索算法是一类利用启发信息来指导搜索过程的智能化算法。它通过评估节点的启发值,选择具有最高估计值的节点进行扩展,以更快地找到解决方案。本文将介绍启发式搜索算法的种类、主要特点,并着重比较启发式搜索算法 A 和 A* 的区别。https://www.juhe.cn/news/index/id/8002
10.常用的图像处理算法有哪些基于机器视觉的缺陷检测方法(一)、Halcon:底层功能算法多,运算性能快,功能齐全,容易上手,开发项目周期短。非开源项目,商用收费,价格较贵。 Halcon:Halcon是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。它是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中https://m.elecfans.com/article/2201351.html
11.数据分析中的数据挖掘需要哪些算法数据分析中的数据挖掘需要以下算法:一、分类算法;二、聚类算法;三、关联规则算法;四、分类与回归树算法;五、Adaboost算法;六、期望最大化算法;七、最近邻算法;八、神经网络算法。在数据分析中,数据挖掘算法可以帮助发现数据中隐藏的模式、关系、趋势和异常。 https://www.linkflowtech.com/news/1594
12.BAT机器学习面试1000题系列(二)可以从这4个方面进行尝试:基于数据、借助算法、用算法调参、借助模型融合。当然能谈多细多深入就看你的经验心得了。 这里有一份参考清单:机器学习系列(20)_机器学习性能改善备忘单 106.做过什么样的机器学习项目?比如如何从零构建一个推荐系统? 推荐系统的公开课http://www.julyedu.com/video/play/18/148,另,https://www.jianshu.com/p/4a7f7127eef1
13.100个网络基础知识普及,看完成半个网络高手有7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。 3)什么是骨干网? 骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。它还处理带宽管理和各种通道。 4)什么是 LAN? LAN 是局域网的缩写。它是指计算机与位于小物理位置的其他网络设备之间的连接。 https://www.ahstu.edu.cn/wlzx/info/1115/2156.htm
14.数据结构和算法有什么关系?数据结构就是算法吗?,比如栈的压栈操 作,这些算法虽小但很重要,可以看成是它们决定了数据结构的外部特性,比如同样是堆,有二叉堆,二项式堆,它们除了内部结构的不同,最大的还是外部操作的 算法性能不同,也决定了它们本质上的不同,如果外部性能一样,那研究将是毫无意义的.总之,不能脱离算法讨论数据结构,也不能脱离数据结构研究算法.https://www.zybang.com/question/58d39f9a7b8e3919bbaca2a761c52852.html
15.石勇:没有数据就是无米之炊,没有算法就不能创造好的价值时代新兴战略资源,是驱动创新的重要因素,正在改变人类的生产和生活方式。”国务院参事、中国科学院虚拟经济与数据科学研究中心主任、发展中国家科学院院士石勇在以《科技创新:大数据与数字经济》为题的演讲中表示,数字经济的组成要素中,大数据、人工智能、物联网、云计算等技术更新非常快,但更重要的是大数据和智能算法。http://www.counsellor.gov.cn/2021-08/21/c_1211343171.htm
16.什么是数据结构?什么是算法?怎么学习数据结构与算法?学习算法,我们不需要死记硬背那些冗长复杂的背景知识、底层原理、指令语法……需要做的是领悟算法思想、理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案。相比编程领域的其他技术,算法更纯粹,更接近数学,也更具有趣味性。 本文将回顾数据结构与算法的基础知识,学习日常所接触场景中的一些算法和策https://maimai.cn/article/detail?fid=1744039689&efid=u2sSJyH6RePBrCh7o1dCfA
17.数据科学家最常用的10种算法每个受访者平均用到了8.1种算法,这相比于 2011 的相似调查显示的结果有了巨大的增长。 相比2011年对数据分析算法的调查,我们注意到最常用的方法仍然是回归,聚类,决策树/规则以及可视化。比例增幅最大的是(增幅=%2016/%2011 -1): Boosting算法,提升了40%。由2011年的23.5%提升倒2016年的40% https://www.51cto.com/article/517760.html