目录
- 一、环境搭建和基础库开发
-
- 研发环境搭建、依赖库安装
- 日志和配置模块等工具类开发
- 二、Eventloop模块
-
- EventLoop 核心开发
- 定时器开发
- IO线程封装
- 三、TCP模块
-
- TcpBuffer
- TcpClient
- TcpServer
- TcpConnection
- 四、RPC协议封装
-
- 基于protobuf的自定义RPC协议编码
- 基于protobuf的自定义RPC协议解码
- 五、RPC模块封装
-
- RpcDispatcher
- RpcChannel 和RpcAsyncChannel
- 六、项目完善
-
- 日志的完善和优化
- 代码生成工具脚手架封装
- 项目的构建和测试
一、环境搭建和基础库开发
研发环境搭建、依赖库安装
日志和配置模块等工具类开发
二、Eventloop模块
EventLoop 核心开发
Reactor 是一种事件处理模型,又叫做反应堆模式。
核心是一个 Loop 循环,在循环里面不断调用 epoll_wait 监听套接字IO事件,一旦发生 IO 事件,epoll_wait 返回,线程转而去处理这些 IO 事件(一般是执行绑定在其上的回调函数)。处理完事件之后,又重新陷入到 epoll_wait 中,不断循环这个过程。
mainReactor 由主线程运行,他作用如下:通过epoll监听listenfd的可读事件,当可读事件发生后,调用accept函数获取clientfd,然后随机取出一个subReactor,将cliednfd的读写事件注册到这个subReactor的epoll上即可。mainReactor只负责建立连接事件,不进行业务处理,也不关心已连接套接字的IO事件。
subReactor通常有多个,每个subReactor由一个线程来运行。其注册clientfd的读写事件,当发生IO事件后,需要进行业务处理。
定时器开发
IO线程封装
三、TCP模块
TcpBuffer
TcpClient
TcpServer
TcpConnection
四、RPC协议封装
基于protobuf的自定义RPC协议编码
基于protobuf的自定义RPC协议解码
五、RPC模块封装
RpcController、RcpClosure
RpcDispatcher
RpcChannel 和RpcAsyncChannel
六、项目完善
日志的完善和优化
把logger的buffer中的数据写入到异步的队列缓存中,
利用一个线程,采用条件变量来实现生产者消费者模型来处理队列中的缓存,实现:读取队列中的数据并将数据写入日志。
代码生成工具脚手架封装
项目的构建和测试
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: JPA中的ManyToOne和OneToMany
概念说明 一个用户可以有多个手机,一个手机只能被一个用户使用。这个就是多对一的关系,或者称之为一对多。用户是一,手机是多。外键设置在多这一方(如果不懂,可以百度一下)。具体设置的表如下: EMPLOYEE (table) EMP_ID FIRSTNAME LA…