您好!大家好,我是小七,一个爱分享的程序员。小七打算在轻松幽默的对话中分享一些技术。如果你觉得通过小七的文章有所收获,那就给小七点赞吧。持续更新,可以微信搜索【小七JAVA专访】第一时间阅读,回复【资讯】我已经为你准备好了福利!回复【项目】有一些项目源码我给大家准备好了。回复【简历模板】我有一份简历模板给你。@[TOC]1.前言续上次。今天是周末。虽然我不上班,但我必须正常度过周末。今天我还平躺在我家祖传的炕上。哎,老婆孩子什么时候暖炕头啊?现在一个人睡好冷(要多添柴火)。..算了,不想算了,算了,实在不行就让刘阿姨给我撮合。..我们先做饭吧。正在烧火的时候,我的手机突然响了。我:“你好”。对面:“你好,请问是小七吗?”我:“是我,你呢?”。对面:“我是XXX公司的,看到hr给我推了你的简历,感觉还不错,你什么时候方便过来现场面试。”我:“现在不方便现场面试。”对面:“好的,你现在方便吗?我们现在进行在线面试。”我:“好的”。2.面试面试官:我看你简历上是精通Dubbo的,能介绍一下Dubbo是什么吗?我:Dubbo本来就是一个RPC框架。随着功能越来越多,Dubbo现在是一个Java服务框架。面试官:嗯,既然你提到了RPC,它是什么?我:RPC是远程过程调用。RPC也是一种计算机通信协议。可以从A机调用B机的程序,就像调用本地程序一样方便。面试官:那你能告诉我Dubbo有什么特点吗?Dubbo具有负载均衡、服务超时处理、集群容错、服务降级、本地存根、本地伪装、参数回调、异步调用等特性。面试官:那你能说说Dubbo的负载均衡是怎么实现的吗?我:在Dubbo中,消费者调用服务器时,会记录服务器的活动。比如有一个消费者,有两个服务器A和B,当消费者向服务A发送消息时,消费者会记录服务A的active会增加1,当消费者收到从服务器A返回相应的结果,服务A的active会减1。消费者在选择使用哪个server时,根据各个server的active大小进行判断,优先选择活跃的调用。面试官:那你说说Dubbo服务超时时间怎么设置吧。有什么需要注意的吗?Dubbo可以在消费者端和服务端设置超时时间。消费者的超时时间是从消费者发送消息到消费者收到消息的时间。服务器的超时时间是从服务器收到消息到处理消息的时间。需要注意的是consumer的时间要设置的比server的时间长一些,因为如果consumer设置为2秒,server设置为5秒,服务执行需要3秒,那么consumer一定是超时了,但是此时服务器没有超时,不会出现异常。面试官:嗯,能谈谈Dubbo的集群容错吗?集群容错是指服务器有多个提供者,它们组成一个集群。当消费者调用服务器时,服务器通过负载均衡策略选择一个提供者提供服务。当调用此服务器出错时,Dubbo会跟进。一系列策略。Dubbo提供了多种集群容错模式。FailoverCluster:故障自动切换,当故障发生时,重试其他服务器。通常用于读取操作,但重试会引入更长的延迟。重试次数可以通过retries="2"设置(不包括第一次)。FailfastCluster:快速失败,只调用一次,失败立即报错。通常用于非幂等的写操作,比如添加新记录。FailsafeCluster:Failsafe,当出现异常时,直接忽略。通常用于写入审计日志等操作。FailbackCluster:自动从故障中恢复,在后台记录失败的请求,并定期重发。通常用于消息通知操作。ForkingCluster:并行调用多个服务器,只要一个成功就返回。通常用于实时性要求高的读操作,但需要浪费更多的服务资源。最大并行度可以通过forks="2"设置。BroadcastCluster:广播调用所有的provider,一个一个的,如果有任何一个报错,就会报错。通常用于通知所有提供者更新本地资源信息,如缓存或日志。面试官:“小伙子不错,我什么时候可以回北京打工?”我:“呃……等等,还有很多公司在等着谈薪水,我得选一家合适的。”采访者:“你想要多少我都给你,来找我。”我说:嗯……那我们月薪100W吧。面试官:“喂,我听不见你在说什么,信号不好……”我:“喂,你好”(哔哔哔哔哔哔...)。3.总结这里的相关内容没有整理,后面会继续更新文章,建议收藏。文中涉及的命令必须像我一样多敲几次。只有在敲打的过程中,才能发现自己是否真正掌握了命令。如果觉得我的文章还不错,请点个赞。另外可以微信搜索【小七JAVA专访】第一时间阅读,回复【资讯】我已经为你准备好了福利!回复【项目】有一些项目源码我给大家准备好了。回复【简历模板】我有一份简历模板给你。
