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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章