小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SpringBoot集成Dubbo...

 sightboy 2023-01-31 發(fā)布于北京

#博學(xué)谷IT學(xué)習(xí)技術(shù)支持#

參考:
Linux環(huán)境安裝docker
docker安裝zookeeper

這次我們來實(shí)現(xiàn)一下springboot集成dubbo,并介紹一些dubbo的具體功能。然后包含一些zookeeker中的信息

1. 構(gòu)建SpringBoot環(huán)境

在這里插入圖片描述

1.1 創(chuàng)建一個(gè)dubbo-parent項(xiàng)目

  • dubbo-consumer:是服務(wù)消費(fèi)方
  • dubbo-provider:是服務(wù)提供方
  • dubbo-interface:存放接口,因?yàn)閐ubbo是根據(jù)接口進(jìn)行服務(wù)注冊(cè)發(fā)現(xiàn)的,因此我們要把接口單獨(dú)拿出來,provider提供方實(shí)現(xiàn)該接口并注冊(cè)服務(wù), consumer要根據(jù)接口進(jìn)行注入
  • duubo-dependency:方便依賴管理

1.2 引入依賴坐標(biāo)

1.2.1 dubbo-parent

<parent>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

在dubbo-parent中引入parent為spring-boot-starter-parent
這里我們使用的版本為2.1.5。

具體的版本可以在maven倉(cāng)庫(kù)查看,https:///artifact/org.springframework.boot/spring-boot-starter-parent

1.2.2 dubbo-dependency

 <parent>
        <artifactId>dubbo-parent</artifactId>
        <groupId>org.example</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>dubbo-dependency</artifactId>
    <properties>
        <dubbo.version>2.6.5</dubbo.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>${dubbo.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
    </dependencies>

有幾點(diǎn)需要注意

1、springboot集成dubbo,需要引入dubbo-spring-boot-starter依賴,版本為0.2.1.RELEASE,可以在倉(cāng)庫(kù)中參看具體的依賴信息 https:///artifact/com.alibaba.boot/dubbo-spring-boot-starter
2、在引入dubbo-spring-boot-starter依賴后,還需要引入dubbo依賴。至于dubbo依賴的版本具體是多少,我們可以點(diǎn)進(jìn)dubbo-spring-boot-starter查看其所依賴的dubbo-spring-boot-parent.pom文件,里面有關(guān)于dubbo的版本信息,我們可以直接使用
在這里插入圖片描述
3、我們還需要引入log4j和self-4j的依賴
4、因?yàn)槲覀兪且砸粋€(gè)web服務(wù)進(jìn)行啟動(dòng),因此我們需要引入spring-boot-starter-web依賴

Dubbo Spring BootDubboSpring Boot
0.2.1.RELEASE2.6.5+2.x
0.1.2.RELEASE2.6.5+1.x

1.2.3 dubbo-consumer

 <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dubbo-dependency</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

1.2.4 dubbo-provider

 <dependencies>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dubbo-dependency</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.example</groupId>
            <artifactId>dubbo-interface</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

1.2.5 dubbo-interface
內(nèi)部暫時(shí)不需要其他依賴

2. Linux 環(huán)境配置

使用dubbo框架時(shí),需要使用zookeeper來充當(dāng)注冊(cè)中心,我們來搭建一下linux的zookeeper環(huán)境。
為了方便,我們可以使用docker容器來搭建zookeeper

2.1 安裝docker

https://docs./engine/install/ 我們可以根據(jù)關(guān)于的手冊(cè)進(jìn)行安裝,這里我們使用CentOS,后續(xù)根據(jù)官方文檔進(jìn)行安裝即可。
在這里插入圖片描述如果感覺官網(wǎng)看起來比較麻煩,可以根據(jù)該博客來進(jìn)行安裝
https://blog.csdn.net/MX__LL/article/details/125797414?spm=1001.2014.3001.5501

2.1 安裝zookeeper

https://www.cnblogs.com/kendoziyu/p/14960377.html
在這里插入圖片描述
安裝完成后,docker ps 查看zookeeper狀態(tài)

3. yml配置文件

3.1 provider提供者yml配置

server:
  port: 8000 #web服務(wù)端口
spring:
  application:
    name: dubbo-provider # 服務(wù)名稱
