Dubbo从入门到应用:实战技巧和最佳实践

news2024/9/28 11:23:25

远程调用

  • 一、Dubbo快速上手
    • 提供者
      • @DubboService
    • 调用者
      • @DubboReference
    • 开启Dubbo调用
      • @EnableDubbo
  • 二、Dubbo快速入门
    • 1、添加 Dubbo 相关的 maven 依赖。
    • 2、定义服务接口
    • 3、 定义服务端的实现
    • 4、配置服务端及消费端 Yml 配置文件
    • 5、基于 Spring 配置服务端及消费端启动类
    • 6、消费端远程调用服务端

一、Dubbo快速上手

提供者

@DubboService

在这里插入图片描述

调用者

@DubboReference

在这里插入图片描述

开启Dubbo调用

@EnableDubbo

在这里插入图片描述

二、Dubbo快速入门

Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服务治理特性,可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo 被设计为高度可扩展,用户可以方便的实现流量拦截、选址的各种定制逻辑。

1、添加 Dubbo 相关的 maven 依赖。

对于多模块项目,首先需要在父项目的 pom.xml 里面配置依赖信息。

  <!-- Dubbo -->
            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-bom</artifactId>
                <version>${dubbo.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
  <!-- nacos作为注册中心 --> 
             <dependency>
      <groupId>com.alibaba.nacos</groupId>
      <artifactId>nacos-client</artifactId>
      <version>2.1.0</version>
          </dependency>

注:Dubbo 3.0.0 及以上版本需 nacos-client 2.0.0 及以上版本

# application.yml (Spring Boot)  注册到nacos

dubbo

 registry

   address: nacos://localhost:8848
   parameters.namespace: 5cbb70a5-xxx-xxx-xxx-d43479ae0932

2、定义服务接口

服务接口 Dubbo 中沟通消费端和服务端的桥梁。

在这里插入图片描述

3、 定义服务端的实现

定义了服务接口之后,可以在服务端这一侧定义对应的实现,这部分的实现相对于消费端来说是远端的实现,本地没有相关的信息。
在这里插入图片描述
在 DemoServiceImpl 中,实现了 DemoService 接口,对于 sayHello 方法返回 Hello name。

注:在DemoServiceImpl 类中添加了 @DubboService 注解,通过这个配置可以基于 Spring Boot 去发布 Dubbo 服务。

4、配置服务端及消费端 Yml 配置文件

通过 Spring Boot 的方式配置 Dubbo 的一些基础信息。
在这里插入图片描述

dubbo:
  application:
    name: dubbo-springboot-demo-provider
  protocol:
    name: dubbo
    port: -1
  registry:
    address: zookeeper://${zookeeper.address:127.0.0.1}:2181

在这个配置文件中,定义了 Dubbo 的应用名、Dubbo 协议信息、Dubbo 使用的注册中心地址,服务端和消费端配置相同。

5、基于 Spring 配置服务端及消费端启动类

在这个启动类中,通过配置了一个@EnableDubbo注解去读取我们前面定义的 application.yml 配置文件并启动应用(服务端和消费端的启动类上都需要加上该注解)。
在这里插入图片描述

6、消费端远程调用服务端

在 Task 类中,通过@DubboReference注解 从 Dubbo 获取了一个 RPC 订阅,这个 demoService 就可以像本地调用一样直接调用。
在这里插入图片描述
后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹

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

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

相关文章

每日学习笔记:C++ STL之堆栈容器stack

目录 stack定义 核心接口 stack class声明 stack class定义 用户自定义的Stack Class C11特色的插入元素的新形式 运用实例 stack定义 核心接口 stack class声明 stack class定义 用户自定义的Stack Class C11特色的插入元素的新形式 运用实例

springboot+vue 初始

1.控制器 2.文件上传拦截器 #过滤规则 # 默认访问static下面的文件http://localhost:8009/4.jpeg&#xff0c; # 带上static-path-pattern/static/**后&#xff0c;http://localhost:8009/static/4.jpeg spring.mvc.static-path-pattern/static/**#静态资源位置 spring.web.res…

【可能是全网最丝滑的LangChain教程】二十一、LangChain进阶之Memory

人生和电影不一样&#xff0c;人生要辛苦多了。 01 Memory介绍 Memory&#xff08;记忆&#xff09;是LangChain中的一个重要组成部分&#xff0c;它允许模型在处理请求时能够访问历史对话记录或其他相关上下文信息&#xff0c;从而使得对话更加连贯和自然。 LangChain Memor…

STM32标准库学习笔记-5.定时器-输出比较

参考教程&#xff1a;【STM32入门教程-2023版 细致讲解 中文字幕】 输出比较OC OC&#xff08;Output Compare&#xff09;输出比较输出比较可以通过比较CNT与CCR寄存器值的关系&#xff0c;来对输出电平进行置1、置0或翻转的操作&#xff0c;用于输出一定频率和占空比的PWM波…

vue使用海康视频web插件如何实现自适应

如果要实现自适应的话&#xff0c;就需要在不同的分辨率内设置不同的宽度和高度&#xff0c;可以监听当前屏幕的宽度和高度(可视区域的宽高)&#xff0c;划分不同的显示阶段 通过设置父级元素的宽度和高度实现子级视频的自适应 index.vue <template><div class&quo…

《机器学习》一元、多元线性回归的实现 No.4

一、一元线性回归实现 先直接看完整代码&#xff1a; import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegressiondate pd.read_csv(data.csv) #导入数据plt.scatter(date[广告投入],date[销售额]) # 用散点图展示数据 plt.sh…

【用Java学习数据结构系列】震惊,二叉树原来是要这么学习的(一)

前言 终于到了之前C语言没有讲过的数据结构了&#xff0c;那就是二叉树了&#xff0c;关于二叉树的学习难度确实比前面学习的数据结构都要难一点&#xff0c;所以我们这个关于二叉树的博客大概率是有好几篇的。如有哪里出现错误也欢迎指出唔。 二叉树的概念 Java 中的二叉树是…

【Oracle点滴积累】解决ORA-20000: ORA-12899: value too large for column错误的方法

广告位招租&#xff01; 知识无价&#xff0c;人有情&#xff0c;无偿分享知识&#xff0c;希望本条信息对你有用&#xff01; 今天和大家分享ORA-20000: ORA-12899: value too large for column错误的解决方法&#xff0c;本文仅供参考&#xff0c;谢谢&#xff01; A fatal…

【C语言】二叉树的深度理解

&#x1f36c;个人主页&#xff1a;Yanni.— &#x1f308;数据结构&#xff1a;Data Structure.​​​​​​ &#x1f382;C语言笔记&#xff1a;C Language Notes 前言 在之前学习了二叉树的基本概念&#xff0c;但二叉树有着更深入知识理解&#xff0c;这篇文章可以帮助大…

2 种方式申请免费 SSL 证书,阿里云 Certbot

如何使用免费的 SSL 证书&#xff0c;有时在项目中需要使用免费的 SSL 证书&#xff0c;Aliyun 提供免费证书&#xff0c;三个月有效期&#xff0c;可以直接在aliyun 申请&#xff0c;搜索 SSL 证书&#xff0c;选择测试证书。 Aliyun 证书需要每三月来来换一次&#xff0c;页…

ubuntu中python 改为默认使用python3,pip改为默认使用pip3

一、安装pip和python&#xff08;有的话可跳过&#xff09; 更新软件源 sudo apt update !!!apt和apt-get apt apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。 部分截图为apt-get&#xff0c;建议直接用apt 安装pip和python ubuntu 18.04和更高版本默认安…

申请中的专利可以用来申报高企吗

申请中的专利可以用来申报高企吗&#xff1f; 申请中的专利是否可以用于高新技术企业&#xff08;简称“高企”&#xff09;申报时&#xff0c;我们需要深入了解高企认定的具体条件和要求&#xff0c;以及专利在其中的角色和地位。 高新技术企业认定的基本条件 高新技术企业认定…

图像分类数据集|新冠肺炎|3类

新冠肺炎图像分类数据集&#xff0c;总共三类&#xff0c;获取地址在最后&#xff1a; 训练集&#xff1a; 251 测试集&#xff1a; 66 类别名&#xff1a; [‘Covid’, ‘Normal’, ‘Viral Pneumonia’] 数据集整理不易&#xff0c;获取地址如下&#xff1a; https://ite…

VM虚拟机-Ubuntu莫名其妙断网及解决

问题解决 由于Ubuntu下访问GitHub总是很慢&#xff0c;所以在鼓捣解决方法时不知怎么的直接给干的没法访问互联网了&#xff0c;虽然之前保存了快照&#xff0c;但恢复了几个快照都是没网&#xff08;ping不通&#xff09;&#xff0c;后续的解决方法如下。 在命令行中输入 …

EchoMimic—语音驱动图像

简介 EchoMimic是阿里巴巴达摩院推出的一个AI驱动的口型同步技术项目。通过一段音频和一张人物的面部照片&#xff0c;生成一个看起来像是在说话的视频&#xff0c;其中的人物口型动作与音频中的语音完美匹配。   EchoMimic优点&#xff1a; 1.口型同步生成&#xff1a;能根据…

WebRTC音视频开发读书笔记(六)

数据通道不仅可以发送文本消息, 还可以发送图片、二进制文件,将其类型binaryType属性设置成arraybuffer类型即可. 九\、文件传输 1、文件传输流程 &#xff08;1&#xff09;使用表单file打开本地文件 &#xff08;2&#xff09;使用FileReader读取文件的二进制数据 &#…

【PyCharm】配置“清华镜像”地址

文章目录 前言一、清华镜像是什么&#xff1f;二、pip是什么&#xff1f;三、具体步骤1.复制镜像地址2.打开PyCharm&#xff0c;然后点击下图红框的选项3.在弹出的新窗口点击下图红框的选项进行添加4.在URL输入框中粘贴第一步复制的地址&#xff0c;名字可以不更改&#xff0c;…

电力调度控制台作为智能电网的中枢大脑,引领能源高效调度新时代

在当今这个能源需求日益增长、电力网络日益复杂的时代&#xff0c;电力调度控制台作为智能电网的核心组成部分&#xff0c;正扮演着至关重要的角色。它不仅是电力系统中信息汇聚与决策输出的中枢大脑&#xff0c;更是实现电力资源优化配置、保障电网安全稳定运行的关键所在。 智…

MYSQL查询规范:索引

前言 工作有段时间了&#xff0c;现在看以前写的代码、sql之类的&#xff0c;实属辣眼睛。 这里将给出一些目前遇到的MYSQL查询规范&#xff08;索引&#xff09;&#xff0c;并长期更新 索引 众所周知&#xff0c;索引能提高数据查询效率&#xff08;前提是该字段被用在WHERE、…

Springboot邮件发送:如何配置SMTP服务器?

Springboot邮件发送集成方法&#xff1f;如何提升邮件发送性能&#xff1f; 对于使用Springboot的开发者来说&#xff0c;配置SMTP服务器来实现邮件发送并不是一件复杂的事情。AokSend将详细介绍如何通过配置SMTP服务器来实现Springboot邮件发送。 Springboot邮件发送&#x…