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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523841.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【功能自动化】使用HTMLTestRunner生成测试报告

配置环境&#xff1a; 部署webtours网站 准备数据 user.txt 在软件开发过程中&#xff0c;测试是非常重要的环节&#xff0c;通过测试可以验证代码的正确性和稳定性。而生成测试报告则是测试的一个重要环节&#xff0c;通过测试报告可以清晰地了解测试的结果、覆盖率等信息。…

第九届世界渲染大赛国内参赛者作品在哪里可以看?

第九届世界渲染大赛汇聚了全球顶尖的CG艺术家&#xff0c;其中国内选手的表现尤为引人注目。他们凭借独特的创意视角和精湛的技术&#xff0c;将浓郁的国风元素融入作品之中&#xff0c;为大赛增添了一抹独特的东方色彩。接下来&#xff0c;就让我们一探究竟&#xff0c;看看这…

datagrip链接sql server2005报错

错误信息 第一次报 DBMS: Microsoft SQL Server (no ver.) Case sensitivity: plainmixed, delimitedexact [08S01] 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client pr…

C++学习笔记----6、内存管理(一)---- 使用动态内存(4)

3.6、多维自由内存空间上的数组 如果需要在运行时决定多维数组的维度&#xff0c;可以使用在自由内存空间上的数组。与一维动态分配的数组通过指针访问一样&#xff0c;多维动态分配的数组也可以通过指针访问。不同的地方在于在二维数组中&#xff0c;需要用一个指向指针的指针…

基于精益六西格玛管理方法进行生产线综合改善

生产线精益六西格玛改善是一个系统工程&#xff0c;只有对其进行系统的策划与组织&#xff0c;才能收到良好的改善效果。一般来说&#xff0c;需要成立一个专门的精益六西格玛推进组织&#xff0c;由其完成一系列的组织、准备工作。具体如下&#xff1a; &#xff08;1&#xf…

详解si5338 si53xx 设计使用及STM32 iic驱动设计

背景 在实际项目中经常使用si5338 si53xx&#xff0c;进行多路时钟的倍频以生成想要的时钟信号&#xff0c;但是针对si5338 si53xx设计使用缺少相关的资料&#xff0c;本文详解si5338 si53xx 设计使用及STM32 iic驱动设计&#xff0c;本文使用工程在项目中得到测试&#xff0c…

【pycharm】汉化及翻译插件

汉化插件 翻译插件 使用 选中右键翻译

通信算法之232: 无线发射功率和信号强度,常用单位dB、dBm、dBi和dBd介绍

[转载] 无线功率和信号强度的基本概念 在无线网络中&#xff0c;使用AP设备和天线来实现有线和无线信号互相转换。如下图所示&#xff1a; 有线网络侧的数据从AP设备的有线接口进入AP后&#xff0c;经AP处理为射频信号&#xff0c;从AP的发送端&#xff08;TX&#xff09;经过…

DCMM认证等级以及费用多少?

DCMM&#xff08;数据管理能力成熟度&#xff09;特别适合拥有较多数据量的组织、以及期望在初期就进行数据管理规范的组织。它旨在帮助组织对象发现自身问题&#xff0c;为数据管理能力的建设和提升指明方向。 DCMM将组织的数据管理划分为 8大能力域&#xff0c;细分为28个能…

如何将代理IP设置为ISP:详细指南

在当今互联网时代&#xff0c;代理IP已经成为许多用户保护隐私和提升网络体验的重要工具。而ISP&#xff08;Internet Service Provider&#xff09;的代理IP更是因为其高质量和稳定性备受青睐。本文将详细介绍如何将代理IP设置为ISP&#xff0c;让你在网络世界中享受更优质的上…

如何在D盘创建虚拟环境?包括安装PyTorch和配置PyCharm

摘要&#xff1a;本文首先在D盘创建了虚拟环境&#xff0c;然后在虚拟环境中安装了PyTorch&#xff0c;最后配置了pycharm的解释器。 1. 在 D 盘创建虚拟环境 打开Anaconda Prompt 输入conda info --envs查看当前已有环境 创建自己的虚拟环境&#xff0c;打算命名为py310&…

不同分辨率下页面自适应方法

首先在utils文件下新建一个js文件命名为screenSize.js 然后在需要做自适应的页面文件中引入import {screenSize} from ‘/utils/screenSize’ 最外层div中用ref命名 最后在mounted中使用该方法 记得style中给login宽1920px,高1080px

CPP继承(下)

目录 继承与友元 继承与静态成员 复杂的菱形继承及菱形虚拟继承 单继承 多继承 菱形继承 菱形继承的问题 虚继承 虚拟继承解决数据冗余和二义性的原理 继承的总结和反思 笔试面试题 继承与友元 友元关系不能继承&#xff0c;也就是说基类友元不能访问子类私有和保护…

高效易用的仓库进销存管理软件盘点,总有一款适合你!

本文将盘点10款主流的仓库进销存管理软件&#xff0c;为企业选型提供参考&#xff01; 仓库进销存管理软件就如同企业仓库的智慧大脑&#xff0c;能把企业的库存管理得井井有条。 有了它&#xff0c;首先能准确掌握库存情况&#xff0c;就像有了一双敏锐的眼睛&#xff0c;随时…

[SWPUCTF 2023 秋季新生赛]Pingpingping

这种是ctf中比较简单的一类题&#xff0c;主要解法基本上也就那些形式。 这道题我给它提出来主要是涉及了一下比较零散的知识点&#xff0c;觉得想要跟大家分享一下。 <?php highlight_file(__FILE__); error_reporting(0); $_ping $_GET[Ping_ip.exe]; if(isset($_ping…

新160个crackme -047-surre

运行分析 打开程序&#xff0c;标题显示Unreg未注册点击Try it&#xff0c;让我们选择一个文件&#xff0c;若选择文件无反应&#xff0c;不选择文件之后弹出错误提示 PE分析 Delphi程序&#xff0c;32位&#xff0c;无壳 静态分析&动态调试 ida找到已注册字符串&#xff0…

glsl着色器学习(十)缩放

对二维图形进行缩放&#xff0c;需要用到顶点着色器&#xff0c;顶点着色器经过矩阵变换&#xff0c;会将模型空间最终转换成裁剪空间。下面就来操作矩阵 这里需要用到一个库glMatrix。 首先修改顶点着色器 <script id"vertex-shader-2d" type"x-shader/x-…

为何科技达人都爱用Windows Disk Clear?数据安全有保障!

前言 “在数字时代&#xff0c;数据即力量&#xff0c;而其安全则是力量的基石。”这句箴言恰如其分地描绘了当今社会对数据安全的迫切需求。正是在这样的科技浪潮中&#xff0c;一款名为“Windows Disk Clear”的软件如同璀璨星辰&#xff0c;照亮了数据安全领域的天空。 它…

【DSP】无法在线仿真无法进入main()函数

DSP无法在线仿真无法进入main()函数 1.问题描述 ​ 接手前人的DSP代码&#xff0c;硬件平台是DSP C6701&#xff0c;软件IDE是CCS 12.3.0。仿真器版本是XDS 560V2。 ​ 在进行在线仿真时&#xff0c;经常出现“伪在线”的情况。简单来说&#xff0c;正常的在线过程&#xff…

【数据结构与算法 | 搜索二叉树篇 力扣篇】力扣530

1. 力扣530&#xff1a;二叉搜索树的最小绝对差 1.1 题目&#xff1a; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,…