电话一面
-
工作内容以及挑战
-
你用的分布式任务调度系统中,是怎么分配计算任务的?
-
分布式CAP理论。为什么不能同时满足C和A?答案:分布式CAP定理,为什么不能同时满足三个特性?之 “二、CAP定理的证明”。问:有哪些分布式的算法?参考答案:Paxos,Raft,Zab
-
从你的理解谈一下RPC,RPC解决了什么技术场景的问题,以及它的原理。RPC与HTTP两者的异同。
-
Kafka对其它MQ的优势。各自能达到什么性能量级?答:单机吞吐量,ActiveMQ与RabbitMQ均为万级, Kafka与RocketMQ为十万级别。问:消息队列中的producer,consumer,broker,topic,partition,简单介绍它们的作用以及之间的关系。问:Kafka如何保证消息消费的顺序?问:当生产者发送消息后发生了网络抖动,Kafka如何保证消息不丢失?答:确认和重试。问:重试后又失败怎么办?参考答案:指数退避算法。1 问:消费者如何保证幂等性。
-
JDK提供了哪些并发容器,以及它们的特点?
参考答案2:ConcurrentHashMap: 线程安全的HashMap
CopyOnWriteArrayList: 线程安全的List,在读多写少的场合性能非常好,远远好于Vector.
ConcurrentLinkedQueue:高效的并发队列,使用链表实现。可以看做一个线程安全的 LinkedList,这是一个非阻塞队列。
BlockingQueue: 这是一个接口,JDK内部通过链表、数组等方式实现了这个接口。表示阻塞队列,非常适合用于作为数据共享的通道。
ConcurrentSkipListMap: 跳表的实现。这是一个Map,使用跳表的数据结构进行快速查找。
关于BlockingQueue和ConcurrentLinkedQueue,有一篇英文参考文章:LinkedBlockingQueue vs ConcurrentLinkedQueue -
项目中有没有进行容器编排?有没有容器化。
电话二面(部分)
- 项目分布式改造的目标,在哪方面进行了提升,引入了哪些新技术,这些新技术带来了哪些可量化的性能上的提升
- 有接触过物联网项目的设备吗
- 设计一个像滴滴这样的打车系统,车的量级在百万,能在什么时间内返回结果3。