spring boot整合dubbo超简单 五分钟上手

dubbo-provider

1, 创建spring-boot项目

依赖管理选的maven,Gradle不怎么会用

2,不需要勾选额外的starter
用默认的spring boot版本

3 ,按照1,2步骤依次创建module子目录
目录依次创好

demo-test-dubbo的pom依赖


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

    <groupId>com.myf.test</groupId>
    <artifactId>demo-test-dubbo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>demo-test-dubbo</name>

    <modules>
        <module>demo-test-dubbo-provider</module>
        <module>demo-test-dubbo-service-face</module>
        <module>demo-test-dubbo-service-impl</module>
    </modules>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>3.2.4</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

demo-test-dubbo-provider的pom依赖

<dependencies>


        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-zookeeper</artifactId>
            <version>3.2.4</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-recipes</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-x-discovery</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-framework</artifactId>
                </exclusion>
            </exclusions>
            // 把自带的curator版本排除掉不然会导致Session 0x0 for server 10.1.21.244/<unresolved>:2181, unexpected error,    closing socket connection and attempting reconnect 这个错误.网上说是jdk版本引起的
        </dependency>

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

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-x-discovery</artifactId>
            <version>2.13.0</version>
        </dependency>

        <dependency>
            <groupId>com.oppo.myf</groupId>
            <artifactId>demo-test-dubbo-service-impl</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        //引入这个依赖springBoot启动的时候才会编译到target目录
    </dependencies>

新增dubbo配置并创建一个测试的service及其实现类
在这里插入图片描述

dubbo.properties

dubbo.application.name=demo-user-provider
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.registry.address=zookeeper://127.0.0.1:2181

启动类代码

@SpringBootApplication(scanBasePackages = "com.myf.test.demo.test.dubbo")
@EnableDubbo(scanBasePackages = "com.myf.test.demo.test.dubbo.service.impl")
public class DemoTestDubboProviderApplication {

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

@DubboService
public class DemoDubboServiceImpl  implements DemoDubboService {
    @Override
    public String testDubbo() {
        return "Hello 小羊";
    }
}

4,启动zk
我得是3.4.7版本的在Windows启动的zk服务端

5,启动dubbo-provider

dubbo已经找到@dubboReference注解下我们的提供者

springboot启动了

6,在zk客户端查看dubbo接口提供者
接口在dubbo目录下面能看到了

dubbo-cousumer

1,再创一个dubbo消费者的project

目录如上

@SpringBootApplication(scanBasePackages = "com.myf.test.demo.dubbo")
@EnableDubbo
public class DemoDubboConsumerApplication {

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

}

@RestController
@RequestMapping("/api/demo/dubbo")
public class DemoTestController {

    @DubboReference
    DemoDubboService demoDubboService;

    @RequestMapping("/dubbo-test")
    public Object testUser() {

        return demoDubboService.getDemoName();
    }
}

因为我这个DemoUserService是在另一个demo-dubbo项目下面,没有maven远程仓库可以推送,所以我把这个service生成了一个jar包放在目录下的lib文件夹下面,然后在pom里面加一个依赖就能引入这个service了

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.myf.test</groupId>
            <artifactId>demo-dubbo-service</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/demo-dubbo-service-0.0.1-SNAPSHOT.jar</systemPath>
        </dependency>
    </dependencies>

demo-dubbo-consumer的pom文件

    <dependencies>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-registry-zookeeper</artifactId>
            <version>3.2.4</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.zookeeper</groupId>
                    <artifactId>zookeeper</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-recipes</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-x-discovery</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.curator</groupId>
                    <artifactId>curator-framework</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>2.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
            <version>2.13.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-x-discovery</artifactId>
            <version>2.13.0</version>
        </dependency>

        <dependency>
            <groupId>com.myf.test</groupId>
            <artifactId>demo-dubbo-controller</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

2,启动dubbo-consumer

成功订阅了provider的接口

spring boot 成功启动了,因为整合了web所以Tomcat也起来了

3,访问接口
成功获取到了我们dubbo-provider接口里面返回的文案

这就是简单的spring boot 整合dubbo的全部内容了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值