字节后端实习 一二三面面经和口水话_笔经面经_牛客网

NIO

一次请求进入,不阻塞,加入队列直接返回。 Java 将 Channel 注册到 Selector, 使用缓存读取写入数据。使用单线程多路复用模型。

Select/Epoll

select 有一个 1024 大小限制的集合,每有一个文件描述符,需要 io 操作,加入集合,进入内核态轮询,等待返回结果。用户态轮询,读取数据。

epoll

create, 在内核态建立,红黑树和准备完成的文件描述符链表。每次向 红黑树插入文件描述符,并监听返回的数据,一旦有异步返回,则加入到文件描述符链表。epoll wiat 返回内核态的准备完成的链表,通过 mmap ,内存到文件的映射,用户态可以直接读取数据,少一次复制。O(k) 轮询的时间。

拦截器/过滤器

拦截请求和响应, 成功响应。

过滤器,过滤全局异常, 失败响应。

SOAP/REST

简单对象访问协议

消息体,xml 包括了具体的操作内容。

Rest 针对资源,通过动作

POST 有幂等性和安全性的问题。为了防止同一提交,对单个操作,提供唯一标识。