dubbo:
  application:
    name: dubbo-provider #dubbo提供者名稱
  registry:
    address: zookeeper://xxxxxx:2181 #注冊(cè)地址 使用zookeeper
  scan:
    base-packages: com.dtchao.dubbo #配置掃描路徑,這里的掃描路徑,要根據(jù)自己實(shí)際的package來寫
  protocol:
    name: dubbo #使用dubbo協(xié)議
    port: 20880 #協(xié)議端口為20880

我們要在啟動(dòng)類加上@EnableDubbo注解

@SpringBootApplication
@EnableDubbo
public class DubboProviderApp {
    public static void main(String[] args) {
        SpringApplication.run(DubboProviderApp.class, args);
    }
}

3.2 consumer提供者yml配置

server:
  port: 9000
spring:
  application:
    name: dubbo-consumer
dubbo:
  registry:
    address: zookeeper://xxxxxxxxx:2181
  protocol:
    name: dubbo
    port: 20880
  scan:
    base-packages: com.dtchao.dubbo #如果消費(fèi)者也需要提供服務(wù)的話,需要加上掃描包路徑,這里的掃描路徑,要根據(jù)自己實(shí)際的package來寫
  application:
    name: dubbo-consumer

消費(fèi)者如果不提供服務(wù),也就是不把接口注冊(cè)到注冊(cè)中心時(shí),可以不添加@EnableDubbo注解

4. 服務(wù)測(cè)試

4.1 新增接口

在dubbo-interface模塊中新增一個(gè)接口

package com.dtchao.dubbo.service;

public interface GoodsService {
    public String getData(String data);
    public String getGoods();
}

4.2 接口實(shí)現(xiàn)

在dubbo-provider中實(shí)現(xiàn)dubbo-interface中創(chuàng)建的GoodsService

package com.dtchao.dubbo.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.dtchao.dubbo.service.GoodsService;

@Service // 這里的service注解不能使用spring的注解,要使用dubbo中的注解
public class GoodsServiceImpl implements GoodsService {
    @Override
    public String getData(String data) {
        System.out.println("getData 方法被訪問了!data: " + data);
        return null;
    }

    @Override
    public String getGoods() {
        System.out.println("getGoods 方法被訪問了!");
        return null;
    }
}

4.2 服務(wù)引用

在dubbo-consumer中創(chuàng)建一個(gè)controller,并引用GoodsService。

package com.dtchao.dubbo.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.dtchao.dubbo.service.GoodsService;
import org.springframework.web.bind.annotation.RequestMapping;


@RestController
@RequestMapping("/goods")
public class GoodsController {

    @Reference //使用dubbo中的@Reference注解
    private GoodsService goodsService;

    @RequestMapping("/get")
    public Object getGoods() {
        return goodsService.getGoods();
   	}
}

4.3 服務(wù)測(cè)試

  1. 我們先在服務(wù)器查看一下zookeeper中的信息

1、執(zhí)行docker ps查看zookeeper容器狀態(tài),復(fù)制zookeeper對(duì)應(yīng)的 CONTAINER ID
在這里插入圖片描述
2、執(zhí)行docker exec -it ${CONTAINER ID} /bin/bash
在這里插入圖片描述
3、進(jìn)入后ls查看目錄,執(zhí)行cd bin 進(jìn)入bin目錄
4、執(zhí)行./zkCli.sh腳本,連接zookeeper客戶端
在這里插入圖片描述
5、執(zhí)行l(wèi)s / 查看目錄 我們可以看到,現(xiàn)在只有一個(gè)zookeeper
在這里插入圖片描述

  1. 啟動(dòng)dubbo-provider和dubbo-consumer
  2. 啟動(dòng)后查看zookeeper內(nèi)容

1、服務(wù)啟動(dòng)后,再執(zhí)行ls /查看內(nèi)容可以看到多了一個(gè)dubbo
在這里插入圖片描述
2、執(zhí)行ls /dubbo 查看,可以看到我們注冊(cè)的接口的路徑
在這里插入圖片描述
3、繼續(xù)查看,可以看還存在consumer和provider,查看consumer和provider,可以看到具體的注冊(cè)中心,到這里說明我們已經(jīng)注冊(cè)完成了
在這里插入圖片描述

  1. 瀏覽器訪問測(cè)試

1、dubbo-consumer使用的端口為9000,在瀏覽器訪問一下
在這里插入圖片描述
在這里插入圖片描述
可以看到訪問已經(jīng)成功了,并且dubbo-provider的控制臺(tái)也有輸出信息;

至此,springboot集成dubbo就已經(jīng)完成了,關(guān)于dubbo中的一些其實(shí)使用,將在下一章介紹

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多