三分钟springboot整合dubbo3(二)(Triple协议流式调用)

1、Triple协议(粘贴官网)

Triple 是 Dubbo3 提出的基于 HTTP2 的开放协议,旨在解决 Dubbo2 私有协议带来的互通性问题。大概意思就是上个版本主推的dubbo协议,有的系统不认识,但我用http协议,大家操作起来,你开心我开心,头不疼了吧,具体是啥我也不太清楚。

2、流式调用绍

我们正常接口调用都是一次调用,一次返回。而流式调用可以在一次调用中多次交互。

1、unary: 我们正常编写的接口,参数不含有StreamObserver类的那种,效果就是一次调用一次返回,即我发送请求 → 收到一次返回 → 接口调用结束

2、*ServerStream: 服务提供者可以分批次返回数据给消费者,消费者可以根据每次返回的数据单独处理。即:
消费者发送请求 → 提供者处理请求 → 提供者返回消息1 → 消费者处理消息1 → 提供者返回消息2 → 消费者处理消息2 → 提供者发送结束标记 → 消费者处理结束标记 → 消费者完成本次调用

3、*ClientStream: 消费者可以分批次发送数据,服务提供者分批次处理完数据。即:
消费者与提供者建立连接 → 消费者发送消息1 → 提供者处理消息1 → 消费者发送消息2 → 提供者处理消息2 → 消费者发送终止标记 → 提供者完成本次调用

4、BiStream: 就是ClientStream,叫法区别

3、使用方式

在上一篇文章搭建项目的基础上改进,主要多了两个位置
1、需要新引入的依赖支持
2、接口需要新的参数支持

新增依赖

<!-- 流式调用包 -->
<dependency>
	<groupId>org.apache.dubbo</groupId>
	<artifactId>dubbo-common</artifactId>
	<version>3.0.7</version>
</dependency>

配置文件

提供者与调用者就把端口和名字改了就好,协议填写的是tri,不是triple

server.port=8082
dubbo.application.name=02_consumer
dubbo.protocol.name=tri
dubbo.protocol.port=20880
dubbo.registry.address=zookeeper://localhost:2181

代码演示

3.1、ServerStream演示

重点是接口里需要传递的参数StreamObserver
生产者与消费者共用接口

public interface TestService {
   
    // SERVER_STAREAM
    default void say1(String name, StreamObserver<String> response){
   
    	//不要在意,我就是个空方法
    }
}

生产者接口实现

@DubboService
public class TestServiceImpl implements TestService {
   
    @Override
    public void say1(String name, StreamObserv
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值