Dubbo消费服务-02

Dubbo服务消费者调用过程 Protocol 它会利用注册中心服务Registry来获取最新的服务器端注册的url地址,然后再利用协议Protocol将这些url地址转换成一个具有远程通信功能的Invoker对象,如DubboInvoker。将通过远程通信将Invocation信息传递给服务器端,服务器端接收到该Invocation信息后,找到对应的本地Invoker,然后通过反射执行相应的方法,将方法的返回值再通过远程通信将结果传递给客户端。对于client端,则是将上述创建的集群版Invoker(Cluster)创建出代理对象。 阅读详情

*前言:上一篇文章中,我们已经成功发布了一个dubbo服务接口,下面我们建立一个消费者来消费服务。

*请先确保服务接口已经成功发布。

①首先,我们新建一个简单maven项目dubbo-demo-consumer,在pom.xml下添入依赖:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>com.101tec</groupId>
    <artifactId>zkclient</artifactId>
    <version>0.10</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>4.0.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.46</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>
<dependency>
    <groupId>io.netty</groupId>
    <artifactId>netty-all</artifactId>
    <version>4.0.35.Final</version>
</dependency>

②新建一个接口DemoProviderService为服务提供者(与上篇文章的服务接口对应):

package com.java.service;

/**
 * 服务提供者接口
 * @author zxy
 *
 */
public interface DemoProviderService {

    public String sayHello(String name);

}

③将dubbo-demo\dubbo-demo-consumer\src\main\resources\META-INF\spring路径下的dubbo-demo-consumer.xml复制到项目resource路径下,可参考我的写法:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xmlns="http://www.springframework.org/schema/beans"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方应用名称,用于计算依赖关系 -->
    <dubbo:application name="demo-provider"/>

    <!-- 使用zookeeper注册中心暴露服务地址 本地为127.0.0.1 默认为2181端口 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>

    <!-- 使用dubbo协议,在20880端口暴露服务 -->
    <dubbo:protocol name="dubbo" port="20880"/>

    <!-- service实现类作为本地的一个bean 与暴露的服务接口对应-->
    <bean id="demoProviderService" class="com.java.service.impl.DemoProviderServiceImpl"/>

    <!-- 声明需要暴露的服务接口 -->
    <dubbo:service interface="com.java.service.DemoProviderService" ref="demoProviderService"/>

</beans>

④消费自定义服务接口:在项目test路径下新建一个测试ConsumerTest:

import java.io.IOException;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.java.service.DemoProviderService;

public class ConsumerTest {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(new String[]{"dubbo-demo-consumer.xml"});
        context.start();

        DemoProviderService demoProviderService=(DemoProviderService)context.getBean("demoProviderService");
        String result=demoProviderService.sayHello("您好");
        System.out.println("远程调用的结果:"+result);

        try {
            System.in.read();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        context.close();
    }

}

运行程序,eclipse控制台可以看到:
这里写图片描述
同时,我们观察管理控制器,可以看到dubbo服务变化了状态信息,由未消费变成了正常,可以对消费者进行功能管理:
这里写图片描述
*自此,我们成功消费了暴露的自定义服务接口。

Vivado2023.2与Vitis协同开发:从Hello World到BOOT.BIN的完整流程解析 本文详细解析了使用Vivado 2023.2与Vitis协同开发ZYNQ/MPSoC平台的完整流程。从环境安装、硬件设计、软件编写、在线调试到生成独立的BOOT.BIN启动文件,手把手指导开发者完成从Hello World到系统固化的全步骤,并提供了常见问题的避坑指南,帮助初学者快速掌握软硬件协同开发的核心技能。 阅读详情

相关推荐

PCIE Lane Margining Linux 环境配置

Copy all the provided files in folder PYC38 or PYC310 to the created pcie_lmt folder. Index of /ftp/python/3.8.10/Copy below commands to a file and rename it as "scan_pcie.py", the commands are from "685662 PCIe-LMT-Gen4_Gen5-r0p77.pdf" in the lane margi

mysongshine的博客 1439

JavaGuide-关于Dubbo的重要知识点

