1.路由设计:
静态路由除了用map,还可以用前缀匹配树
参数路由,可以用前缀匹配树
2.BIO:读取数据,处理业务逻辑,如果在期间出现问题,就会一直等待,直到解决
NIO:注册监听器,当有足够数据后才会唤醒执行该业务
3.网络库优化:存下全部header,减少系统调用次数,能够复用内存,能够多次读
解决方案:绑定一块缓冲区
4.netpoll优化:存下全部header,拷贝出完整的body
解决方案:分配足够大的buffer,限制最大buffer size
5.四层负载对100.1.2.3只能bind一个80端口,而有多个外部站点需要使用,该如何解决?
(有一些7层相关的配置需求,该怎么做)
ssl卸载:业务侧是http服务,用户需要用https访问
请求重定向:浏览器访问toutiao.com自动跳转www.toutiao.com
路由添加匹配策略:完全、前缀、正则
header编辑
跨域支持
协议支持:websocket、grpc、quic
6.RPC好处
单一职责、有利于分工协作和运维开发
可扩展性强,资源使用率更优
故障隔离,服务的整体可靠性更高
7.常见的调度算法原理
RR轮询:Round Robin,将所有的请求平均分配给每个真实服务器RS
加权RR轮询:给每个后端服务器一个权值比例,将请求按照比例分配
最小连接:把新的连接请求分配到当前连接数最小的服务器
五元组hash:根据sip、sport、proto、dip、dport对静态分配的服务器做散列取模
缺点:当后端某个服务器故障后,所有连接都重新计算响整个 hash 环
一致性hash:只影响故障服务器上的连接session,其余服务器上的连接不受影响