成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

SpringBoot+Dubbo實(shí)戰(zhàn)demo

simon_chen / 3651人閱讀

摘要:文件引入相關(guān)依賴需要引入接口的相關(guān)依賴包。服務(wù)提供者,包含真正的服務(wù)實(shí)現(xiàn)代碼服務(wù)提供者啟動類編寫注意不要忘記加上注解開啟的自動配置。

前言

搭建一個SpringBoot+Dubbo+zookeeper的demo

完整代碼見:github.com/Caizhenhao/…

1. 安裝zookeeper環(huán)境

搭建 zookeeper 之前要確保當(dāng)前的服務(wù)器已經(jīng)有 JDK 環(huán)境。

我使用的是阿里云服務(wù)器

注意:如果你也使用的是云服務(wù)器必須配置一個安全組,開放你的zookeeper端口。


1.1 首先下載zookeeper的安裝包

自行去網(wǎng)上下載zookeeper的安裝包后在服務(wù)器上解壓

1.2 解壓

tar -zxvf zookeeper-3.4.11.tar.gz

解壓完畢之后修改一下解壓之后所得的文件夾名

mv zookeeper-3.4.11 zookeeper

刪除 zookeeper 安裝包

rm -rf zookeeper-3.4.11.tar.gz
1.3 進(jìn)入zookeeper目錄,創(chuàng)建data文件夾。

mkdir data

進(jìn)入 data 文件夾 然后執(zhí)行pwd命令,復(fù)制所得的當(dāng)前目錄位置


1.4 進(jìn)入/zookeeper/conf目錄下,復(fù)制zoo_sample.cfg,命名為zoo.cfg

cp zoo_sample.cfg zoo.cfg

1.5 修改配置文件

使用 vim zoo.cfg 命令修改配置文件

修改配置文件中的 dataDir 屬性:

dataDir=/usr/local/zookeeper/data


1.6 啟動測試

進(jìn)入 /zookeeper/bin 目錄然后執(zhí)行下面的命令啟動zookeeper

./zkServer.sh start

查看當(dāng)前 zookeeper 狀態(tài)

./zkServer.sh status


或者運(yùn)行 netstat -lntup 命令查看網(wǎng)絡(luò)狀態(tài),可以看到 zookeeper 的端口號 2181 已經(jīng)被占用


到這里zookeeper的環(huán)境就搭建完成了,開始搭建項(xiàng)目

2. 開始搭建項(xiàng)目

項(xiàng)目我這里采用maven搭建,使用springboot+dubbo+zookeeper

項(xiàng)目分成三個模塊


三個模塊的功能:

dubbo-api 服務(wù)提供者的接口

dubbo-provider 服務(wù)提供者

dubbo-consumer 服務(wù)消費(fèi)者

關(guān)鍵依賴

<dependency>
    <groupId>com.alibaba.spring.bootgroupId>
    <artifactId>dubbo-spring-boot-starterartifactId>
    <version>2.0.0version>
dependency>
3. dubbo-api

抽象服務(wù)提供者的接口供服務(wù)消費(fèi)者調(diào)用

package com.czh.provider.dubboprovider.serviceImpl.service;

public interface HelloService {
    String sayHello(String name);
}

4. dubbo-provider

主要分為下面幾步:

    創(chuàng)建 springboot 項(xiàng)目;

    加入接口的相關(guān)依賴 jar 包;

    在 application.properties 配置文件中配置 dubbo 相關(guān)信息;

    實(shí)現(xiàn)接口類;

    服務(wù)提供者啟動類編寫

項(xiàng)目結(jié)構(gòu):


4.1 dubbo-provider 項(xiàng)目創(chuàng)建

創(chuàng)建一個 SpringBoot 項(xiàng)目,注意勾選上 web 模塊。

4.2 pom 文件引入相關(guān)依賴

需要引入接口的相關(guān)依賴 jar 包。注意將本項(xiàng)目和 dubbo-api 項(xiàng)目的 dependency 依賴的 groupId 和 artifactId 改成自己的。


    
        com.czh.api
        dubbo-api
        0.0.1-SNAPSHOT
    

4.3 在 application.properties 配置文件中配置 dubbo 相關(guān)信息

配置很簡單,這主要得益于 dubbo 的@EnableDubbo注解。詳情可以參考dubbo官方說明dubbo.apache.org/zh-cn/blog/…

# 配置端口
spring.application.name = dubbo-provider
server.port = 9090

#指定當(dāng)前服務(wù)/應(yīng)用的名字(同樣的服務(wù)名字相同,不要和別的服務(wù)同名)
dubbo.application.name = dubbo-provider

demo.service.version = 1.0.0

dubbo.protocol.name = dubbo
dubbo.protocol.port = 20880

#指定注冊中心的位置
dubbo.registry.address = zookeeper://ip:2181

#統(tǒng)一設(shè)置服務(wù)提供方的規(guī)則
dubbo.provider.timeout = 1000
4.4 實(shí)現(xiàn)接口

注意: @Service 注解使用的時 Dubbo 提供的而不是 Spring 提供的。

服務(wù)提供者,包含真正的服務(wù)實(shí)現(xiàn)代碼

package com.czh.provider.dubboprovider.serviceImpl;

import com.alibaba.dubbo.config.annotation.Service;
import com.czh.provider.dubboprovider.serviceImpl.service.HelloService;

