当前位置: 首页 > article >正文

Dubbo HTTP接入架构

前端 http 流量接入 Dubbo 后端微服务体系的基础架构

不论你开发的是什么样的产品(电子商城、管理系统、手机 app 等),绝大多数下产品的流量入口都会是 http,用户可能通过浏览器、手机移动设备、桌面软件等来访问产品。在这种情况下,如何将后端开发的 Dubbo 微服务集群接入前端访问设备就成为一个需要解决的问题,其实也就是 http 与 rpc 之间的转换与连接问题。

总的来说,有中心化和去中心化两种架构模式。其中,中心化接入模式更具通用性,对后端 rpc 协议、前端网关没有太多特殊要求,但保证中心化应用的性能、稳定性是一个较大的挑战;去中心化模式由于不需要维护入口应用,因此可适应更大流量、更大规模的集群。

中心化接入方式

中心化接入方式的架构图如下:

  • 在后端服务与前端设备之间有一层网关,负责流量过滤、路由、限流等流量管理工作
  • 在后端集群中有一个连接 http 与 dubbo 服务的 “统一微服务入口应用”(通常也叫做 BFF,即Backend for Frontend)。

c7b74846ad9e49868041b9f7c10195d8.png

BFF 应用通常可以使用 Spring Web 等常用框架开发,应用发布一系列的 http 服务,接收网关或前端设备流量,同时负责按需发起 dubbo 调用。

注意

dubbotriple 协议都支持这种接入架构。另外,在配置 BFF 应用调用 dubbo 服务时,可以使用普通的 dubbo 配置方式,也可以使用泛化调用等方式:

  • 配置接入 dubbo 协议时,使用 泛化调用 的优势是可以避免对服务二进制包的依赖,实现配置动态生效的效果。
  • 配置接入 triple 协议时,可以使用 http 调用方式,同样可避免对服务二进制包的依赖,实现配置动态生效的效果。

去中心化接入方式

与中心化架构相比,此方式并没有太大的差异,唯一的区别在于不需要额外的 BFF 应用,我们可以在网关直接调用后端 dubbo 服务。

但这种方式对网关有特别要求。如果后端是 dubbo 协议的话,则要求网关具备 http -> dubbo 协议转换的能力,但你会在接下来的文档中发现,我们可以通过多协议发布绕过协议转换,让网关直接通过 http 访问后端服务;如果后端是 triple 协议,就会更简单了,因为 triple 协议支持 application/json 格式的 http 请求。

3a29d59c00b14dcca80202eada84cea5.png

总结

使用不同的协议也会影响架构选择,triple 协议由于原生支持 HTTP 访问,因此对两种架构方式都可以无差别支持,并且接入原理上也会更简单直接。而 dubbo 协议作为 Dubbo2 时代主推的协议,由于是基于 tcp 的二进制协议,因此在接入方式上存在一些不同。

我们将在接下来的两篇文档中介绍 dubbo、triple 两种协议的具体前端流量接入方式,文档同样适用于中心化、去中心化架构。

 


http://www.kler.cn/a/404062.html

相关文章:

  • 嵌入式LVGL自定义纯数字键盘
  • 单向C to DP视频传输解决方案 | LDR6500
  • AWTK 最新动态:支持鸿蒙系统(HarmonyOS Next)
  • pytest 接口串联场景
  • 【力扣热题100】[Java版] 刷题笔记-226. 翻转二叉树
  • 7-9 求无向图连通分量的数量
  • 丹摩征文活动 | SD3+ComfyUI:图文部署新境界,2合1效率提升,简化步骤对抗传统挑战!
  • UniApp在Vue3下使用setup语法糖创建和使用自定义组件
  • C++桥接模式在使用时需要注意什么
  • 算法定制LiteAIServer检测算法入侵检测算法平台部署:危险区域人员闯入治理
  • Python中Tushare(金融数据库)入门详解
  • 【pytorch-02】:张量的索引、形状操作和常见运算函数
  • 2024强网杯--babyheap house of apple2解法
  • Unity3d场景童话梦幻卡通Q版城镇建筑植物山石3D模型游戏美术素材
  • 细说STM32单片机DMA中断收发RTC实时时间并改善其鲁棒性的另一种方法
  • SAP Ariba Contracts 基本介绍
  • 知识见闻 - 数学: 均方根误差和标准差
  • 密码学之柯克霍夫原则(Kerckhoff原则)
  • 美创科技入选2024数字政府解决方案提供商TOP100!
  • jmeter常用配置元件介绍总结之监听器
  • C++编程玩转物联网:用树莓派Pico实现流水灯
  • react中useMemo的使用场景
  • vue学习11.21
  • 多模态大模型(4)--InstructBLIP
  • python中Pandas操作excel补全内容
  • 无人机与低空经济:开启新质生产力的新时代