侵入式服务治理方案,读这一篇就够(3)

简介: 侵入式服务治理方案,读这一篇就够(3)
  • 弹性好:

基于的服务发现机制可以快速发现服务的扩容与缩容,与相对静态的服务列表配置机制比,它是更加动态、灵活和实时的,这使得基于Dubbo开发的服务可以随时被关闭、启动和迁移,也使得应用能够以原生方式利用云环境中资源的弹性伸缩。


  • 高可用:

Dubbo是完全去中心化的服务治理方案,在分布式系统运行时,任何节点宕机都不会对服务产生实质性的影响。服务提供者宕机是较为常见的问题,可以与缩容一并处理,不会影响集群的整体服务。注册中心容易被误认为Dubbo系统的中心,其实不然,即使注册中心集群整体宕机,也不会影响Dubbo应用的运行。因为服务提供者列表是缓存在每一个服务消费者本地的,因此即使不经过注册中心,服务间的远程调用仍然不会中断。不过在注册中心失效期间,服务消费者无法感知新上线的服务提供者,因此无法对系统进行扩容。


  • 性能优:

采用Dubbo协议的服务消费者和服务提供者之间是点对点直连的,连接建立后无须断开,每次远程调用无须重新经过三次握手,也无须经过负载均衡服务器的二次转发,非常适用于互联网后端之间频次高、性能敏感度高的服务交互。


Dubbo支持随机、轮询、最少活跃调用数和一致性哈希这四种负载均衡策略,也提供扩展点用于定制策略。


随机策略是Dubbo默认采用的负载均衡策略。调用量越大分布越均匀,在无状态应用场景下较为适用。


轮询策略能够让流量以绝对均匀的方式分配。但是,如果服务节点处理能力不均衡的话,便会导致大量请求最终阻塞在最短板的服务节点上,从而影响集群的整体运行效果。


最少活跃数调用策略可以使请求响应迅速的服务节点获得更多的请求,使请求响应缓慢的服务节点获得较少的请求。


微信图片_20220123181649.jpg


一致性哈希策略使用一致性哈希算法,使相同的参数总是可以被发送给同样的服务提供者,在服务节点变化时平摊请求,避免请求路由结果发生剧烈变动。一致性哈希算法在分布式缓存等方案中较为常见,无状态服务没有必要使用,但如果服务是有状态的,便可以考虑使用该策略,以降低数据在服务节点间的复制频率。


Dubbo还为负载均衡策略提供了权重,可以通过配置或Dubbo的控制台动态调节权重,控制各个服务节点分配到的请求的数量。


配置负载均衡策略很简单,以下是将接口的负载均衡策略调整为轮询策略的配置代码。

<dubbo:referenceinterface="..." loadbalance="roundrobin" />


以下是将某一种方法的负载均衡策略调整为轮询策略的配置代码。

<dubbo:referenceinterface="...">
<dubbo:method name="..." loadbalance="roundrobin"/>
</dubbo:reference>


在服务调用失败时,Dubbo还提供了失效转移等容错的能力。



远程通信


使用Dubbo进行远程调用非常简单,它将多种通信方式及不同的序列化协议进行了统一封装。服务提供者和服务消费者只需在配置中指定使用的协议,便无须关心其他的实现细节了。


在正式介绍通信协议之前,我们需要先明确一下“Dubbo”这个词在不同语境中所表示的不同概念。首先,Dubbo是这个框架的名字;其次,在Dubbo框架中,服务提供者与服务消费者之间可以采用多种协议通信,Dubbo通信协议便是其中的一种;最后,远程通信时需要对在网络间传输的消息进行序列化和反序列化,Dubbo序列化协议是Dubbo框架所支持的众多序列化协议之一,是其自研的序列化算法。


Dubbo框架内置了多种通信协议,默认使用Dubbo通信协议,其他的协议还有RMI、Hessian、HTTP、WebService、Thrift、Memcached、Redis等。每个协议的连接方式、支持的序列化协议、线程模型、消息派发方式等都有很大区别。


Dubbo通信协议是Dubbo框架中最常用的通信协议。它采用Java NIO实现多路复用。对于每一个服务消费者来说,Dubbo协议的服务提供者都会创建固定数量的长连接传输消息,用于有效减少建立连接的握手次数,Dubbo通信协议使用线程池并发处理请求来增强并发效率。由于连接复用,传输大文件时的带宽占用率高可能会成为系统瓶颈,因此Dubbo通信协议适合处理高并发的小数据量互联网请求,不适合处理视频、高清照片这样的大文件或超长字符串。


微信图片_20220123181704.jpg


Dubbo通信协议并未直接使用Java原生的NIO包进行开发,它默认采用Netty框架进行远程通信,并且可以仅通过配置的变更将远程调用的具体实现方式切换为使用Mina或Grizzly等其他通信框架,远程调用的实现对使用方完全透明。


Dubbo通信协议可以支持多种序列化协议,与变更通信框架一样,它也能够仅通过修改配置实现序列化协议的切换。Dubbo通信协议使用Hessian作为默认的序列化协议,除此之外,还支持Dubbo、JSON以及Java原生的序列化协议。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
1天前
|
云安全 人工智能 运维
阿里云SecOps Agent,全新安全跨产品执行体验
自然语言驱动 云安全中心/WAF/CFW/ 等多款安全产品联动
1573 1
|
12天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
13天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
856 11
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
13天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
902 8
|
1天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
403 2
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
13天前
|
JSON 缓存 安全
通过 CC Switch 本地路由让 Codex CLI 接入 DeepSeek 等第三方模型
CC Switch 通过本地路由(`127.0.0.1:15721`)实现协议转换:将 Codex 的 Responses API 请求自动映射为 DeepSeek 等厂商的 Chat Completions 接口,兼容流式响应与工具调用,无需修改 Codex 源码,安全隔离 API Key。(239字)
2471 7
通过 CC Switch 本地路由让 Codex CLI 接入 DeepSeek 等第三方模型
|
13天前
|
存储 安全 Java
AgentScope Java 2.0:打造分布式、企业级智能体底座
AgentScope 2.0 面向分布式部署、稳定运行、权限安全等企业级需求全面升级,打造支持多租户隔离与长期稳定运行的企业级智能体底座。
|
8天前
|
人工智能 自然语言处理 算法
阿里云百炼Qwen 3.7 Plus与Max实测全解:性价比与多模态能力、成本深度对比
2026年,阿里云百炼平台推出的Qwen 3.7系列成为企业与开发者落地AI应用的核心选择,其中Qwen 3.7 Max与Plus作为两大旗舰版本,定位差异显著:Max是纯文本推理旗舰,专注高强度智能体与复杂逻辑任务;Plus则是多模态全能版,在保留强大文本能力的同时,补齐图像、视频理解能力,且价格大幅降低。本文基于2026年最新实测数据,从核心参数、文本能力、多模态能力、智能体表现、性价比与场景选型六大维度,全面解析两款模型的差异,为用户提供精准选型参考。
444 0