@Service(version = "${demo.service.version}")
public class HelloServiceImpl implements HelloService {

    @Override
    public String sayHello(String name) {
        return "Hello " + name + ",This is springboot-dubbo test";
    }
}
4.5 服務(wù)提供者啟動類編寫

注意:不要忘記加上 @EnableDubbo 注解開啟Dubbo 的自動配置。

package com.czh.provider;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubbo
public class DubboProviderApplication {

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

}

5. dubbo-consumer

主要分為下面幾步:

    創(chuàng)建 springboot 項(xiàng)目;

    加入接口的相關(guān)依賴 jar 包;

    在 application.properties 配置文件中配置 dubbo 相關(guān)信息;

    服務(wù)消費(fèi)者調(diào)用接口編寫

    服務(wù)消費(fèi)者啟動類編寫

項(xiàng)目結(jié)構(gòu):


前兩步與之前的服務(wù)提供者一樣,這里我直接從第三步開始說起

5.3 在 application.properties 配置文件中配置 dubbo 相關(guān)信息

與服務(wù)提供者基本一致

spring.application.name = dubbo-consumer
server.port = 9091

#指定當(dāng)前服務(wù)/應(yīng)用的名字(同樣的服務(wù)名字相同,不要和別的服務(wù)同名)
dubbo.application.name = dubbo-consumer

demo.service.version = 1.0.0

dubbo.protocol.name = dubbo
dubbo.protocol.port = 20880

#指定注冊中心的位置
dubbo.registry.address = zookeeper://ip:2181

#統(tǒng)一設(shè)置服務(wù)提供方的規(guī)則
dubbo.consumer.timeout = 5000
5.4 編寫一個簡單的Controller調(diào)用遠(yuǎn)程服務(wù)

package com.czh.consumer.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.czh.api.service.HelloService;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloConsumerController {
    @Reference(version = "${demo.service.version}")
    private HelloService helloService;

    @RequestMapping("/sayHello/{name}")
    public String sayHello(@PathVariable("name") String name) {
        return helloService.sayHello(name);
    }

}

5.5 服務(wù)消費(fèi)者啟動類編寫

package com.czh.consumer;

import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableDubbo
public class DubboConsumerApplication {

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

}

6. 測試結(jié)果

可以看到消費(fèi)者調(diào)用服務(wù)提供者正常


查看zookeeper下發(fā)現(xiàn)有我們注冊的服務(wù)節(jié)點(diǎn)


7. 小結(jié)

使用springboot+dubbo+zookeeper進(jìn)行搭建 dubbo 的項(xiàng)目應(yīng)該說是比較簡單的,官方也有集成Springboot的依賴,這里就不多說了,實(shí)踐出真知~

完整代碼見:github.com/Caizhenhao/…


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/6878.html

相關(guān)文章

  • 超詳細(xì),新手都能看懂 !使用SpringBoot+Dubbo 搭建一個簡單的分布式服務(wù)

    Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,歡迎各位 Star。 目錄: 使用 SpringBoot+Dubbo 搭建一個簡單分布式服務(wù) 實(shí)戰(zhàn)之前,先來看幾個重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架構(gòu) 什么是 RPC? 為什么要用 Dubbo? 開始實(shí)戰(zhàn) 1 ...

    chengtao1633 評論0 收藏0
  • 搭建簡單的dubbo案例,并實(shí)現(xiàn)對數(shù)據(jù)庫的增刪改查

    摘要:創(chuàng)建父工程文件如下這里只添加幾個最簡單的依賴啟動父依賴依賴依賴依賴創(chuàng)建子工程 1.創(chuàng)建父工程 showImg(https://segmentfault.com/img/bVbgtl4?w=387&h=255); pom文件如下(這里只添加幾個最簡單的依賴) 4.0.0 wyb springbootDubbo pom 1.0-SNAPSHOT...

    MageekChiu 評論0 收藏0
  • Spring Boot 2.x (十五):Dubbo + Zookeeper + 新版Dubbo A

    摘要:簡介是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和框架無縫集成。它提供了三大核心能力面向接口的遠(yuǎn)程方法調(diào)用智能容錯和負(fù)載均衡服務(wù)自動注冊和發(fā)現(xiàn)。首先我們需要前往官網(wǎng)下載安裝包。 Dubbo 簡介 Dubbo是阿里巴巴公司開源的一個高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過高性能的RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無縫集...

    DobbyKim 評論0 收藏0
  • 聊聊Dubbo - Dubbo可擴(kuò)展機(jī)制實(shí)戰(zhàn)

    摘要:今天我想聊聊的另一個很棒的特性就是它的可擴(kuò)展性。的擴(kuò)展機(jī)制在的官網(wǎng)上,描述自己是一個高性能的框架。接下來的章節(jié)中我們會慢慢揭開擴(kuò)展機(jī)制的神秘面紗。擴(kuò)展擴(kuò)展點(diǎn)的實(shí)現(xiàn)類。的定義在配置文件中可以看到文件中定義了個的擴(kuò)展實(shí)現(xiàn)。 摘要: 在Dubbo的官網(wǎng)上,Dubbo描述自己是一個高性能的RPC框架。今天我想聊聊Dubbo的另一個很棒的特性, 就是它的可擴(kuò)展性。 Dubbo的擴(kuò)展機(jī)制 在Dub...

    techstay 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<