本文是作者根据官方文档以及自己平时的使用情况,对 Dubbo 所做的一个总结。如果不懂 Dubbo 的使用的话,可以参考我的这篇文章《超详细,新手都能看懂 !使用SpringBoot+Dubbo 搭建一个简单的分布式服务》 Dubbo 官网:http://dubbo.apache.org/zh-cn/index.html Dubbo 中文文档: http://dubbo.apache.org/zh-cn/index.html 一 重要的概念 1.1 什么是 Dubbo? 1.2 什么是 RPC?RPC

AlphaCat的博客 1022

W5500+STM32F103C8T6进行TCP通信(modbus)

一路生花一、w5500资料二、modbus通信三、从机代码四、总结五、参考 一、w5500资料 w5500的资料就放在下面了,单纯的客户端和其他模式上面有教程 https://www.aliyundrive.com/s/enPnnZgNtpE 二、modbus通信 Modbus RTU通信时使用的数据帧结构如下图,而Moubus TCP通信的数据帧和这个稍微不一样,没有crc检验,因为tcp本就是一种可靠传输协议 这里是Modbus TCP数据帧 公共功能码定义 三、从机代码

junseven164的博客 5778

Dubbo—— 一个服务既是消费者又是提供者

Dubbo—— 一个服务既是消费者又是提供者 实现目标 使用dubbo实现每个服务互相远程调用 ssm实现 依赖 在每个服务中添加: <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> <exclusions> <!-- 项目中已有spr

weixin_43932472的博客 2767

LangFlow开源神器:拖拽构建AI Agent与MCP协议集成实战

LangFlow 15万星开源神器:拖拽搭建 AI Agent,一键部署 API / MCP / JSON 在AI应用开发领域,传统编码方式往往需要处理复杂的API调用、数据处理和流程编排,这让很多开发者望而却步。LangFlow作为GitHub上获得15万星的开源项目,通过可视化拖拽的方式彻底改变了AI Agent的开发体验。本文将完整介绍如何使用LangFlow快速构建功能强大的AI Agent,并实现API、MCP协议和JSON配置的一键部署。 1. LangFlow与AI Agent核心概念解析 1

weixin_33717117的博客 942

RK3588开发笔记-Buildroot编译host-nodejs报错解决ModuleNotFoundError: No module named ‘_bz2‘

在RK3588的开发过程中,使用Buildroot进行系统的构建和编译是一个常见的选择。然而,在编译host-nodejs的过程中,有时会遇到报错信息提示。这个错误通常是由于Python环境中缺少相应的模块导致的。以下将记录我解决这个问题的过程。。在RK3588的开发过程中,使用Buildroot编译host-nodejs时遇到的错误,通常是由于缺少相应的Python模块导致的。通过配置buildroot pythong bzip2开发库并重新编译,可以解决这个问题。

flypig has a dream! 898

【培训】DAY22 dubbo分布式服务框架

dubbo分布式服务框架基础知识分布式基础理论什么是分布式系统?为什么要使用分布式系统经?分布式系统发展演变单一应用架构垂直应用架构分布式服务架构流动计算架构PRC什么叫RPC?PRC基本原理dubbo核心概念简介基本概念调用关系说明环境搭建【windows】-安装zookeeper【windows】-安装dubbo-admin管理控制台监控中心(dubbo-monitor-simple)1、安装...

Memory的博客 522

Android Camera驱动开发工程师面试指南:技术深度与实战准备

摘要:上海移远通信招聘Android Camera驱动开发工程师,主要负责Camera传感器驱动开发维护、高通/展锐平台底层开发及技术预研。岗位要求1年以上嵌入式开发经验,精通Camera传感器驱动调试,熟悉高通平台Camera架构及Android HAL框架。具备HAL开发、算法集成或车载/支付行业经验者优先。工作内容以Driver/HAL开发为主,需具备硬件接口评估能力。该职位接受Linux/单片机背景人员转型。

郑伟强dev的专栏 281

dubbo 既是提供方又是消费方的问题

dubbo既是服务提供方,又是消费方,直接在dubbo的配置文件中一起写就好了。但注意端口号一定要不一样,一个提供方一个端口 --> -->  --> ref="articleService" /> --> -->

q596333033的博客 7512

YOLO11涨点优化:创新多尺度卷积注意力(MSCA)模块,小目标检测神器!

