注解配置搭建本地Springboot 2.x + Apache Dubbo 2.7 + Zookeeper分布式框架

大致的调用流程如下:

在这里插入图片描述

Step1:

创建一个Maven项目,添加公共接口,以idea为例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Step2:

2.1:创建Provider项目(Springboot),引入上述定义好的公共接口依赖:

在这里插入图片描述
一直Next直到项目创建完成。

2.2:在创建好的springboot项目中引入公共接口依赖:

在这里插入图片描述
并在原有基础上添加 apache dubbodubbo-zookeeper 相关依赖:

		<!-- apache dubbo 集成 spring boot 启动依赖 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-spring-boot-starter</artifactId>
            <version>2.7.3</version>
        </dependency>

		<!-- apache dubbo 集成 zookeeper 依赖 -->
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.3</version>
            <type>pom</type>
            <exclusions>
                <exclusion>
                    <artifactId>log4j</artifactId>
                    <groupId>log4j</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>slf4j-log4j12</artifactId>
                    <groupId>org.slf4j</groupId>
                </exclusion>
            </exclusions>
        </dependency>
2.3:创建provider类,实现公共接口,并在类上使用apache dubbo提供的@Service注解

在这里插入图片描述

2.4:编辑application.properties:(有需要可以换成.yml)
# springboot应用端口
server.port=8222

# 注册中心地址
dubbo.registry.address=zookeeper://localhost:2181
# 注册的应用名
dubbo.application.name=boot-provider
# 协议为dubbo
dubbo.protocol.name=dubbo
# dubbo协议端口,-1表示随机端口号
dubbo.protocol.port=-1
2.5:编辑主类:使用yml配置的可以将@PropertySource注解去掉
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;

@SpringBootApplication
@EnableDubbo
@PropertySource("classpath:application.properties")
public class BootproviderApplication {

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

}

Step3:

3.1:创建Consumer项目,引入公共接口及apache dubbo等依赖,参考provider项目
3.2:创建Consumer类,注入公共接口:

注意使用@Reference注解标注注入接口:

import com.rph.service.CommonService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class BootCommonConsumer {
    @Reference
    CommonService commonService;

    @GetMapping("/hello/{name}")
    public String sayHello(@PathVariable("name") String name) {
        return commonService.sayHello(name);
    }
}
3.3:配置application.properties文件(可换成.yml)
# springboot应用端口
server.port=8333

# dubbo应用名称
dubbo.application.name=dubbo-boot-consumer
# 服务注册中心地址
dubbo.registry.address=zookeeper://localhost:2181
3.4:修改Consumer主类:(yml配置去掉@PropertySource注解)
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;

@SpringBootApplication
@EnableDubbo
@PropertySource("classpath:application.properties")
public class BootconsumerApplication {

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

}

Step4:

4.1:启动本地zookeeper服务(./zkServer)(zookeeper自行下载)
4.2:启动provider项目
4.3:启动consumer项目
4.4:访问consumer提供的服务地址

PS: 可以使用dubbo-admin或者zookeeper的zkCli查看服务是否注册成功

附上apache dubbo集成springboot的官方示例:
https://github.com/apache/dubbo-spring-boot-project

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值