Springboot搭建dubbo+zookeeper本地项目

1、下载zookeeper

什么是zookeeper:https://www.cnblogs.com/Bernard94/p/17495775.html

下载地址:https://dlcdn.apache.org/zookeeper/zookeeper-3.7.2/

下载好解压后进入conf目录下,把‘zoo_sample.cfg’复制并改名为‘zoo.cfg’:

修改配置文件的日志地址,修改到自己指定位置(非必要操作):

 进入bin目录,找到‘zkServer.cmd’双击启动zookeeper:

2、新建项目

1、建父类项目

根据自己配置修改Maven地址和JDK版本:

修改Pom文件,新增以下配置:

<properties>
        <dubbo.version>3.2.0-beta.4</dubbo.version>
        <spring-boot.version>2.7.8</spring-boot.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Dubbo -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-bom</artifactId>
                <version>${dubbo.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
                <version>${dubbo.version}</version>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring-boot.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

2、API模块

new-Module-Next

 编写接口:HelloWorld

public interface HelloWorld {
    public String sayHello();
}

3、provider模块(新建步骤如上)

修改pom文件,新增以下代码

<dependencies>
        <!--dubbo统一接口-->
        <dependency>
            <groupId>com.code</groupId>
            <artifactId>dubbo-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        <!-- zookeeper -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-reload4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- spring boot starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
    </dependencies>

新增配置文件:application.yml

dubbo:
  application:
    name: dubbo-provider
  protocol:
    name: dubbo
    port: -1
  registry:
    address: zookeeper://127.0.0.1:2181
server:
  port: 8080

新增启动类:ProviderApplication

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

新增实现类:HelloWorldImpl

@DubboService
public class HelloWorldImpl implements HelloWorld {
    @Override
    public String sayHello() {
        return "hello,world!";
    }
}

结构如下:

4、consumer模块(新建步骤如上)

修改pom文件,新增以下代码:

<dependencies>
        <!--dubbo统一接口-->
        <dependency>
            <groupId>com.code</groupId>
            <artifactId>dubbo-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!-- dubbo -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
        </dependency>
        <!-- zookeeper -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper-curator5</artifactId>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <artifactId>slf4j-reload4j</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- spring boot starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- spring boot web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.7.8</version>
        </dependency>
    </dependencies>

新增配置文件:application.yml

dubbo:
  application:
    name: dubbo-consumer
  protocol:
    name: dubbo
    port: -1
  registry:
    address: zookeeper://127.0.0.1:2181

server:
  port: 8081

新增启动类:ConsumerApplication

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

新增测试类controller:

@RestController
public class IndexController {

    @DubboReference
    public HelloWorld helloWorld;

    @RequestMapping("/hello")
    public String sayHello() {
        return helloWorld.sayHello();
    }
}

结构如下:

3、启动项目

1、启动zookeeper

2、启动provider

3、启动consumer

4、测试

浏览器输入路径:http://localhost:8081/hello

 

posted @ 2024-05-16 14:50  请别耽误我写BUG  阅读(2)  评论(0编辑  收藏  举报