1.4 协议解析器与拦截器

作为网络中间件,我们需要针对网络数据包进行读取之外,还需要对数据包进行解析工作,基于redis协议做了解析之后,我们还需要在解析器的基础上做拦截器,针对不同的redis做不同的处理流程.

1.4.1 协议解析器设计

协议解析器,是一个单独的模块,它主要针对网络数据包进行redis协议的解析工作,虽然redis协议具有统一的数据格式,但是还需要对每种协议命令做兼容操作.

1.4.2 协议解析器构成成分

  1. redis协议解析器 : 主要用来解析redis协议 (decoder)
  2. redis协议编码器 : 主要用来组装redis协议 (encoder)

1.4.3 解析器 和 拦截器 的工作流程 配合

这两个重要组件的功能流程配合如下:

[PHP-FPM请求] —> [RedisTunel中间件] —> (读取数据包) —> (解析数据包协议) —> (对指定命令进行拦截操作) —-> (转发下游redis服务) —> [下游redis服务] —> (处理命令并响应) —> [RedisTunel中间件] —-> (响应请求) —-> [PHP-FPM]

文档更新时间: 2018-12-21 16:23   作者:李彪