一道面试题
让我们开门见山,直面主题:Dubbo 服务里面有个服务端,还有个消费端你知道吧?
服务端和消费端都各有一个线程池你知道吧?
那么面试题来了:一般情况下,服务提供者比服务消费者多吧。一个服务消费方可能会并发调用多个服务提供者,每个用户线程发送请求后,会进行超时时间内的等待。多个服务提供者可能同时做完业务,然后返回,服务消费方的线程池会收到多个响应对象。这个时候要考虑一个问题,如何将线程池里面的每个响应对象传递给相应等待的用户线程,且不出错呢?
腾讯
一面(支付)
1.jqc的介绍
2.如何确保多台机器不会重复消费
3.如何确保消费了反馈失效问题(用事务管理,先储存再消费,失败就回滚)
4.如何防止数据库单点问题
8.paxos算法
9.raft算法
10.spring的aop实现
11.三种操作,a:++,b:–,c:/2(只能偶数),求i变1的最少次数
12.人才培养(轮流尝试,提出任务,鼓励实现)
13.没有深度的广度没有意义,由广变宅,由浅入深
14.设计时需要经验但堤防经验主义
15.百度技术氛围比腾讯好
二面
1.手写多线程买票代码
2.手写ServerSocket使用代码
3.java有多少种线程池,固定线程池是怎样的
4.Collection的子接口
5.Map