欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

SpringCloudAlibaba下額外支持的RPC方案Dubbo是什么

Spring Cloud Alibaba下額外支持的RPC方案Dubbo是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

在瀘縣等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設 網(wǎng)站設計制作按需定制網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,網(wǎng)絡營銷推廣,外貿(mào)網(wǎng)站建設,瀘縣網(wǎng)站建設費用合理。

很早以前,在剛開始搞Spring Cloud基礎教程的時候,寫過這樣一篇文章:《微服務架構的基礎框架選擇:Spring Cloud還是Dubbo?》,可能不少讀者也都看過。之后也就一直有關于這兩個框架怎么選的問題出來,其實文中我有明確的提過,Spring Cloud與Dubbo的比較本身是不公平的,主要前者是一套較為完整的架構方案,而Dubbo只是服務治理與RPC實現(xiàn)方案。

由于Dubbo在國內(nèi)有著非常大的用戶群體,但是其周邊設施與組件相對來說并不那么完善。很多開發(fā)者用戶又很希望享受Spring Cloud的生態(tài),因此也會有一些Spring Cloud與Dubbo一起使用的案例與方法出現(xiàn),但是一直以來大部分Spring Cloud整合Dubbo的使用方案都比較別扭。這主要是由于Dubbod的注冊中心采用了ZooKeeper,而開始時Spring Cloud體系中的注冊中心并不支持ZooKeeper,所以很多方案是存在兩個不同注冊中心的,之后即使Spring Cloud支持了ZooKeeper,但是由于服務信息的粒度與存儲也不一致。所以,長期以來,在服務治理層面上,這兩者一直都一套完美的融合方案。

直到Spring Cloud Alibaba的出現(xiàn),才得以解決這樣的問題。在之前的教程中,我們已經(jīng)介紹過使用Spring Cloud Alibaba中的Nacos來作為服務注冊中心,并且在此之下可以如傳統(tǒng)的Spring Cloud應用一樣地使用Ribbon或Feign來實現(xiàn)服務消費。我們就來繼續(xù)說說Spring Cloud Alibaba下額外支持的RPC方案:Dubbo。

入門案例

我們先通過一個簡單的例子,來直觀地感受Nacos服務注冊中心之下,利用Dubbo來實現(xiàn)服務提供方與服務消費方。這里省略Nacos的安裝與使用,如果對Nacos還不了解,可以查看本系列的使用Nacos實現(xiàn)服務注冊與發(fā)現(xiàn),下面就直接進入Dubbo的使用步驟。

構建服務接口

創(chuàng)建一個簡單的Java項目,并在下面定義一個抽象接口,比如:

public interface HelloService {

    String hello(String name);

}

構建服務接口提供方

第一步:創(chuàng)建一個Spring Boot項目,在pom.xml中引入第一步中構建的API包以及Spring Cloud Alibaba對Nacos和Dubbo的依賴,比如:

    <dependencies>
        <!-- 第一步中構建的API包 -->
        <dependency>
            <groupid>com.didispace</groupid>
            <artifactid>alibaba-dubbo-api</artifactid>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-actuator</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>        
            <!--<groupId>com.alibaba.cloud</groupId>-->
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-dubbo</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid>
        </dependency>

        //...
    </dependencies>

這里需要注意兩點:

  1. 必須包含spring-boot-starter-actuator包,不然啟動會報錯。

  2. spring-cloud-starter-dubbo包需要注意groupId,根據(jù)具體使用的spring cloud alibaba版本依賴來確定。

    • 項目孵化期間,使用的groupId為:org.springframework.cloud;

    • 項目孵化之后,使用的groupId修改為了com.alibaba.cloud,所以用戶需要注意是否使用正確。避免加載不到對應JAR包的問題。

第二步:實現(xiàn)Dubbo接口

@Service
public class HelloServiceImpl implements HelloService {

    @Override
    public String hello(String name) {
        return "hello " + name;
    }

}

注意:這里的@Service注解不是Spring的,而是org.apache.dubbo.config.annotation.Service注解。

第三步:配置Dubbo服務相關的信息,比如:

spring.application.name=alibaba-dubbo-server
server.port=8001

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

# 指定 Dubbo 服務實現(xiàn)類的掃描基準包
dubbo.scan.base-packages=com.didispace.alibaba.dubbo.server
dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
dubbo.registry.address=spring-cloud://localhost

配置說明如下:

  • dubbo.scan.base-packages: 指定 Dubbo 服務實現(xiàn)類的掃描基準包

  • dubbo.protocol: Dubbo 服務暴露的協(xié)議配置,其中子屬性 name 為協(xié)議名稱,port 為協(xié)議端口( -1 表示自增端口,從 20880 開始)

  • dubbo.registry: Dubbo 服務注冊中心配置,其中子屬性 address 的值 "spring-cloud://localhost",說明掛載到 Spring Cloud 注冊中心

注意:如果使用Spring Boot 2.1及更高版本時候,需要增加配置spring.main.allow-bean-definition-overriding=true

第四步:創(chuàng)建應用主類,比如:

@EnableDiscoveryClient
@SpringBootApplication
public class DubboServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboServerApplication.class, args);
    }

}

構建服務接口消費方

