溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

dubbo怎么快速入門

發布時間:2022-01-04 15:49:50 來源:億速云 閱讀:198 作者:iii 欄目:互聯網科技

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

一、dubbo基本原理
dubbo架構圖如下:

dubbo怎么快速入門

調用關系說明:

0.服務容器負責啟動,加載,運行服務提供者。

1.服務提供者在啟動時,向注冊中心注冊自己提供的服務。

2.服務消費者在啟動時,向注冊中心訂閱自己所需的服務。

3.注冊中心返回服務提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數據給消費者。

4.服務消費者,從提供者地址列表中,基于軟負載均衡算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。

5.服務消費者和提供者,在內存中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

二、入門demo簡介

該demo包含三個項目,分別是:

服務提供端項目:provider

服務消費端項目:consumer

共用服務接口項目:api

依賴關系如圖:

dubbo怎么快速入門

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);
}
項目結構如圖:

dubbo怎么快速入門

然后將項目打包(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項目結構如圖:
dubbo怎么快速入門

然后直接運行該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怎么快速入門

到此,相信大家對“dubbo怎么快速入門”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女