基础知识个人小记5 | 青训营

89 阅读2分钟
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,其余服务器上的连接不受影响