1. 源码拉取
从官方仓库 https://github.com/alibaba/dubbo Fork
出属于自己的仓库。
接下来就从idea clone出自己的项目 ,下载dubbo所需的依赖包 ,这个过程需要点时间
2.启动本地zookeeper服务
尽管dubbo 支持的注册中心有很多, 但生产环境基本都是用zookeeper 作为注册中心。 由于在本地调试,直接在windows环境下启动zookeeper就好
3.修改默认配置,改为zookeeper 作为配置中心
修改demo模块下的的Provider 和Consumer dubbo-demo-provider.xml ,dubbo-demo-provider.xml 启动 Provider 。
##<!--使用本地zookeeper 作为配置中心-->
<dubbo:registry address="zookeeper://localhost:2181"/>
4. 运行consumer 模块下的Cosumer 类主函数
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"META-INF/spring/dubbo-demo-consumer.xml"});
context.start();
DemoService demoService = (DemoService) context.getBean("demoService"); // get remote service proxy
while (true) {
try {
Thread.sleep(1000);
String hello = demoService.sayHello("world"); // call remote method
System.out.println(hello); // get result
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
}
通过一个死循环不断调用服务提供者
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
Hello world, response from provider: 192.168.31.119:20880
服务端的控制台则打印
[14:51:08] Hello world, request from consumer: /192.168.31.119:52476
[14:51:09] Hello world, request from consumer: /192.168.31.119:52476
[14:51:10] Hello world, request from consumer: /192.168.31.119:52476
[14:51:11] Hello world, request from consumer: /192.168.31.119:52476
[14:51:12] Hello world, request from consumer: /192.168.31.119:52476
[14:51:13] Hello world, request from consumer: /192.168.31.119:52476
[14:51:14] Hello world, request from consumer: /192.168.31.119:52476
[14:51:15] Hello world, request from consumer: /192.168.31.119:52476
5.dubbo 架构
至此 , 我们启动的一个用zookeeper作为配置中心最简单的dubbo 的demo ,
Registry :注册中心,注册中心,用于服务的注册与发现。
Provider : 服务提供者,通过向 Registry 注册服务 。
Consumer : 服务消费者,通过从 Registry 发现服务。
我们这是用zookeeper作为注册中心, Provider 向zookeeper注册服务 , Cosumer 向注册中心订阅服务,将Provider的地址和端口号下载保存到本地 , 这样Consumer 将直接发起对Provider 的调用。如果Provider 有变动,注册中心将会通知到Consumer及时进行变动。