MSCA模块通过创新的多尺度设计,在保持计算效率的同时显著提升小目标检测能力。实验证明,在YOLOv5/v8等模型上嵌入MSCA后,mAP提升超过2%,小目标检测精度提升近4%,且计算代价增加极小。注意力机制的未来发展方向动态核尺寸:根据输入特征自适应调整卷积核大小跨模态融合:结合RGB与深度/热力图等多模态信息自监督优化:利用对比学习预训练注意力模块尝试在你的YOLO模型中插入MSCA模块,欢迎在评论区分享你的涨点结果!参考文献。

QQ_778132974的博客 470

uniapp - 强力解决H5网页浏览器跨域问题,如何解决uniapp请求接口在浏览器跨域问题,UniApp H5 跨域代理配置详细教程完美解决所有uniapp跨域(调用第三方接口或服务器api跨域)

uni-app 跨域,uniApp解决h5跨域问题,解决uni-app请求接口在浏览器跨域问题,uni.request请求跨域问题解决方案,uni-app-跨域解决方法,彻底解决uniapp发布为H5的跨域问题,uniapp H5页面设置跨域请求_uniapp h5跨域配置,uniapp开发 H5 解决跨域问题,uniApp请求解决跨域问题,uniapp request如何实现前端请求跨域,解决uniapp调试过程中的请求跨域和环境配置,Uniapp调用外部api接口跨域请求,uni-app发布H5页面跨域

🏆 前端领域优质创作者 5354

dubbo服务暴露和消费的详细过程

(1)服务提供者暴露一个服务的详细过程服务提供者暴露服务的主过程:首先ServiceConfig类拿到对外提供服务的实际类ref(如HelloWorldImpl),然后通过ProxyFactory的getInvoker()方法使用ref生成一个AbstractProxyInvoker实例,到这一步就完成具体服务到Invoker的转化。接下来就是Invoker转换到Exporter的过程。Dubbo...

qq_33827112的博客 6321

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列

感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 4264

docker安装zookeeper和dubbo-admin实现RPC远程调用

1、安装Zookeeper 1)下载zookeeper镜像 docker pull zookeeper 2)启动zookeeper docker run --name zookeeper -p 2182:2181 -v /root/zookeeper/data:/data -d zookeeper 2、安装dubbo-admin 1)下载tomcat镜像 docker pul...

nikeylee的博客 1181

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Dubbo框架介绍和入门程序

Dubbo框架介绍和入门程序 RPC介绍 Remote Process Callable 表示远程调用的意思 两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法 工作流程 》1、 A连接B,主要是通过在客户端和服务器之间建立TCP连接 》2、 A查找B上的方法 ,A调用RPC框架,需要B服务器(如主机或IP地址)以及特定的端口,方法的名称 》3、 A 传参-序列化:方法的参数需要通过底层的网络协议如TCP传递到B服务器,通过寻址和传输将序列化的二进制发送给B服务器 》4、

weixin_44014201的博客 410

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Dubbo源码解读-Consumer消费端服务列表刷新

RegistryDirectory.notify(List invokerUrls)监听三个节点providers,configurators,routers根据Url中的目录(category),设置具体协议urlinvokerUrls:dubbo协议:providers目录routerUrls:router协议:routes目录configuratorsUrl:overide协议:configurators处理协议:routerUrls:routes目录变动。

胖墩儿没腹肌 3016

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Dubbo高手之路3,Dubbo服务消费详解

Dubbo 服务消费是 Dubbo 服务分布式架构的重要组成部分,它主要负责服务的消费和调用。在 Dubbo 中,服务消费是通过注册中心和发布中心来实现的。注册中心负责服务的注册和发现,发布中心负责服务的发布和广播。Dubbo 服务消费提供了多种消息代理技术,如 Apache Kafka、RabbitMQ 等,可以支持大规模的分布式系统的高效消费和发布。

学Java,找哪吒 1341

springboot 整合dubbo消费,服务

开发工具:Idea虚拟机(zookeeper,dubbo,rabbitmq) google浏览器 模块清晰: 三个模块,1.提供者provider 2.消费者consumer 3.公共模块(接口、实体类)api 一、创建公用模块maven工程 (不需要配置任何东西、直接编写代码) Pojo放置一些实体类 Service...

小码农吗 2684

Spring Cloud 与 Dubbo 的整合:服务发现与消费者识别

