Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 1.66 KB

README.md

File metadata and controls

42 lines (34 loc) · 1.66 KB

Gd_rpc

采用主从 Reactor 架构和 one-loop-per-thread 模型,通过非阻塞 IO , Epoll , ThreadPool 提高并发性能,使用异步回调机制对事件进行分发和处理。实现了支持按日期和大小的日志滚动、支持多种日志级别的多缓冲区异步日志。基于 Protobuf 构建自定义协议。通过时间轮实现高效的心跳、超时与重试机制。利用 ZooKeeper 进行服务注册和服务发现,在客户端维护多个服务后端的连接并实现了平滑的加权负载均衡。

安装zookeeper c api client

遇到问题 有用的信息

sudo apt install libcppunit-dev
cd zookeeper-jute
mvn compile
cd ../zookeeper-client/zookeeper-client-c
autoconf -if
./configure
make
make install

构建

protoc gdrpc/protocol/rpcHeader.proto --cpp_out=.
protoc example/rpc/echo.proto --cpp_out=.
mkdir build
cd build
cmake ..
make all 或 cmake --build . --target all  
// 清理
make clean 或 cmake --build . --target clean  

相关笔记

基础网络库 rpc设计与grpc 关于回调与协程

基于编译时反射的通用序列化引擎(本来想抽象可以使用不同的序列化协议,但得继承 PB 的message 不好实现,遂放弃)

TODO

  • 服务端限流:计数器、滑动窗口、漏桶算法、令牌桶算法...
  • 认证鉴权:tls、oauth2
  • 拦截器