在twemproxy的发送和接收流程剖析中,我们已经完全弄清楚twemproxy如何将客户端以及服务端发来的包切分成msg,获得一个独立的msg后twemproxy应该如何处理?这是本文这次需要重点介绍的内容。
twemproxy的主干流程
图1 twemproxy的主干流程
如图1所示,twemproxy主要通过3个队列进行模块间的数据交互:客户端连接conn的发送队列conn->omsg_q,服务端连接s_conn的输入队列s_conn->imsg_q,服务端连接s_conn的发送队列s_conn->omsg_q以及conn->omsg_q里的msg的对应回复peer。
客户层接收模块将所有需要回复的msg处理后分别写入到客户端conn连接的发送队列conn->omsg_q以及服务端连接s_conn的输入队列s_conn->imsg_q。
服务层发送模块从服务端连接s_c