Spring Cloud 与 Dubbo 的整合在现代微服务架构中起到了重要作用。通过配置 Dubbo 的服务发现机制,开发者可以确保服务的可靠性和稳定性。此外,通过合理使用Data ID,开发者可以有效地管理服务消费者,并快速定位问题。在本文中,我们详细介绍了如何配置 Dubbo 的服务发现与消费者识别,并提供了几种查看服务注册信息的方法。掌握这些技能将帮助开发者更好地管理和优化分布式系统中的服务调用,提升系统的整体性能和可维护性。Dubbo 的强大之处在于它的灵活性和可扩展性。

私聊前往站内信:https://i.youkuaiyun.com/#/msg/chat/weixin_44976692 2万+

dubbo服务消费

dubbo服务消费

weixin_42145727的博客 888

zookeeper的安装与通过dubbo实现服务消费方远程调用

Zookeeper 是 Apache Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo服务的注册中心,工业强度较高,可用于生产环境,并推荐使用 。 安装zookeeper 下载地址:http://archive.apache.org/dist/zookeeper/ 本次使用的Zookeeper版本为3.4.6,并将zookeeper部署到Linux系统中。下载完成后可以获得名称为zookeeper-3.4.6.tar.gz的压缩文件。安装...

qq_59711904的博客 2164

dubbo服务消费过程(一)

如何实现服的消费 生成远程服务的代理 获取目标服务的url地址 实现远程网络通信 实现负载均衡 实现集群容错 Invoker 服务引入 消费端的代码解析是从下面这段代码开始的 <dubbo:reference id="xxxService" interface="xxx.xxx.Service"/> 注解的方式的初始化入口是 ReferenceAnnotationBean...

liulong1010的专栏 2301

dubbo消费者调用多个服务_Dubbo服务消费者调用过程

上图是服务消费的主过程:首先通过ReferenceConfig类的private void init()方法会先检查初始化所有的配置信息后,调用private T createProxy(Map map)创建代理,消费者最终得到的是服务的代理, 在createProxy接着调用Protocol 接口实现的 Invoker refer(Class type, URL url)方法生成Invoker实...

weixin_32308019的博客 1330

Dubbo进阶(九):服务消费原理

之前在服务暴露原理中讲解了Dubbo是如何暴露服务的,这篇博客针对Dubbo消费原理一探究竟,主要从以下几个方面进行分析: 注册中心的暴露; 通过注册中心进行服务消费通知; 直连服务进行消费。 服务消费端的详细过程 服务消费端启动时,将自身的信息注册到注册中心的目录,同时还订阅服务提供方的目录,当服务提供方的 URL 发生更改时,实时获取新的数据。 上图中可以看到,服务消费的流程与服务暴露的流程有点类似逆向的。从整体来看,Dubbo做服务消费也分为两大部分,第一步通过持有远程服务实例生成Invoker

程铭程铭你快成名的博客 1万+

dubbo 3服务消费源码分析

前言 紧接上文,dubbo 3服务注册源码分析,本文开始分析dubbo 3服务消费源码,消费端的源码相对注册端来说要更加复杂一些 首先需要了解以下,服务消费需要做哪些操作,本文从dubbo和springboot的结合开始分析 服务消费必须做的以下一些事情 扫描@DubboReference的字段,并把这些对象注入到spring中成为bean,后续其他字段无论使用@DubboReference还是@Autowird都能够注入对象 注入的对象在被调用时必定会发起一个远程RPC调用访问远程服务,这个就很容易想到

qq_31086797的博客 1987

Dubbo服务环境搭建以及Dubbo服务的提供者和消费者配置详解

项目中引入了Dubbo,对外需要提供一个Dubbo的接口服务,编写了一个demo,在此提供出来,供初学者引用。 主要包括:在spring项目中引入对dubbo的支持,编写dubbo的provider和consumer,提供一个可测试的小demo。目标:开发环境中添加对Dubbo的支持,编写Dubbo服务的提供者和消费者。环境:Spring4.0, Dubbo2.5.3, Zookeeper3.4.

听从内心的召唤 1万+
上一篇: Dubbo初步搭建-01
下一篇: Dubbo接口抽取及依赖版本统一-03
IceCaptain
博客等级 码龄10年 12粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值