Apache Dubbo Erlang Implementation.
The following features are supported.
- Zookeeper registry center (√)
- Dubbo Protocol (√)
- Serialize
- Hessian serialize (√)
- Json serialize (√)
- Erlang project as consumer or provider (√)
- Sync and Async invoker (√)
- Random loadbalance (√)
- Connection pools (√)
- Support protocol,cluster,loadbalance,registry and filter extension point.
Add dubblerl to rebar.config with your project
{deps, [
{dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}}
]}.
Use erlanalysis tool transfer java interface to erlang lib. And add the lib to you project app dir.
configure dubbo reference.
in sys.config add dubboerl config. For example:
{dubboerl,[
{application,<<"testdubboerl">>},
{protocol, {dubbo, [{port, 20882}]}},
{registry,zookeeper},
{zookeeper_list,[{"127.0.0.1",2181}]},
{serialization,hessian},
{consumer,[
{<<"org.apache.dubbo.erlang.sample.service.facade.UserOperator">>,[]}
]},
{provider,[
{user_impl,userOperator,<<"org.apache.dubbo.erlang.sample.service.facade.UserOperator">>,[]}
]}
]}
Init dubboerl application context when your project start.
dubboerl:init().
Call the interface method.
Request = #userInfoRequest{requestId = 123, username = "testname"},
userOperator:queryUserInfo(Request,#{sync=> true}).
Reference the demo project dubboerl_demo
Reference Docs