前言
裁员增效潮滚滚而来,特总结一些实际场景方案的面试题,希望对大家找工作有一些帮助。
注册中心
题目: 有三台机器,分别部署了微服务A、微服务B、注册中心,其中A和B都有服务接口提供并正常注册到了注册中心,A和B之间有依赖调用,当前整个环境在正常运行,如果现在注册中心这台机器断电了,整个环境还是否可用,有哪些影响?
解析: 此题考察对注册中心原理的理解,这里不管注册中心是zookeep还是eureaka都是一样的。部分面试者会反问:注册中心一般会部署多台,不会都死掉的,面试官会强调场景中只有一台,并且部署多台也无法保证不会都出故障,只是概率问题。
首先要想清楚有没有影响,
- 微服务中的消费者是如何知道生产者的IP端口的呢?
是通过向注册中心问询得知; - 是什么阶段问的?
服务启动时 - 生产者增加或减少怎么知道?
zk是推给消费者更新生产者列表
eureaka是消费者定时查询生产者列表并更新
答案: 整个环境可用,但如果A或B需要重启,就无法正常运行了。
消息中间件
题目: 有三台机器,分别部署了微服务A、微服务B、消息中间件(比如RockeMQ),现在定义了一条点对点的消息,其中A是生产者、B是消费者,已知A成功生产一条消息,问B有没有可能收到两条消息?
解析: 消息中间件有什么作用,什么场景适合使用这些我向大家在各种面试宝典中已背的滚瓜烂熟,初级程序员还可以蒙混过关,但高级程序员是要独立负责一个子系统的定位,要有一定的技术把控力,你可以不懂具体实现,但你要知道这里有坑。
答案: 有可能,您问为什么有可能,请官方文档说明: