Dubbo使用手册
Dubbo入门引导
Dubbo使用手册
Dubbo是什么
Dubbo是一款优秀的Java RPC框架,它的服务自动注册和发现功能,非常契合分布式服务、微服务架构。
如果你没有使用过RPC框架,我建议你可以先停下来,去了解一下Hessian。
Dubbo初体验
Dubbo初体验,我们先避开配置,完全通过代码来体验一把Dubbo的用法。
又到了贴代码凑字数的环节了。
Maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.9</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.33.Final</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.11</version>
<exclusions>
<exclusion>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
</exclusion>
</exclusions>
</dependency>
公共接口模块
我懒得区分,公共模块、服务端应用和客户端应用了,把代码都放在一起不影响体验。
接口
package com.vzoom.dubbo.demo.api;
public interface GreetingService {
String sayHello(String name);
}
实现类
package com.vzoom.dubbo.demo.api.impl;
import com.vzoom.dubbo.demo.api.GreetingService;
public class GreetingServiceImpl implements GreetingService {
public String sayHello(String name) {
return "Hello " + name;
}
}
服务端
服务端做的几件事情:
1. 设置服务端应用名称;
2. 设置注册地址;
3. 设置要暴漏的接口;
4. 指定接口的实现类;
5. 发布服务;
package com.vzoom.dubbo.demo.provider;
import java.io.IOException;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.config.ServiceConfig;
import com.vzoom.dubbo.demo.api.GreetingService;
import com.vzoom.dubbo.demo.api.impl.GreetingServiceImpl;
public class Application {
public static void main(String[] args) throws IOException {
ServiceConfig<GreetingService> serviceConfig = new ServiceConfig<GreetingService>();
serviceConfig.setApplication(new ApplicationConfig("dubbo-demo-provider-190212"));
serviceConfig.setRegistry(new RegistryConfig("zookeeper://192.168.81.86:2181"));
serviceConfig.setInterface(GreetingService.class);
serviceConfig.setRef(new GreetingServiceImpl());
serviceConfig.export();
System.in.read();
}
}
客户端
客户端做的事情:
1. 设置应用名称
2. 设置订阅地址;
3. 设置要调用的接口;
4. 获得接口实例;
下面这段代码还是很实用的,可以用来调试dubbo接口,非常方便;
package com.vzoom.dubbo.demo.consumer;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.vzoom.dubbo.demo.api.GreetingService;
public class Application {
public static void main(String[] args) {
ReferenceConfig<GreetingService> referenceConfig = new ReferenceConfig<GreetingService>();
referenceConfig.setApplication(new ApplicationConfig("dubbo-demo-consumer-190212"));
referenceConfig.setRegistry(new RegistryConfig("zookeeper://192.168.81.86:2181"));
referenceConfig.setInterface(GreetingService.class);
GreetingService greetingService = referenceConfig.get();
System.out.println(greetingService.sayHello("world"));
}
}
工程结构
总结
Dubbo的使用还是很容易上手的。
Dubbo的xml配置就不介绍了,因为Dubbo使用手册里有提到。
后续将提供两种Dubbo的泛化调用方式,敬请期待。
Dubbo使用手册
https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.html