快速使用指南,便于使用者快速了解Dorado的应用,更多详细内容可以阅读Dorado使用说明手册
git clone https://github.com/Meituan-Dianping/octo-rpc.git octo-rpc
以下两种方式选择一种快速运行 dorado
注意:Dorado和Whale(C++框架)在一个仓库,选择dorado目录导入即可
在ThriftConsumer控制台将看到服务端的返回
切换到dorado目录
cd octo-rpc/dorado
本地install
mvn clean install -Dmaven.test.skip=true
注意:dorado-registry-mns、dorado-trace-cat模块因需要mns和cat的依赖,若构建失败可忽略
-
默认dorado包未包含需以上模块,若需要使用见源码编译说明
-
dorado-registry-mns是OCTO-NS注册中心的集成模块,若使用请到OCTO-NS获取依赖mns-invoker依赖(需要有OCTO-NS注册服务)
-
dorado-trace-cat是Cat应用监控的集成,若使用请到Cat获取依赖(需要有Cat服务)
pom.xml添加dorado依赖
<dependency>
<groupId>com.meituan.octo</groupId>
<artifactId>dorado</artifactId>
<version>1.0.0</version>
</dependency>
将接口HelloService.java 和 实现类HelloServiceImpl.java 拷贝到你的工程中,注意包路径。 说明:调用端有接口类就行,服务端需要接口类和实现类。
下面的代码通过mock的方式发布实现HelloService接口的服务,注意需要对服务端口号、服务于appkey、服务注册地址、服务接口以及服务实现类进行配置,最后通过init方法发布服务
import com.meituan.dorado.config.service.ProviderConfig;
import com.meituan.dorado.config.service.ServiceConfig;
import com.meituan.dorado.demo.thrift.api.HelloService;
import com.meituan.dorado.demo.thrift.api.HelloServiceImpl;
public class QuickStartServer {
public static void main(String[] args) {
ServiceConfig<HelloService.Iface> serviceConfig = new ServiceConfig<>();
serviceConfig.setServiceInterface(HelloService.class); // 服务接口
serviceConfig.setServiceImpl(new HelloServiceImpl()); // 服务实现类
ProviderConfig providerConfig = new ProviderConfig();
providerConfig.setAppkey("com.meituan.octo.dorado.server"); // 服务appkey
providerConfig.setServiceConfig(serviceConfig); // 服务接口类
providerConfig.setRegistry("mock"); // 服务注册, mock伪注册中心
providerConfig.setPort(9001); // 服务端口号
providerConfig.init(); // 启动服务
}
}
下面的代码通过直连方式访问mock发布的服务
import com.meituan.dorado.config.service.ReferenceConfig;
import com.meituan.dorado.demo.thrift.api.HelloService;
import org.apache.thrift.TException;
import org.junit.Assert;
public class QuickStartClient {
public static void main(String[] args) {
ReferenceConfig<HelloService.Iface> referenceConfig = new ReferenceConfig<>();
referenceConfig.setAppkey("com.meituan.octo.dorado.client"); //调用端appkey
referenceConfig.setRemoteAppkey("com.meituan.octo.dorado.server"); //服务端appkey
referenceConfig.setServiceInterface(HelloService.class); //服务接口
referenceConfig.setRegistry("mock"); //服务发现, mock伪注册中心
referenceConfig.setDirectConnAddress("localhost:9001"); //直连访问
HelloService.Iface client = referenceConfig.get();
try {
String result = client.sayHello("OCTO");
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}