搭建分布式系統(idea+springboot+dubbo)


前提

當然,搭建分布式系統之前,你要搞清楚dubbo和Zookeeper的關系,先安裝啟動Zookeeper

搭建工程,新建maven工程,什么都不需要勾選


或者創建空工程

創建公共接口spring-dubbo-api(即公共調用模塊)

file->new->module

選擇maven或springboot都可以,我創建的是springboot,

定義接口方法(隨便定義了一個)

創建服務提供者spring-dubbo-provider

  1. 創建springboot 選擇web工程,這個不在截圖了
  2. 添加pom依賴
    添加公共api模塊
<dependency>
            <groupId>com.wonder</groupId>
            <artifactId>spring-dubbo-api</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
引入dubbo依賴和Zookeeper以及Zookeeper客戶端
           <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>4.0.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.4.13</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <groupId>org.slf4j</groupId>
                    <artifactId>slf4j-log4j12</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.10</version>
        </dependency>
  1. 配置application.properties
#spring項目名
spring.application.name=dubbo_auto_configuration_provider_demo
#Dubbo provider configuration
dubbo.application.name=dubbo_provider
dubbo.registry.protocol=zookeeper
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
#掃描注解包通過該設置將服務注冊到zookeeper
dubbo.scan.base-packages=com.wonder.provider.service
  1. 實現api中接口方法
import org.apache.dubbo.config.annotation.Service;
@Service //dubbo中的服務注解
public class UserServiceImpl implements UserService {
    @Override
    public String getUsername(String id) {

        System.out.println("調用provider成功。。。。。");

        return "success";
    }
}

創建spring-dubbo-consumer項目

  1. 項目創建同上spring-dubbo-provider的創建
  2. 配置application.properties
dubbo.application.name=dubbo_consumer
dubbo.registry.protocol=zookeeper
dubbo.registry.address=zookeeper://127.0.0.1:2181

#避免端口沖突
server.port=8085
  1. 調用
@RestController
public class UserController {

    @Reference
    UserService userService;

    @GetMapping("hello")
    public String sayHello(String name){
       String result = userService.getUsername("1");

        return result;
    }
}

兩個服務項目調用

  1. 修改配置dubbo.protocol.port=20881
dubbo.protocol.name=dubbo
dubbo.protocol.port=20881
#掃描注解包通過該設置將服務注冊到zookeeper
dubbo.scan.base-packages=com.wonder.provider.service
  1. 設置Reference 中 設置 check 為 false.
    OrderService orderService;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM