Dubbo ZooKeeper Spring Boot整合

依赖配置

1. Dubbo 起步依赖

Dubbo 是一款高性能的 Java RPC 框架,用于快速开发高性能的服务。

xml 复制代码
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>${dubbo.version}</version>
</dependency>

2. ZooKeeper API 管理依赖

plsql 复制代码
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>${curator.version}</version>
</dependency>

3. ZooKeeper 依赖

xml 复制代码
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>${zookeeper.version}</version>
</dependency>

4.版本管理

xml 复制代码
<properties>
    <dubbo.version>2.7.8</dubbo.version>
    <curator.version>5.1.0</curator.version>
    <zookeeper.version>3.7.0</zookeeper.version>
</properties>

项目文件目录架构

1. API模块

此模块包含Dubbo服务的接口定义和共享模型。

2. 实体模块

此模块包含实体类,与数据库模型相对应。

3. 服务提供者模块

此模块实现Dubbo服务接口,并配置Dubbo提供者的相关属性。

  • pom.xml中添加Dubbo和ZooKeeper依赖。
  • application.propertiesapplication.yml中配置Dubbo和ZooKeeper的连接信息。

4. 服务消费者模块

此模块使用Dubbo服务接口,并配置Dubbo消费者。

  • pom.xml中添加Dubbo依赖。
  • application.propertiesapplication.yml中配置Dubbo和ZooKeeper的连接信息。

配置Dubbo和ZooKeeper的连接信息配置

provider配置

xml 复制代码
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://${local.ip}:3306/dubbotest?useSSL=false
    username: root
    password: 123456

#dubbo服务提供者的配置:应用名称、注册中心地址、扫描的包;  可选配置:rpc协议和版本
dubbo:
  application:
    name: dubbo2-provider #应用名称,要求不重复
  registry:
    address: zookeeper://${local.ip}:2181
  scan:
    base-packages: com.codeT.dubbo.service #扫描的包
  protocol:
    name: dubbo  #rpc协议
    port: 20880  #rpc端口

dev:
  ip: 192.168.160.128 #服务器ip

local:
  ip: 127.0.0.1

comsumer配置

xml 复制代码
server:
  port: 80
  servlet:
    context-path: /
#dubbo的消费者配置:应用名称、注册中心地址、扫描的包; 可选配置:启动时检查、超时时间、重试次数
dubbo:
  application:
    name: dubbo2-consumer #应用名称
  registry:
    address: zookeeper://${local.ip}:2181 #注册中心地址
  scan:
    base-packages: com.codeT.dubbo.controller #扫描的包
  consumer:
    check: false #启动时检查
    timeout: 30000 #rpc调用的超时时间
    retries: 0 #调用失败后的生效次数

dev:
  ip: 192.168.160.128 #服务器ip

local:
  ip: 127.0.0.1

提供者和消费者是如何进行通信的?

核心注解

服务提供者(Provider)

@Service 注解
  • 作用:将一个类标记为Dubbo服务提供者。

服务消费者(Consumer)

@Reference 注解
  • 作用:注入远程服务引用。

启动Dubbo自动配置

@EnableDubbo注解
复制代码
@EnableDubbo
@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}
或者在配置文件进行扫描
xml 复制代码
scan:
    base-packages: com.codeT.dubbo.controller #扫描的包

项目demo地址

https://gitee.com/yellowpeng/dubbo-demo-springboot-master

相关推荐
夜郎king5 小时前
Spring AI 对接大模型开发易错点总结与实战解决办法
java·人工智能·spring
oradh5 小时前
Oracle数据库中的Java概述
java·数据库·oracle·sql基础·oracle数据库java概述
组合缺一5 小时前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring·ai·langchain·llm·solon
c++之路6 小时前
适配器模式(Adapter Pattern)
java·算法·适配器模式
吴声子夜歌6 小时前
Java——接口的细节
java·开发语言·算法
阿拉金alakin6 小时前
深入理解 Java 锁机制:CAS 原理、synchronized 优化与主流锁策略全总结
java·开发语言
myheartgo-on6 小时前
Java—方 法
java·开发语言·算法·青少年编程
雨落在了我的手上6 小时前
如何学习java?
java·开发语言·学习
范什么特西7 小时前
计算机杂记
java
RyFit7 小时前
SpirngAI
java