项目简介
本项目实现了名为mprpc的分布式RPC通信框架,它基于Muduo网络库和Protobuf构建。该框架运用事件驱动和事件回调机制管理TCP连接,借助线程池提升并发处理能力,主要用于解决分布式系统中模块间的通信问题,支持远程过程调用(RPC),还集成了ZooKeeper作为服务注册中心,保障服务的高可用性和一致性。
项目的主要特性和功能
- 高性能网络通信:基于Muduo网络库,采用epoll和线程池技术,具备高并发处理能力。
- 数据序列化与反序列化:使用Protobuf协议,能高效地进行数据序列化和反序列化。
- 服务注册与发现:集成ZooKeeper,可实现服务的自动注册与发现。
- 异步日志系统:支持多线程日志记录,便于追溯系统运行状态。
- 配置文件管理:支持读取配置文件,可灵活配置RPC节点和ZooKeeper节点信息。
- CMake构建系统:集成CMake,简化项目的编译和构建过程。
安装使用步骤
环境准备
- 操作系统:Ubuntu 20.04
- 编译器:g++ 5.4.0
- 工具:CMake、VScode
- 依赖库:Protobuf 3.0、Muduo、ZooKeeper
安装依赖
- 安装Protobuf:
shell sudo apt-get install protobuf-compiler
- 安装Muduo:
shell cd muduo ./build.sh sudo ./install.sh
- 安装ZooKeeper:
shell sudo apt-get install zookeeper
项目构建
- 复制项目:
shell cd mprpc
- 生成构建文件:
shell mkdir build cd build cmake ..
- 编译项目:
shell make
运行项目
- 启动ZooKeeper:
shell sudo zkServer.sh start
- 配置文件:
编辑配置文件
conf/mprpc.conf
,设置RPC节点和ZooKeeper节点的IP和端口。 - 启动RPC服务:
shell ./bin/mprpc_server
- 客户端调用:
参考
example/
目录下的示例代码,编写客户端代码调用RPC服务。
测试
项目包含测试代码,位于test/
目录下。可以通过以下命令运行测试:
shell
./test/mprpc_test
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】