数据控制层实现

接着上一篇的设计,初步构想的实现如下:

综述:

 数据控制层,主要是负责app(应用层)跟数据层的交互。 

目的:

减少整个服务器组的耦合度,以是应用层的逻辑与数据分开,最大限度的提高应用层服务的吞吐量。

设计原则:

最大限度的实现异步,并发处理。屏蔽应用层与数据层的交互细节。

程序分三层:网络层,逻辑层,数据交互层

网络层:

采用epoll做客户端请求的网络处理。这一层主要负责读取客户端请求的数据包,后放入消息队列(msg queue)中,和读取逻辑层输出的msgque中的数据,返回客户端,这一层只做网络IO的处理,不参与任何逻辑的计算。网络层是一条线程。

逻辑层:

逻辑层主要负责读取由网络层输出的消息队列,做相应的逻辑处理,比如:采用哪种hash方法,将这个请求应该发往哪个redis或者mysql中。以及做相应的容灾处理。逻辑层启用一条线程。

数据读写层:

数据读写层,主要负责读取逻辑层输出的消息队列,做redis或者mysql的读写功能。

这。并将读取的结果输出到逻辑层的消息队列。数据读写层线程分布:

一条线程通过对每个redis启动一个非阻塞的socket,由select来维护这些socket.对于mysql的读写,是每个db分一个线程(这个到时间根据具体的业务来定吧)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值