真景科技-面试

为什么选择后端?
喜欢当幕后角色,处理数据和业务逻辑,保证数据的一致性和安全性,以及优化系统性能
对后端的了解?
职责:处理业务逻辑、数据存储与访问、权限管理、接口提供、性能优化、可靠性保障
技术栈:Go/C++/Java/Python 等语言都可以、数据库、缓存、消息队列
为什么数据处理不能放在前端或客户端?
安全性:前端/客户端容易被篡改,敏感数据和逻辑不适合放在用户设备。
一致性:多端数据统一、事务处理和同步问题,必须由后端控制。
性能和资源限制:前端设备性能有限,大规模计算或数据处理可能会拖慢用户体验。
可维护性:业务逻辑放在客户端,每次改动都要更新客户端,难以快速迭代。

介绍一下 Reactor 模型?
- 非阻塞 I/O
- 事件驱动模型
- 当数据来临时,内核只负责通知程序,并不会像 Proactor 那样去读取数据
内核是如何做通知的?
内核检测 fd 状态并通知用户态,用户态 Reactor 只做回调
1. 用户空间调用 epoll_create 创建 epoll 实例
2. 注册 fd
3. 内核将 fd 加入 epoll 内部红黑树
4. 当 fd 就绪时,内核将其放入就绪列表
5. 用户空间调用 epoll_wait,内核返回就绪事件列表
Reactor 是如何处理并发的?
主线程负责监听事件,事件发生后将处理操作交由子线程完成

Zset 用来做什么?
排行榜
key -> (member, score)
参数顺序
ZADD key score member
score 相同时如何排序?
根据 member 继续排序
如果要按时间先后进行排序呢?
将时间戳拼接在 score 的尾部,或者将其拼接在 member 中

面试体验最差的一集,一进面试间看见两个面试官,以为会被拷打,结果面了 13min 就结束了,真的牛逼
这种情况我已经知道面试结果了,反问都懒得问了

#发面经攒人品#
全部评论
今天面了,一样十来分钟结束。难评。
点赞 回复 分享
发布于 09-10 14:42 福建

相关推荐

评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务