简单概念题,在校招和初级工程师的社招中有可能遇到。
在这个问题之下,刷亮点有多个角度。第一个角度是提及在服务注册与发现机制中的关键点,例如说健康检查、容错等问题;第二个角度是可以讨论大规模分布式系统下的服务注册与发现会面临一些什么新的问题;第三个角度是讨论自己公司使用服务注册与发现机制,但是需要有特色;最后一个角度则是讨论在大规模的微服务集群下,服务注册与发现面临的问题。
当然,最后一个大规模微服务集群的点,可以进一步引导出来你怎么解决服务注册与发现的问题,刷一个问题排查和性能优化的人设。
简单题,校招和社招都有可能出现。
服务注册与发现其实就是为了让客户端知道有哪些服务端节点,而在分布式系统中,服务端节点是动态变化的,一会多一个一会少一个,所以需要有一个机制能够正确让客户端知道这些服务端节点的变化情况。
因此你如果要刷亮点也可以围绕服务注册与发现在反映节点动态变化上的效果。
简单题,在校招和社招中都有可能遇到。
简单题,在校招和社招中都可以说是非常热门的话题了。
在这个问题之下,你可以稍微深入讨论一下服务注册中所谓准备好才能注册的“准备好的”含义,这实际上在微服务框架和使用中都是一个比较棘手的问题。
简单题,在校招和社招中都是一个热门的题目。
你可以深入讨论注册时机的问题来刷亮点。
简单题,在校招和社招中都很热门。
在这个题目之下,你可以深入讨论服务发现过程中的容错问题,主要考虑的就是两个点:注册中心提供了错误的信息以及客户端和服务端节点之间网络不通的两种情况。
略难的题。
在这个问题之下,你回忆注册中心的三角形模型,那么会出问题的并且和注册过程有关的,就是注册中心本身有问题,服务提供者有问题,注册过程本身有问题。而如果你要想赢得亮点,就可以深入讨论判定服务提供者崩溃这一个难点,由此引发的需要客户端进行容错的问题。
在这个题目之下,你可以深入讨论服务发现不一致引发的问题,从而引出客户端容错机制,刷出亮点并且赢得竞争优势。
简单题。
如果说要回答出来,那么随便记忆两个中间件的特点就可以了。但是要想装逼成功,那么就有两个思路:一个是你们公司使用的注册中心是什么;一个是注册中心选型上的讨论,并且进一步提及在大规模微服务架构下注册中心选型的注意事项。
简单题,在校招和社招中都有可能问出来。
这算是一个深入讨论服务注册与发现、注册中心这些话题的征兆,所以为了起到良好的引导效果,你只需要尽可能提及注册中心的功能、常见注册中心、注册中心选型以及容错等话题。后续就等着面试官深入追问。
略难的题,注意这边它问的不是如何上下线,而是如何优雅上下线,所以难点就在于优雅两个字。
如果用正确但是没啥用的话来说,就是优雅上线就是你得准备好才能上线,优雅下线就是你得正确结束了才能下线。而在面试中要赢得竞争优势,就可以结合实践讨论自己在优雅上线和优雅下线的时候,做过一些什么事情。
这里我用两个案例,一个是不够高端的在上线之前要提前加载缓存,另外一个是在服务下线过程中要考虑三件事:分布式事务、分布式锁和定时任务,服务只有正确结束了这三者之后才能下线,不然就容易出现数据不一致的问题。
略难的题,这里考察的是优雅上线,所以重点不在于服务上线的过程,而在于上线要优雅。
而所谓的优雅,本质上就是你得“准备好”才能上线。你在回答这个问题的时候,可以从两个角度刷亮点:一个是你在实践中解决过的优雅上线的问题,另外一个则是讨论结合网关来做优雅上线。
略难的题,这里它问的是优雅下线,而不是下线过程,所以侧重点在于怎么做到优雅。
简单来说,就是优雅下线要考虑的就是该结束的过程要结束,该释放的资源要释放,而后才能下线。你在面试中可以结合自己的实践情况来讨论自己在优雅下线过程中处理过什么样的问题。
略难的题,一般出现在社招中,校招不会问,因为这个东西需要有实战经验才能回答好。
要刷亮点,你可以讨论在注册中心选型选 CAP 中哪一个的点。而如果你在项目经历中,或者在简历中提及过自己落地过微服务架构,那么你就可以结合自己的实践经验来聊自己是如何进行技术选型的。
略难的题,一般只会出现在社招中。
其实这种问法会让你觉得摸不着头脑,但是如果你把问题换成如果服务实例动态变化了,注册中心和客户端会怎样,就清晰多了。要在这个问题之下刷亮点,赢得竞争优势,你可以讨论客户端容错策略,以及高并发场景下服务实例频繁变化会给注册中心带来庞大的压力这两个点。
略难的题,因为很多人只知道心跳,但是不知道其它乱七八糟的健康检查方式。
在这个问题之下,最好的装逼点还是说自己在实践中用过的一些花里胡哨的健康检查方式。
略难的问题。
要想回答好这个问题,你需要仔细琢磨注册中心模型中的三个顶点和三条边都有可能出现什么问题,而后逐一分析。
而后你可以进一步结合自己在实践中遇到的和服务注册与发现有关的问题来刷亮点,这里你可以使用我准备的案例。
最简单的回答就是注册了服务端节点的定位信息,但是要想刷亮点就要讨论为了支持服务治理而注册的一些额外的信息。最好的装逼方式就是结合自己的牛逼的服务治理方案,讲自己的有特色的服务治理措施是如何利用这些注册的元数据的。
略难的题,主要是如果你长期只是做增删改查,那么你基本没有机会遇到这种问题,因为大部分时候微服务框架已经帮你解决了。
基本上注册信息过期了就代表客户端拿到了错误的注册信息,所以要么就是调用不通,要么就是流量控制如负载均衡等策略执行有问题。你要想刷亮点,就可以使用自己在实践中使用过的客户端容错措施。
简单题,心跳这个东西本身还是很清晰简单的,所以在校招和社招中都有可能遇到。
你在这个问题之下,要刷亮点有两个方向:一个是自己设计的有特色的心跳机制,另外一个则是综合讨论心跳机制在大规模分布式系统下面临的挑战。
在这个问题下要装逼,其实可以讨论一下自己实践中遇到的心跳机制使用不当的问题,以及对应的解决方案。这里我给你提供了一个很简单的因为错误配置心跳间隔引发的线上故障,你如果有合适的案例,也可以使用自己的案例。
略难的题,一般出现在社招中。
其实大多数的服务注册与发现有关的问题,你都可以从服务端、注册中心和客户端三个角度思考,这个问题也一样。在这个问题之下,你要刷亮点赢得竞争优势,那么可以使用我设计的一个有特色的心跳机制,它就是为了区分偶发性心跳失败而设计的。
略难的题,罕见的面试题,校招中几乎不会遇到。
这个问题其实有一个隐含的假设,即服务注册是没有问题的,所以你的回答只需要围绕注册中心和客户端来进行就可以。
从服务注册与发现的模型上来说,可以认为注册中心和服务端的心跳是必不可少的, 因为需要确保注册中心能够发现服务端已经崩溃。但是客户端和注册中心的心跳看上去就不是很必要,然而在实践中,这个心跳也很常见。