eRPC: 数据中心网络的高效RPC库

eRPC: 数据中心网络的高效RPC库

eRPC Efficient RPCs for datacenter networks eRPC 项目地址: https://gitcode.com/gh_mirrors/erp/eRPC

1. 项目介绍

eRPC 是一个为数据中心网络设计的快速、通用的 RPC(远程过程调用)库。它支持多种网络类型,包括 Ethernet、InfiniBand 和 RoCE。eRPC 以低延迟和高性能著称,能够满足现代数据中心网络的需求。其主要特点如下:

  • 多网络支持:支持 Ethernet、InfiniBand 和 RoCE 网络。
  • 低延迟:使用 UDP over Ethernet 时,往返 RPC 延迟可低至 2.3 微秒。
  • 高性能:单个 CPU 核心上,32 字节 RPC 的性能可达每秒约 10M RPCs;单个网卡上可达 75 Gbps 的带宽。
  • 可扩展性:单个服务器可支持多达 20000 个 RPC 会话。
  • 端到端的拥塞控制:能够容忍 100 路汇聚。
  • 支持嵌套 RPC 和长时间运行的后台 RPC。
  • 提供了 Raft 的端口,作为示例。

2. 项目快速启动

以下是快速启动 eRPC 的步骤:

首先,克隆项目仓库:

git clone https://github.com/erpc-io/eRPC.git
cd eRPC

然后,使用 CMake 编译项目,运行测试:

cmake . -DPERF=OFF -DTRANSPORT=dpdk
make -j
sudo ctest

如果要编译并运行 hello_world 应用程序,请按照以下步骤操作:

  1. 进入 hello_world 目录。

  2. 编辑 common.h 文件,设置服务器和客户端主机名。

  3. 根据所使用的传输方式,编译 hello_world

    • 使用 DPDK:make dpdk
    • 使用 InfiniBand:make infiniband
  4. 在服务器主机上运行 ./server,在客户端主机上运行 ./client

3. 应用案例和最佳实践

  • 案例:使用 eRPC 实现分布式系统中的远程调用,如分布式数据库、存储系统和微服务架构。
  • 最佳实践:在数据中心网络中部署 eRPC 时,建议使用至少 10 GbE 的网卡以提高性能。确保每个 NUMA 节点上有至少 1024 个大页,并取消限制 SHM 限制。

4. 典型生态项目

eRPC 可以与多个开源项目配合使用,以下是一些典型的生态项目:

  • DPDK:数据平面开发工具包,用于实现高效的数据包处理。
  • rdma-core:用于 RDMA(远程直接内存访问)的底层库。
  • NumaDP:一个基于 DPDK 的网络栈,支持多种网络协议。

以上就是关于 eRPC 的介绍、快速启动指南、应用案例和生态项目。希望这些信息对您有所帮助。

eRPC Efficient RPCs for datacenter networks eRPC 项目地址: https://gitcode.com/gh_mirrors/erp/eRPC

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余媛奕Lowell

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值