天天看点

java工程师 商汤科技_2019Java面试总结(商汤科技)

商汤

1.简历写什么问什么,注意所⽤技术产品的同类产品⽣态及对⽐。

2.kafka数据分区和消费者的关系,kafka的数据offset读取流程,kafka内部如何保证顺序,结合外部组件如何保证消费者的顺序

1、kafka数据分区和消费者的关系:1个partition只能被同组的⼀个consumer消费,同组的consumer则起到均衡效果

2、kafka的数据offset读取流程

1.连接ZK集群,从ZK中拿到对应topic的partition信息和partition的Leader的相关信息

2.连接到对应Leader对应的broker

3.consumer将⾃⼰保存的offset发送给Leader

4.Leader根据offset等信息定位到segment(索引⽂件和⽇志⽂件)

5.根据索引⽂件中的内容,定位到⽇志⽂件中该偏移量对应的开始位置读取相应⻓度的数据并返回给consumer

3、kafka内部如何保证顺序:

kafka只能保证partition内是有序的,但是partition间的有序是没办法的。爱奇艺的搜索架构,是从业务上把需要有序的打到同⼀

个partition。

4、

3.cms垃圾回收机制

1、概念:CMS全称 Concurrent Mark Sweep,是⼀款并发的、使⽤标记-清除算法的垃圾回收器,

2、使⽤场景:GC过程短暂停,适合对时延要求较⾼的服务,⽤户线程不允许⻓时间的停顿。

3、缺点:

1、服务⻓时间运⾏,造成严重的内存碎⽚化。

2、算法实现⽐较复杂(如果也算缺点的话)。

4、实现机制:根据GC的触发机制分为:

1、周期性Old GC(被动):2s执⾏⼀次;

2、主动Old GC:触发条件:

i. YGC过程发⽣Promotion Failed,进⽽对⽼年代进⾏回收

ii. ⽐如执⾏了System.gc(),前提是没有参数ExplicitGCInvokesConcurrent

iii. 其它情况…

4.springcloud各个组件功能,内部细节,与dubbo区别,dubbo架构,dubbo负载策略

1、spring