HAProxy 研究笔记 -- TCP 连接处理流程

这篇博客详细介绍了HAProxy处理TCP连接的流程,包括相关初始化、TCP连接的处理,如接受新建连接、接收和发送事件。核心数据结构session在每个连接中创建并伴随连接生命周期,同时分析了session初始化、listener初始化及其accept方法。文章还深入探讨了TCP建连过程,如session和task的分配、socket设置以及接收和发送事件的处理。
摘要由CSDN通过智能技术生成
本文基于 HAProxy 1.5-dev7 版本。
  • 目录
  • 1. 关键数据结构 session
  • 2. 相关初始化
    • 2.1. 初始化处理 TCP 连接的方法
    • 2.2. 初始化 listener
    • 2.3. 绑定所有已注册协议上的 listeners
    • 2.4. 启用所有已注册协议上的 listeners
  • 3. TCP 连接的处理流程
    • 3.1. 接受新建连接
    • 3.2. TCP 连接上的接收事件
    • 3.3. TCP 连接上的发送事件
    • 3.4. http 请求的处理

1. 关键数据结构 session
haproxy 负责处理请求的核心数据结构是 struct session,本文不对该数据结构进行分析。

从业务的处理的角度,简单介绍一下对 session 的理解:

  • haproxy 每接收到 client 的一个连接,便会创建一个 session 结构,该结构一直伴随着连接的处理,直至连接被关闭,session 才会被释放
  • haproxy 其他的数据结构,大多会通过引用的方式和 session 进行关联
  • 一个业务 session 上会存在两个 TCP 连接,一个是 client 到 haproxy,一个是 haproxy 到后端 server。

此外,一个 session,通常还要对应一个 task,haproxy 最终用来做调度的是通过 task。

2. 相关初始化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值