第一步:創(chuàng)建一個Spring Boot項目,在pom.xml中引入第一步中構建的API包以及Spring Cloud Alibaba對Nacos和Dubbo的依賴,具體內(nèi)容與服務提供方一致:

    <dependencies>
        <!-- 第一步中構建的API包 -->
        <dependency>
            <groupid>com.didispace</groupid>
            <artifactid>alibaba-dubbo-api</artifactid>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-actuator</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>
        <dependency>        
            <!--<groupId>com.alibaba.cloud</groupId>-->
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-dubbo</artifactid>
        </dependency>
        <dependency>
            <groupid>org.springframework.cloud</groupid>
            <artifactid>spring-cloud-starter-alibaba-nacos-discovery</artifactid>
        </dependency>

        //...
    </dependencies>

第二步:配置Dubbo服務相關的信息,比如:

spring.application.name=alibaba-dubbo-client
server.port=8002

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

dubbo.protocol.name=dubbo
dubbo.protocol.port=-1
dubbo.registry.address=spring-cloud://localhost
dubbo.cloud.subscribed-services=alibaba-dubbo-server

注意:

  1. 這里多增加了dubbo.cloud.subscribed-services參數(shù),表示要訂閱服務的服務名,這里配置的alibaba-dubbo-server對應的就是上一節(jié)服務提供方的spring.application.name的值,也就是服務提供方的應用名。

  2. 如果使用Spring Boot 2.1及更高版本時候,需要增加配置spring.main.allow-bean-definition-overriding=true

第三步:創(chuàng)建應用主類,并實現(xiàn)一個接口,在這個接口中調(diào)用Dubbo服務,比如:

@EnableDiscoveryClient
@SpringBootApplication
public class DubboClientApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboClientApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @Reference
        HelloService helloService;

        @GetMapping("/test")
        public String test() {
            return helloService.hello("didispace.com");
        }
    }

}

注意:這里的@Reference注解是org.apache.dubbo.config.annotation.Reference

測試驗證

完成了上面的所有開發(fā)之后,我們可以將Nacos、服務提供者、服務消費者依次啟動起來。在完成啟動之后,我們可以在Nacos控制臺的服務列表中看到上面定義的兩個服務,比如:

Spring Cloud Alibaba下額外支持的RPC方案Dubbo是什么

接下來,我們就可以通過調(diào)用服務消費者中定義的/test接口來觸發(fā)dubbo服務的消費了。如果一切順暢,應該可以得到如下結果:

$ curl localhost:8002/test
hello didispace.com

小結

通過上面的例子,如果你曾經(jīng)同時玩過Spring Cloud和Dubbo,一定會深有感觸。你不用再同時顧慮Eureka和Zookeeper的配置,也不同同時關注這兩個中間件的健康,只需要關注和維護好Nacos一個即可。而對于Dubbo的配置和使用來說,配置還是相當簡單的,而代碼編寫上與以往的Dubbo沒什么大的不同。在Spring Cloud Alibaba的整合之下,Dubbo用戶既可以享受到原本RPC帶來性能優(yōu)勢,又可以更好的享受Spring Cloud的各種福利;而對于Spring Cloud用戶來說,在服務治理層面,又對了一個不錯的可選項??梢哉f這塊的整合是真正的讓這兩大用戶群體得到了很好的融合,起到了互相成就的作用。更多關于Spring Cloud與Spring Cloud Alibaba教程內(nèi)容可點擊查看。

看完上述內(nèi)容,你們掌握Spring Cloud Alibaba下額外支持的RPC方案Dubbo是什么的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞標題:SpringCloudAlibaba下額外支持的RPC方案Dubbo是什么
鏈接URL:http://aaarwkj.com/article34/iijipe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、標簽優(yōu)化搜索引擎優(yōu)化、Google、小程序開發(fā)、移動網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名
深夜视频在线观看成人| 粉嫩av一区二区三区四区| 日韩精品一区二区三区电影在线播放| 亚洲成人av毛片在线观看| 日韩国产传媒视频在线观看| 国产特级黄色片免费看| 新人妻一区二区在线视频| 日韩色欧美色国产精品| 亚洲男人av天堂午夜在| 人妻丰满熟妇九九久久| 亚洲欧美成人自偷自拍一区| 久久综合亚洲鲁鲁五月天| 亚洲精品日韩在线欧美| 精品日韩av一区二区三区| 亚洲激情精品成人在线| 国产三级精品电影久久| 亚洲精品女同专区视频| 日本国产一区二区三区在线观看| 九九热精品在线观看视频| 高潮国产精品一区二区| 四虎最新地址在线观看| 日本一区二区三区高清在线| 亚洲成人日韩在线播放| 黄片视频免费在线播放大全| 精品中文字幕欧美区一区| 日本一二三四卡久久精品| 九九视频免费在线播放| 欧美三级黄片免费视频| 午夜福利片免费在线观看| 精品伊人久久大香线蕉| 欧美视频免费一级黄片| 国产精品日韩av一区二区| 国产日韩综合精品一区| 性感美女国产精品一区二区| 亚洲精品成人久久网| 亚洲熟妇av一区二区| 免费人妻一区二区三区| 四虎在线免费视频播放| 美女在线视频一区二区三区| 日韩国产欧美亚洲一区| 91精品久久久久久|