哈喽!大家好,我是小奇,一位酷爱分享的程序员
小奇打算以轻松风趣的对话形式来分享一些技术,如果你感觉通过小奇的文章学到了货色,那就给小奇一个赞吧
文章继续更新,能够微信搜寻【小奇JAVA面试】第一工夫浏览,回复【材料】更有我为大家筹备的福利哟!回复【我的项目】有我为大家筹备的一些我的项目源码。回复【简历模板】有我为大家筹备的简历模板。
@[TOC]
一、前言
书接上回,明天还是过周末,尽管不下班,然而周末得失常过呀,明天仍旧躺在我家祖传的土炕上躺平。
哎,啥时候能老婆孩子热炕头啊,当初本人睡觉怪冷的(还得添把柴)。。。
算了,不想这有的没的了,所有随缘吧,是在不行就让刘婶给我说媒。。。先烧火做饭吧
就在我烧火的时候我的手机忽然响了。
我:“喂您好”。
对面:“您好,请问是小奇吗”。
我:“是我,你是?”。
对面:“我是XXX公司的,我看到hr推给我你的简历,我感觉还不错,你什么时候不便来现场面试一下”。
我:“当初不不便现场面试了”。
对面:“好吧,那你当初不便吗?咱们当初线上面试一下吧”。
我:“好的”。
二、面试
面试官:我看你简历上写的精通Dubbo,那你能说一下Dubbo是什么吗?
我:Dubbo最开始是一款RPC框架,随着性能越来越欠缺,当初Dubbo是一款Java服务框架。
面试官:嗯,既然你说到了RPC,那么他是什么呢?
我:RPC是近程过程调用,RPC同时也是一种计算机通信协议,他能够从A机器调用B机器的程序,调用的时候就相似于调用本地程序一样不便。
面试官:嗯,那你说一下Dubbo都有哪些个性吧?
Dubbo具备负载平衡、服务超时解决、集群容错、服务降级、本地存根、本地假装、参数回调、异步调用等个性。
面试官:嗯,那你说一下Dubbo的负载平衡是怎么实现的吧?
我:在Dubbo中,消费者调用服务者的时候会记录服务者的active,比方当初有一个消费者,有A、B两个服务者。
当消费者向A服务发送一条音讯的时候,消费者本身会记录A服务的active会加1,当消费者接管到服务者A的相应后果后会将A服务的active减1。
而在消费者抉择应用哪个服务者的时候正是依据每个服务者active的大小来判断的,首先抉择active小的来调用。
面试官:嗯,那你说一下Dubbo服务超时怎么设置吧,有什么要留神的吗?
Dubbo能够在消费者和服务端都设置超时工夫,消费者的超时工夫是消费者收回音讯后到消费者接管到音讯的工夫。
服务端的超时工夫是服务端接管音讯后到处理完毕后收回的工夫。
须要留神的是生产端的工夫尽量设置的要比服务端的工夫要长,因为如果生产端设置的是2秒,服务端设置的是5秒,而服务执行就须要3秒,那么生产端必定是超时了,然而这个时候服务端并没有超时,不会产生异样。
面试官:嗯,那你说一下Dubbo的集群容错吧?
集群容错是服务端有多个提供者,他们形成集群,当消费者调用服务端的时候服务端通过负载平衡策略选出一个提供者来提供服务,当调用这个服务者产生谬误的时候,Dubbo后续采取了一系列策略。
Dubbo提供了多种集群容错模式。
Failover Cluster:失败主动切换,当呈现失败,重试其它服务器。通常用于读操作,但重试会带来更长提早。可通过 retries="2" 来设置重试次数(不含第一次)。
Failfast Cluster:疾速失败,只发动一次调用,失败立刻报错。通常用于非幂等性的写操作,比方新增记录。
Failsafe Cluster :失败平安,出现异常时,间接疏忽。通常用于写入审计日志等操作。
Failback Cluster:失败主动复原,后盾记录失败申请,定时重发。通常用于音讯告诉操作。
Forking Cluster:并行调用多个服务器,只有一个胜利即返回。通常用于实时性要求较高的读操作,但须要节约更多服务资源。可通过 forks="2" 来设置最大并行数。
Broadcast Cluster:播送调用所有提供者,一一调用,任意一台报错则报错。通常用于告诉所有提供者更新缓存或日志等本地资源信息。
面试官:“小伙子不错呀,什么时候能回北京入职呢”
我:“额。。。等等吧,当初还有好多家公司等着谈薪资呢,我得挑一家适合的。”
面试官:“你要多少我都给你,来我这吧”
我:“额。。。那就月薪100个W吧”。
面试官:“喂,你说什么我听不见,信号不好。。。”
我:“喂喂喂”(嘟嘟嘟嘟嘟嘟嘟嘟。。。)。
三、总结
这里的相干内容还没有整顿结束,文章前面继续更新,倡议珍藏。
文章中波及到的命令大家肯定要像我一样每个都敲几遍,只有在敲的过程中能力发现自己对命令是否真正的把握了。
如果感觉我的文章还不错的话就点个赞吧,另外能够微信搜寻【小奇JAVA面试】第一工夫浏览,回复【材料】更有我为大家筹备的福利哟!回复【我的项目】有我为大家筹备的一些我的项目源码。回复【简历模板】有我为大家筹备的简历模板。