dubbo在java中的使用_使用 Dubbo 的第一个项目

使用 Dubbo 的第一个项目

31dd234a98e45c589940ab0989efbdd8.png

服务提供者(在 web 容器中使)

服务提供者开发步骤:

定义服务接口 (该接口需单独打包,在服务提供方和消费方共享)

在服务提供方实现接口(对服务消费方隐藏实现)

用 Spring 配置声明暴露服务

加载 Spring 配置(创建 bean)

项目结构:

7e31a67f4ded56b3ad390b6a8dc7b272.png

A、新建 web 项目,命名:04-dubboProviderService

注意:1)选择 Tomcat 作为服务器。 2) 生成 web.xml 文件.

B、 导入 jar

17f96671e950274cc6d5db275d86c1d5.png

dubbo.jar: Dubbo 框架的实现

javaassist-3.15.0-GA.jar:字节码生成 jar

netty-3.2.5.Final.jar:网络传输

spring-*.jar: Dubbo 是基于 spring 的。配置

C、 定义表示天气信息的对象 Weather

96ed5a8ded931e70e6271d3de89a0e51.png

重写的 toString()

9b98f3ac7bb4ff9993ac4f8e78c3561e.png

不实现 Serializable 接口的错误提示:

b7889ed94384e1e0e4aad449cccbc246.png

D、定义服务的接口(面向接口编程)

7146a40d3c584cda312126c7ef189804.png

E、 定义天气接口的实现类

包 名 :package com.wityx.service.provider

94497642a2029443f75b2ee8870b0ae5.png

F、 编写 Spring 配置文件,Spring 作为容器管理对

第一步:加入:dubbo.xsd 约束文件

9bd36b92666f14323a1e7917eaa96c40.png

第二步:本机配置代码提示:eclipse 菜单 Windows-→Preferences

c813f261cdf30f815a48cdb6d4e217fb.png

第三步:声明服务定义

dubbo:application:定义服务名称,一般使用项目名。

dubbo:service:声明服务,暴露给消费者使用。

bean:定义服务的实现类,提供服务的代码实现。spring 中的标签

3b805eca36018512ac77f933fd5b8984.png

G、新建测试类:MyTest 测试配置文件,对象定义等是否正确。

70773731eb3f2a22fa732ad5a7586c41.png

H、修改 web.xml 文件,web 应用中使用

a4981a101203b95ed78ff47324b90908.png

服务提供者的功能实现完成。

I、 导出服务接口

服务接口要给消费者使用,需要把接口定义打成 jar .

cf648a631626be2b8ea906e1cb2d55c9.png

第二步:导出接口

49f15e5d2884e6de1fb984b0cfbe47f6.png

第三步:查看导出的 jar 文件

使用 winrar 等压缩软件查

4c4dc207ca364916038660298a6ce4a3.png

服务消费者

(1) 直接使用远程服务提供者对象

服务消费者项目可以是 j2se, j2ee 等项目类型,使用服务。服务消费者开发步骤:

通过 Spring 配置引用远程服务

加载 Spring 配置,并调用远程服务:(也可以使用 IoC 注入)

项目结构:

049b7f41615704f80d18d846b23128e0.png

A、新建 java project ,命名 04-dubboConsume

B、 导入

工程根目录下,新建 libs,存放 jar。这个项目是非 web 应用,不需要 spring-web.jar,

46b4c054958ab2aa3d0182de91e824cf.png

C、 新建天气信息类 Weacher,结构同服务提供者项目中的 Weacher

可以拷贝服务提供者类中的 Weather, 或者服务提供者导出接口的同时,把 Weather 类和接口一同导出到 dubbo-weather-provider.jar

5ccf3d7cb68f32c59292366425f1ebb2.png

重写的 toString()

9b98f3ac7bb4ff9993ac4f8e78c3561e.png

D、新建配置文件 dubbo-consume.xml

配置文件需要加入 spring 和 dubbo 的约束文件,同服务提供者的provider.xml 的操作方

f5a8ec1e217b8bcbcc99a7950b894a12.png

F、 测试访问远程服

首先启动,服务提供者。服务提供者 05-ProviderService 是 web 应用发布到 tomcat 上运行

313ad562dc3a385edf43612883b6a6a0.png

加入:

3e9ca532b267fab398fb9617f84a92a5.png

输出:

4818163a5ac369134260e3f3110218bb.png

(2) 注入方式使用远程服务对象。

A、新建使用远程服务对象的 Service

c57eb2c1c429228b1dc658a8065e3dcd.png

13312f013bf30cf93630e04c6e04e788.png

B、 修改 dubbo-consume.xml 声明 ShowWeatherService 对象,注入服务提供者对象

ad6dc8208e3d73aa8896aa56a1c5e491.png

C、 测试类

1d10f4129508f72e8fae43b51d567dd0.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用MQ调用第三方Dubbo接口的具体步骤如下: 1. 首先,你需要配置MQ的相关信息,包括MQ的地址、端口号、用户名和密码等。这些信息可以在MQ的官方文档找到。 2. 接下来,你需要创建一个MQ的生产者,用于发送消息到MQ。你可以使用MQ的Java客户端库来实现这个功能。 3. 在发送消息之前,你需要构造一个符合Dubbo接口定义的消息体。这个消息体包括接口名、方法名和参数等信息。 4. 将构造好的消息体发送到MQ。 5. 在Dubbo的服务端,你需要创建一个MQ的消费者,用于接收MQ的消息。 6. 当接收到消息后,你可以解析消息体,获取到接口名、方法名和参数等信息。 7. 根据接口名和方法名,调用对应的Dubbo接口。 8. 将Dubbo接口的返回结果发送回MQ。 需要注意的是,使用MQ调用第三方Dubbo接口可能会引入一定的延迟,因为消息需要经过MQ的传输。此外,如果Dubbo接口的调用超时,客户端会收到一个TimeoutException异常,服务端会收到一个警告。在Dubbo的官方文档可以找到更多关于Dubbo调用超时处理的信息。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [如何处理Dubbo调用超时?](https://blog.csdn.net/weixin_45788094/article/details/102703290)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值