yunba / yberpc

A Erlang RPC proxy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

yberpc

Erlang RPC 库。

API

start_server(Url, Handler)

启动 RPC 服务器。Url 为监听地址,Handler 为处理收到数据的进程 PID,返回值为一个 PID

start_client(Url, Handler)

启动 RPC 客户端。Url 为连接地址,Handler 为处理收到数据的进程 PID,返回值为一个 PID

rpc_req(Pid, ReqData)

请求 RPC 调用。PIDstart_client 返回的 PIDReqData 为请求数据。

rpc_rep(Pid, RepData)

响应 RPC 调用。PIDstart_server 返回的 PIDRepData 为响应数据。

stop_server(Pid)

停止 RPC 服务器。PIDstart_server 返回的 PID

stop_client(Pid)

停止 RPC 客户端。PIDstart_client 返回的 PID

Benchmark

测试环境:

  • OS: ubuntu 16.04 64-bit
  • CPU: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz * 4
  • Memory: 12G
  • RPC 服务器和客户端都在此机器上

不同数据大小的 RPC 请求次数与耗时对应如下(ms 表示毫秒):

data: 1024 bytes:

count: 50000, time: 1753.242 ms
count: 100000, time: 3554.872 ms

data: 4096 bytes:

count: 50000, time: 1804.299 ms
count: 100000, time: 3692.052 ms

data: 16384 bytes:

count: 50000, time: 2003.51 ms
count: 100000, time: 3933.991 ms

About

A Erlang RPC proxy

License:MIT License


Languages

Language:Erlang 70.9%Language:Shell 20.7%Language:Batchfile 7.4%Language:Makefile 1.0%