蚂蚁金服
一面
金融用户中心怎么部署
如何解决异地主从同步的延迟(MySQL 半同步)
这个半同步的 “半” 怎么理解
说说 Kubernetes 的架构,怎么部署
如何做优雅停机(期望回答 Java 本身的 shutdown hook)
持续集成平台的生命周期怎么实现(不是 GitLab 那种 Webhook/Endpoint,而是 Java 的观察者模式)
说说 DNS 工作原理
区分 cookies、session
cookies 的 domain、httpOnly 有什么用(由浏览器保证 js 不会拿到 cookie)
跨域请求,HTTP 层面怎么处理
有哪些常见的 HTTP 报文头
为什么 TIME_WAIT 要等待 2MSL
日志收集怎么处理(分为两部分,Java进程本身的 std、err 通过 glusterfs 共享,log4j2 发日志到 Kafka)
笔试
- 实现函数, 给定一个字符串数组, 求该数组的连续非空子集,分別打印出来各子集 ,举例数组为 [abc],输出 [a],[b],[c],[ab],[bc],[abc]。
- 启 5 个线程,并发对 1-10000 之间的数字进行求和,并打印结果。(要求 5 个线程全部计算完再一次性汇总)
- 两个线程交替打印1-100的整数,一个打印奇数,一个打印偶数,要求输出结果有序
- 在 java 原生的线程池之上设计一种任务并发模式, 假设每种类型的 task 都有唯一的 taskId, 现要求如下: 要求具备同一个 taskId 的任务顺序执行, 不同 taskId 的任务并发执行。