Documentation

Quick Start

We recommend using java to define the Dubbo interface. And use erlanalysis tool parse java interface transfer to erlang lib.

Import Dependency Lib

Using Rebar Build Tool

Add dubblerl to rebar.config with your project

{deps, [
    {dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}}
]}.

User erlang.mk Build Tool

Waiting for improvement

Import interface lib

Suppose the interface lib you exported is called dubbo_service.

  • If you didn't upload your lib to your git repository, It is recommended that you copy the dubbo_service lib into the project's apps directory.
  • If it is upload to your git repository, you can import like this:
{deps, [
    {dubboerl, {git, "https://github.com/apache/dubbo-erlang.git", {branch, "master"}}},
    {dubbo_service,{git,"${INTERFACE_LIB_URL}",{branch,"master"}}} %% replace ${INTERFACE_LIB_URL} with your lib git repos url
]}.

Consumer Configuration

Please reference Reference Config

Init dubbolib in your project

It is need you

dubboerl:init().

How to invoke?

Sync Call

Request = #userInfoRequest{requestId = 123, username = "testname"},
{ok,RequestRef,Response,RpcContent}  = userOperator:queryUserInfo(Request,#{sync=> true}).

If it occur error, is reponse {error,Reason}.

Async Call

Default is Async call.

Request = #userInfoRequest{requestId = 123, username = "testname"},
{ok,RequestRef} = userOperator:queryUserInfo(Request).

%% you can receive the message after.
{msg_back,RequestRef,Response,RpcContent}.

Sample

Reference the demo project dubboerl_demo