当前位置: 首页 > news >正文

Dubbo ZooKeeper Spring Boot整合

依赖配置

1. Dubbo 起步依赖

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

<dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.version}</version>
</dependency>

2. ZooKeeper API 管理依赖

<dependency><groupId>org.apache.curator</groupId><artifactId>curator-recipes</artifactId><version>${curator.version}</version>
</dependency>

3. ZooKeeper 依赖

<dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version>
</dependency>

4.版本管理

<properties><dubbo.version>2.7.8</dubbo.version><curator.version>5.1.0</curator.version><zookeeper.version>3.7.0</zookeeper.version>
</properties>

项目文件目录架构

项目目录架构.png

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配置

spring:datasource:driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://${local.ip}:3306/dubbotest?useSSL=falseusername: rootpassword: 123456#dubbo服务提供者的配置:应用名称、注册中心地址、扫描的包;  可选配置:rpc协议和版本
dubbo:application:name: dubbo2-provider #应用名称,要求不重复registry:address: zookeeper://${local.ip}:2181scan:base-packages: com.codeT.dubbo.service #扫描的包protocol:name: dubbo  #rpc协议port: 20880  #rpc端口dev:ip: 192.168.160.128 #服务器iplocal:ip: 127.0.0.1

comsumer配置

server:port: 80servlet: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 #服务器iplocal: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);}
}
或者在配置文件进行扫描
scan:base-packages: com.codeT.dubbo.controller #扫描的包

项目demo地址

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java | Leetcode Java题解之第381题O(1)时间插入、删除和获取随机元素-允许重复
  • Java-InputStream、MultipartFile和File相互转换工具类
  • Day50 | 108.冗余连接 109.冗余连接II
  • IO进程day04(进程)
  • Linux之shell脚本的if分支
  • AI搜索“懒人神器”,如何向谷歌和百度发起挑战?
  • 大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
  • P5721 【深基4.例6】数字直角三角形
  • 【uniapp/uview1.x】u-collapse 高度随内容自适应
  • 13.DataLoader 的使用
  • 三级_网络技术_52_应用题
  • 深度学习中Embedding的理解
  • pytorch的继承方法
  • 探索数字沙龙——文本描述生成数字人3D发型的专业工具
  • 数据结构与算法再探(二)高精度计算
  • Angular 响应式表单 基础例子
  • Bootstrap JS插件Alert源码分析
  • Java的Interrupt与线程中断
  • Netty源码解析1-Buffer
  • Phpstorm怎样批量删除空行?
  • php中curl和soap方式请求服务超时问题
  • SegmentFault 2015 Top Rank
  • spark本地环境的搭建到运行第一个spark程序
  • XML已死 ?
  • 番外篇1:在Windows环境下安装JDK
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 聊聊flink的BlobWriter
  • 如何设计一个微型分布式架构?
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 手机端车牌号码键盘的vue组件
  • 正则表达式小结
  • 智能网联汽车信息安全
  • Linux权限管理(week1_day5)--技术流ken
  • RDS-Mysql 物理备份恢复到本地数据库上
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ubuntu下安装kvm虚拟机
  • ​浅谈 Linux 中的 core dump 分析方法
  • ​数据链路层——流量控制可靠传输机制 ​
  • # Maven错误Error executing Maven
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (55)MOS管专题--->(10)MOS管的封装
  • (C++哈希表01)
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (三)elasticsearch 源码之启动流程分析
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转) RFS+AutoItLibrary测试web对话框
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理