本篇內容主要講解“dubbo怎么快速入門”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“dubbo怎么快速入門”吧!
一、dubbo基本原理
dubbo架構圖如下:

調用關系說明:
0.服務容器負責啟動,加載,運行服務提供者。
1.服務提供者在啟動時,向注冊中心注冊自己提供的服務。
2.服務消費者在啟動時,向注冊中心訂閱自己所需的服務。
3.注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。
4.服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。
5.服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。
該demo包含三個項目,分別是:
服務提供端項目:provider
服務消費端項目:consumer
共用服務接口項目:api
依賴關系如圖:

api項目是一個jar項目,將生成的jar打包到maven倉庫,作為provider和consumer項目的依賴導入。
三、dubbo-遠程調用(RPC)具體實現
1、zookeeper下載及配置
在啟動服務提供者項目之前要先啟動zookeeper,因為我們需要把服務提供方注冊到zookeeper中,然后才能被服務消費方發現并調用。
關于zookeeper這里不做詳細介紹了,簡單概括就是分布式服務治理框架,用于服務注冊與發現,實現遠程調用功能等。
zookeeper下載
http://zookeeper.apache.org/
解壓并修改配置
zookeeper下載完成后解壓到合適目錄,然后進入到zookeeper的conf目錄,找到zoo_sample.cfg文件將其重命名為zoo.cfg,然后打開該文件, 將其中的dataDir和dataLogDir修改如下:
dataDir=E:\\Soft\\zookeeper-3.4.6\\data
dataLogDir=E:\\Soft\\zookeeper-3.4.6\\log
修改為你本地硬盤的目錄
啟動zookeeper
進入到zookeeper的bin目錄下,雙擊zkServer.cmd,啟動zookeeper
2.dubbo接口服務api項目
新建maven項目api,注意將其pom.xml中的打包方式改為jar
然后在com.dubbo.api.service包下新建DemoService接口,如下:
public interface DemoService {
String sayHello(String name);
}
項目結構如圖:

然后將項目打包(install一下即可),在E:\temp\api\target\目錄下找到該jar,然后打包到本地maven倉庫,打開cmd命令窗口,輸入以下令如下:
mvn install:install-file -Dfile=E:\temp\api\target\api.jar -DgroupId=com.dubbo.api -DartifactId=api -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true -DcreateChecksum=true
注意:jar路徑該為你自己的路徑
3.dubbo服務提供者provider項目
新建maven項目provider,并在pom.xml中添加以下依賴:
<dependency>
<groupId>com.dubbo.api</groupId>
<artifactId>api</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
這里引入了上面的生成的api接口依賴、dubbo依賴、zookeeper客服端依賴以及啟動項目必需的依賴
然后在com.dubbo.provider.service.impl包下新建DemoServiceImp并實現DemoService接口,如下:
public class DemoServiceImpl implements DemoService{
@Override
public String sayHello(String name) {
return "Hello "> }
然后在resources下新建provider.xml文件,配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<!--定義了提供方應用信息,用于計算依賴關系;在 dubbo-admin 或 dubbo-monitor 會顯示這個名字,方便辨識-->
<dubbo:application name="demo-provider" owner="wly" organization="dubbox"/>
<!--使用 zookeeper 注冊中心暴露服務,注意要先開啟 zookeeper-->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!-- 用dubbo協議在20880端口暴露服務 -->
<dubbo:protocol name="dubbo" port="20880" />
<!--使用 dubbo 協議實現定義好的 api.PermissionService 接口-->
<dubbo:service interface="com.dubbo.api.service.DemoService" ref="demoService" protocol="dubbo" />
<!--具體實現該接口的 bean-->
<bean id="demoService" class="com.dubbo.provider.service.impl.DemoServiceImpl"/>
</beans>
//注意此處需要在eclipse中引入約束,約束文件在dubbo.2.5.3.jar 解壓后的dubbo.xsd文件
然后在java下直接新建Provider用于啟動項目:
public class Provider {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("provider.xml");
context.start();
System.out.println("dubbo服務提供端已啟動....");
System.in.read(); // 按任意鍵退出
}
}
provider項目結構如圖:

然后直接運行該main函數-dubbo服務提供者已啟動!
4.dubbo服務消費者consumer項目
新建maven項目consumer,并在pom.xml中添加以下依賴:
<dependency>
<groupId>com.dubbo.api</groupId>
<artifactId>api</artifactId>
<version>1.0.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/dubbo -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
</dependency>
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.0.5.RELEASE</version>
</dependency>
和provider項目添加的依賴一樣。
然后在resources下新建comsumer.xml,配置服務消費者,如下:
<?xml version="1.0"> <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:application name="demo-consumer" owner="wly" organization="dubbox"/>
<!--向 zookeeper 訂閱 provider 的地址,由 zookeeper 定時推送-->
<dubbo:registry address="zookeeper://localhost:2181"/>
<!--使用 dubbo 協議調用定義好的 api.PermissionService 接口-->
<dubbo:reference id="demoService" interface="com.dubbo.api.service.DemoService"/>
</beans>
然后在java下新建Consumer.class用于啟動該項目,如下:
public class Consumer {
public static void main(String[] args) throws IOException {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( "consumer.xml" );
context.start();
System.out.println("dubbo服務消費端已啟動...");
DemoService demoService = (DemoService)context.getBean( "demoService" );// 獲取遠程服務代理
String hello = demoService.sayHello( "world" );//執行遠程方法
System.out.println(hello);//顯示調用結果
System.in.read(); // 按任意鍵退出
}
}
啟動該項目,顯示調用結果,如圖:
到這里就已經完成了dubbo的遠程調用。下面介紹下dubbo-admin管理控制臺
四、dubbo-admin管理控制臺
通過dubbo-admin可以更好的管理dubbo服務。
首先下載dubbo-admin的war包,下載地址:
下載完成后,將dubbo-admin-2.6.0.war復制到tomcat的webapps目錄下。然后啟動tomcat,訪問
http://localhost:8080/dubbo-admin-2.6.0/
也可以將dubbo-admin-2.6.0重命名為dubbo-admin訪問的時候直接訪問http://localhost:8080/dubbo-admin即可
用戶名和密碼都是root
登錄后就可以通過網頁進行管理dubbo服務了,如圖:

到此,相信大家對“dubbo怎么快速入門”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。