
dubbo
文章平均质量分 92
Solomon_肖哥弹架构
Solomon(肖爱良) - 前百度环境音乐CTO&架构师、微服务专家 - 中国机械出版社签约作家,《深入理解Dubbo工业级架构设计》图书的作者 - 分享高并发、高可用、高性能的分布式(微服务、存储、事务、限流)架构设计原理
展开
-
Dubbo可扩展机制实战
在Dubbo的官网上,Dubbo描述自己是一个高性能的RPC框架。今天我想聊聊Dubbo的另一个很棒的特性, 就是它的可扩展性。 如同罗马不是一天建成的,任何系统都一定是从小系统不断发展成为大系统的,想要从一开始就把系统设计的足够完善是不可能的,相反的,我们应该关注当下的需求,然后再不断地对系统进行迭代。在代码层面,要求我们适当的对关注点进行抽象和隔离,在软件不断添加功能和特性时,依然能保持良好的结构和可维护性,同时允许第三方开发者对其功能进行扩展。在某些时候,软件设计者对扩展性的追求甚至超过了性能。原创 2024-09-11 08:54:22 · 905 阅读 · 0 评论 -
Dubbo服务端异步接口实践
有必要比较详细点的介绍下服务端的线程策略来加深用户在选择服务端异步的判断依据,同时有必要引出协程这一在服务端异步中常常会用到的“秘密武器”。原创 2024-09-10 19:55:24 · 645 阅读 · 0 评论 -
Dubbo URLBUS 模型
在不谈及 dubbo 时,我们大多数人对 URL 这个概念并不会感到陌生。统一资源定位器 (RFC1738――Uniform Resource Locators (URL))应该是最广为人知的一个 RFC 规范,它的定义也非常简单原创 2024-09-09 12:17:54 · 940 阅读 · 0 评论 -
Dubbo 一致性Hash负载均衡
Dubbo的Hash映射模型与大部分网上资料描述的环形队列Hash映射模型是存在一些区别的。于我而言,环形队列Hash映射模型,不足以让我对一致性Hash有足够彻底的了解。直到看懂了Dubbo的一致性Hash的实现,才觉得豁然开朗。原创 2024-09-07 20:07:08 · 1168 阅读 · 0 评论 -
Dubbo 如何连接异构微服务体系
Dubbo是一款 RPC 服务框架,提供了面向接口代理的服务编程模型,同时屏蔽了底层的远程通信细节,具备服务治理功能,例如:服务发现、流量调度等解决方案。原创 2024-08-16 17:26:47 · 887 阅读 · 0 评论 -
Dubbo 服务引用的过程和实现细节
在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的场景下使用,不适合在线上环境使用。因此,本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用过程中的一环,除此之外,服务消费者还需要经历 Invoker 创建、代理类创建等步骤。原创 2024-08-06 19:10:11 · 605 阅读 · 0 评论 -
Dubbo扩展点加载设计
Dubbo 的扩展点加载从 JDK 标准的 SPI (Service Provider Interface) 扩展点发现机制加强而来。Dubbo 改进了 JDK 标准的 SPI 的以下问题:- JDK 标准的 SPI 会一次性实例化扩展点所有实现,如果有扩展实现初始化很耗时,但如果没用上也加载,会很浪费资源。- 如果扩展点加载失败,连扩展点的名称都拿不到了。比如:JDK 标准的 ScriptEngine,通过 `getName()` 获取脚本类型的名称,但如果 RubyScriptEngine 因原创 2024-08-04 21:07:20 · 808 阅读 · 0 评论 -
Dubbo 服务自省架构设计
随着微服务架构的推广和普及,服务之间的耦合度在逐步降低。在演化的过程中,伴随着应用组织架构的变化以及基础设施的衍进,服务和应用之间的边界变得更为模糊。Java 作为一门面向对象的编程语言,Java 接口(interface)作为服务之间通讯的一等公民,配合文档(JavaDoc)便于开发人员理解和维护。基于相同的编程哲学,Apache Dubbo 作为传统的 RPC 服务治理框架,通过接口实现分布式服务。然而对于微服务治理而言,应用(或“服务”)才是基础设施的核心要素。面对云原生(Cloud Native)技原创 2024-08-01 21:29:17 · 487 阅读 · 0 评论 -
Dubbo 协议详解
SPICodec工作在一种协议上,encode是将通信对象编码到ByteBufferWrapper中,decode是将从网络上读取的ChannelBuffer解码为Object,也就是通信对象。原创 2024-07-01 12:19:56 · 1566 阅读 · 0 评论 -
Dubbo 如何自定义协议为业务通信带来扩展
RPC 协议扩展,封装远程调用细节。当用户调用refer()所返回的Invoker对象的invoke()方法时,协议需相应执行同 URL 远端export()传入的Invoker对象的invoke()方法。其中,refer()返回的Invoker由协议实现,协议通常需要在此Invoker中发送远程请求,export()传入的Invoker由框架实现并传入,协议不需要关心。协议不关心业务接口的透明代理,以Invoker为中心,由外层将Invoker转换为业务接口。原创 2024-07-01 12:18:05 · 693 阅读 · 0 评论 -
Dubbo 如何连接异构微服务体系
同构微服务体系企业内部的微服务都是基于相同服务框架开发研发的产品,比如全部采用 Dubbo微服务支撑产品。异构微服务体系公司微服务可能使用多个不同的服务框架所建设,多个不同技术栈微服务体系的共存在大型组织还是非常普遍,例如:Dubbo,Sofa-rpc, Brpc等造成异构形式的原因很多,可能是遗留系统带来的,也可能是公司正在做技术栈迁移,或者就是不同业务部门为了满足各自特殊需求而做的独立选型2.2 异构微服务共存。原创 2024-07-01 12:15:44 · 692 阅读 · 0 评论 -
Dubbo 服务引用的过程和实现细节
在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的场景下使用,不适合在线上环境使用。因此,本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用过程中的一环,除此之外,服务消费者还需要经历 Invoker 创建、代理类创建等步骤。本篇文章对服务引用的过程进行了较为详尽的分析,还有一些逻辑暂时没有分析到,比如 Directory、Cluster。原创 2024-07-01 12:13:57 · 715 阅读 · 0 评论