26.4.7 阿里淘天广告一面
一、项目与实习经历
1.你先做个自我介绍。
2.你能详细介绍一下你在字节跳动做的项目吗?
二、AI Coding 题:配置驱动的 HTTP 路由转发
题目:
实现一个通过配置文件管理的HTTP接口路由转发功能,需满足:
基础功能
•支持 YAML/JSON 配置文件定义路由规则(路径、方法、目标服务)
•实现 HTTP/HTTPS 请求转发
•处理路径通配符(如 /api/*)
进阶能力
•配置热加载(修改文件不重启服务)
•负载均衡(轮询/随机两种策略)
•请求超时控制与重试机制
生产级要求
•大文件传输时内存占用 < 50MB(流式转发)
•可读的错误码体系(如 404、502)
•输出审计日志(路径、目标 IP、状态码、耗时)
交付要求
•可运行代码 + 配置示例
•通过三个测试场景:热加载、重试、100MB 文件传输
10.你先看一下这个题目,然后说一下你的理解,以及你打算怎么处理、整体思路是什么。
11.你对这里“负载均衡”这一块是怎么理解的?
12.热加载这个功能,你觉得一般应该怎么做?
13.你刚才提到定时轮询配置,那这个轮询一般隔多久比较合适?
14.你说到实习里也有类似的动态配置更新?对应的机制大概是什么?
15.这个接口转发里,你理解的“目标服务”是什么?
16.如果目标服务不只是 HTTP,也可能是 RPC,那你觉得这里还需要考虑什么?
17.这个生成出来的代码里,配置和接口的匹配方式是什么?
18.你希望这个配置文件的更新机制是什么样的?
19.如果手动修改配置文件出了问题,比如 JSON 不合法,你觉得系统应该怎么处理?
________________________________________
三、设备特征缓存优化 / 特征 SQL 优化
20.你刚才提到设备特征缓存优化,在你优化之前,这块有缓存机制吗?
21.你刚才说每次要调适配器,这里调用适配器主要是为了获取什么?
22.是因为这个接口耗时比较长,所以你们才考虑加缓存,是吗?
23.如果设备特征对准确性要求不是特别高,那为什么适合做缓存?
24.这块缓存机制上线之后,大概优化了多少?
25.你刚才提到用了并发相关的开发,比如 concurrent hash map 这些,这块你了解多少?
26.如果涉及多线程开发,你大概了解哪些线程相关的工具?
________________________________________
四、线程 / 系统能力 / 开放题
27.如果一台 8G 内存的机器,你觉得大概能创建多少个线程?
28.如果不要求你给具体数字,那你觉得估算“最多能创建多少线程”时,需要考虑哪些因素?
________________________________________
五、SQL 复用优化
29.你第二点提到 SQL 复用优化,这一块能简单介绍一下你做的工作吗?
30.你这里提到“将时间窗口不同的查询归定为同类请求”,这个怎么理解?
31.你们是不是把某个时间范围内的 SQL 放在一起统一去请求?
________________________________________
六、滑动窗口消息去重(开放题)
32.如果你的系统接收外部消息,并且希望在一个滑动时间窗口内对消息做去重,这个功能如果交给你,你会怎么做?
33.假设你的服务有多台机器共同消费同一个上游消息源,在这种分布式场景下,滑动窗口内的消息去重你会怎么设计?
34.如果你想到加一个共享中间件,那这个共享中间件应该怎么设计?
35.这个去重逻辑你具体会怎么实现?
1.你先做个自我介绍。
2.你能详细介绍一下你在字节跳动做的项目吗?
二、AI Coding 题:配置驱动的 HTTP 路由转发
题目:
实现一个通过配置文件管理的HTTP接口路由转发功能,需满足:
基础功能
•支持 YAML/JSON 配置文件定义路由规则(路径、方法、目标服务)
•实现 HTTP/HTTPS 请求转发
•处理路径通配符(如 /api/*)
进阶能力
•配置热加载(修改文件不重启服务)
•负载均衡(轮询/随机两种策略)
•请求超时控制与重试机制
生产级要求
•大文件传输时内存占用 < 50MB(流式转发)
•可读的错误码体系(如 404、502)
•输出审计日志(路径、目标 IP、状态码、耗时)
交付要求
•可运行代码 + 配置示例
•通过三个测试场景:热加载、重试、100MB 文件传输
10.你先看一下这个题目,然后说一下你的理解,以及你打算怎么处理、整体思路是什么。
11.你对这里“负载均衡”这一块是怎么理解的?
12.热加载这个功能,你觉得一般应该怎么做?
13.你刚才提到定时轮询配置,那这个轮询一般隔多久比较合适?
14.你说到实习里也有类似的动态配置更新?对应的机制大概是什么?
15.这个接口转发里,你理解的“目标服务”是什么?
16.如果目标服务不只是 HTTP,也可能是 RPC,那你觉得这里还需要考虑什么?
17.这个生成出来的代码里,配置和接口的匹配方式是什么?
18.你希望这个配置文件的更新机制是什么样的?
19.如果手动修改配置文件出了问题,比如 JSON 不合法,你觉得系统应该怎么处理?
________________________________________
三、设备特征缓存优化 / 特征 SQL 优化
20.你刚才提到设备特征缓存优化,在你优化之前,这块有缓存机制吗?
21.你刚才说每次要调适配器,这里调用适配器主要是为了获取什么?
22.是因为这个接口耗时比较长,所以你们才考虑加缓存,是吗?
23.如果设备特征对准确性要求不是特别高,那为什么适合做缓存?
24.这块缓存机制上线之后,大概优化了多少?
25.你刚才提到用了并发相关的开发,比如 concurrent hash map 这些,这块你了解多少?
26.如果涉及多线程开发,你大概了解哪些线程相关的工具?
________________________________________
四、线程 / 系统能力 / 开放题
27.如果一台 8G 内存的机器,你觉得大概能创建多少个线程?
28.如果不要求你给具体数字,那你觉得估算“最多能创建多少线程”时,需要考虑哪些因素?
________________________________________
五、SQL 复用优化
29.你第二点提到 SQL 复用优化,这一块能简单介绍一下你做的工作吗?
30.你这里提到“将时间窗口不同的查询归定为同类请求”,这个怎么理解?
31.你们是不是把某个时间范围内的 SQL 放在一起统一去请求?
________________________________________
六、滑动窗口消息去重(开放题)
32.如果你的系统接收外部消息,并且希望在一个滑动时间窗口内对消息做去重,这个功能如果交给你,你会怎么做?
33.假设你的服务有多台机器共同消费同一个上游消息源,在这种分布式场景下,滑动窗口内的消息去重你会怎么设计?
34.如果你想到加一个共享中间件,那这个共享中间件应该怎么设计?
35.这个去重逻辑你具体会怎么实现?
全部评论
相关推荐
查看27道真题和解析