带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(8)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(8)

《Apache Dubbo微服务开发从入门到精通》——通信协议——二、 HTTP/2(Triple)协议(7) https://developer.aliyun.com/article/1224939



2) 流使用方式

 

a) Stream流

 

Stream是Dubbo3新提供的一种调用类型,在以下场景时建议使用流的方式

 

接口需要发送大量数据,这些数据无法被放在一个RPC的请求或响应中,需要分批发送,但应用层如果按照传统的多次RPC方式无法解决顺序和性能的问题,如果需要保证有序,则只能串行发送

 

流式场景,数据需要按照发送顺序处理, 数据本身是没有确定边界的

 

推送类场景,多个消息在同一个调用的上下文中被发送和处理

 

Stream分为以下三种

 

SERVER_STREAM服务端流

 

image.png

 

CLIENT_STREAM客户端流

 

image.png

 

BIDIRECTIONAL_STREAM双向流

 

image.png

 

注:

由于java语言的限制,BIDIRECTIONAL_STREAM和CLIENT_STREAM的实现是一样的。

 

在Dubbo3中,流式接口以SteamObserver声明和使用,用户可以通过使用和实现这个接口来发送和处理流的数据、异常和结束。

 

注:

对于Dubbo2用户来说,可能会对StreamObserver感到陌生,这是Dubbo3定义的一种流类型,Dubbo2中并不存在Stream的类型,所以对于迁移场景没有任何影响。

 

流的语义保证

 

提供消息边界,可以方便地对消息单独处理

严格有序,发送端的顺序和接收端顺序一致

全双工,发送不需要等待

支持取消和超时

 

b) Protobuf序列化的流

 

对于Protobuf序列化方式,推荐编写IDL使用compiler插件进行编译生成。生成的代码大致如下

 

image.png


《Apache Dubbo微服务开发从入门到精通》——通信协议——二、 HTTP/2(Triple)协议(9) https://developer.aliyun.com/article/1224936

 

相关文章
|
3月前
|
自然语言处理 Dubbo Java
【面试问题】Dubbo 推荐用什么协议?
【1月更文挑战第27天】【面试问题】Dubbo 推荐用什么协议?
|
3月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(十六)Spring Boot及Dubbo zipkin 链路追踪组件埋点
此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文第一部分为调用链、OpenTracing、Zipkin和Jeager的简述;第二部分为Spring Boot及Dubbo zipkin 链路追踪组件埋点
|
28天前
|
Cloud Native Dubbo 应用服务中间件
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
【Dubbo3技术专题】拥有新时代的通信协议,引领云原生迈向更高的舞台 | 解密Dubbo3是如何从微服务升华到云原生领域
37 1
|
1月前
|
Dubbo 网络协议 应用服务中间件
分布式微服务框架dubbo原理与机制
分布式微服务框架dubbo原理与机制
|
1月前
|
JSON Go API
Go语言网络编程:HTTP客户端开发实战
【2月更文挑战第12天】本文将深入探讨使用Go语言开发HTTP客户端的技术细节,包括发送GET和POST请求、处理响应、错误处理、设置请求头、使用Cookie等方面。通过实例演示和代码解析,帮助读者掌握构建高效、可靠的HTTP客户端的关键技术。
|
1月前
|
Java Apache 开发者
【微服务】5、声明式 HTTP 客户端 —— Feign
【微服务】5、声明式 HTTP 客户端 —— Feign
45 0
|
2月前
|
负载均衡 Dubbo Java
Dubbo 的心脏:理解和应用多种协议【十三】
Dubbo 的心脏:理解和应用多种协议【十三】
38 0
|
2月前
|
负载均衡 监控 Dubbo
探秘Dubbo Registry:微服务架构的核心【十二】
探秘Dubbo Registry:微服务架构的核心【十二】
24 0
|
2月前
|
存储 Dubbo 应用服务中间件
SpringCloud | Dubbo 微服务实战——注册中心详解
SpringCloud | Dubbo 微服务实战——注册中心详解

推荐镜像

更多