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

相关推荐
B612 little star king3 分钟前
力扣29. 两数相除题解
java·算法·leetcode
野犬寒鸦5 分钟前
力扣hot100:环形链表(快慢指针法)(141)
java·数据结构·算法·leetcode·面试·职场和发展
上官浩仁10 分钟前
springboot synchronized 本地锁入门与实战
java·spring boot·spring
Gogo81611 分钟前
java与node.js对比
java·node.js
SmartJavaAI17 分钟前
Java调用Whisper和Vosk语音识别(ASR)模型,实现高效实时语音识别(附源码)
java·人工智能·whisper·语音识别
用户37215742613521 分钟前
Python 高效实现 Word 转 PDF:告别 Office 依赖
java
渣哥26 分钟前
Java ThreadPoolExecutor 动态调整核心线程数:方法与注意事项
java
Miraitowa_cheems37 分钟前
LeetCode算法日记 - Day 38: 二叉树的锯齿形层序遍历、二叉树最大宽度
java·linux·运维·算法·leetcode·链表·职场和发展
稻草猫.1 小时前
Java多线程(一)
java·后端·java-ee·idea
躲在云朵里`1 小时前
Spring Scheduler定时任务实战:从零掌握任务调度
java·数据库·mybatis