Dubbo
文章平均质量分 79
以Dubbo 3.0为主干,深入刨析其源码!
legendaryhaha
legendaryhaha的博客
展开
-
Dubbo 3.2版本分析Provider启动时操作
在上一篇文章,我们分析了 Dubbo 3.2 版本在 Provider 启动前的操作流程,这次我们具体分析具体它的启动过程,揭开它的神秘面纱。原创 2024-01-21 21:30:26 · 1000 阅读 · 0 评论 -
Dubbo 3.2版本分析Provider启动前的前菜
一直以来对Dubbo的实现原理颇为好奇,前几个月在Dubbo专栏里也陆续写了几遍文章,奈何自身原因+客观原因,就没有坚持下来。这次重启Dubbo源码刨析系列,也刚好可以借着2023年7月发布的比较新的Dubbo 3.2版本源码进行学习研究,共勉!原创 2024-01-21 13:46:04 · 1066 阅读 · 0 评论 -
一次线上内存泄漏分析
Dubbo泛化调用导致的内存泄漏问题分析原创 2023-03-19 23:15:36 · 377 阅读 · 1 评论 -
【Nacos】生产上需要不重启服务的情况下刷新配置,这个方法可以试试
【Nacos】生产上需要不重启服务的情况下刷新配置,这个方法可以试试配置Demo搭建RefreshScope 原理假设Nacos服务已经搭建完成配置新建service-config配置文件,9d0c9401-f575-4427-a982-eb8637a652b0为区别命名空间的ID,自动生成。Demo搭建引入依赖<!-- nacos --> <dependency> <groupId>com.alibab原创 2021-05-23 22:18:41 · 6871 阅读 · 5 评论 -
Dubbo 睡前小故事系列之RandomLoadBalance
Dubbo 睡前小故事之RandomLoadBalance如何设计一个随机算法RandomLoadBalance关于ThreadLocalRandomRandomLoadBalance 是Dubbo的负载均衡提供的策略之一。如何设计一个随机算法答案很多~假如在这样一个场景,A、B、C、D四个物品权重分别为1、2、3、4,如何在考虑权重的情况下,设计一个随机获取某个物品的算法。有如下的方式:对四个物品做一次遍历,按序进行累加,用线段可表示如下,线段越长表示落入该区域的概率越大。然后随机获取一原创 2021-05-22 02:17:42 · 201 阅读 · 0 评论 -
Dubbo协议一览
Dubbo协议一览Dubbo协议报文关于全局请求id在Dubbo里头,对多个协议进行了支持。如:DubboProtocol、GRpcProtocol、RmiProtocol、HessianProtocol、HttpProtocol、WebService、ThriftProtocol等多种协议。本文主要探探Dubbo协议的庐山真面目。Dubbo协议报文如图所示:整个协议的设计参考了TCP/IP协议,协议的报文大小为16字节,内容包含了魔法数、报文的类型(request|response),全原创 2021-04-18 16:35:41 · 1237 阅读 · 2 评论 -
Dubbo初窥工作流程
服务提供者注册服务当服务启动时,先初始化服务实例,再通过Proxy组件调用具体协议(Protocol ),把服务端要暴露的接口封装成Invoker ,然后转换成Exporter,这个时候框架会打开服务端口等并记录服务实例到内存中,最后通过Registry把服务元数据注册到注册中心。Proxy:服务代理层。在使用Dubbo中,我们发现无论是服务端或是消费端,都不用像编写socket那样一个暴露并监听地址端口,一个订阅对应的地址端口。而这得益于Proxy通过事先约好的配置规则帮我们生成一层代理。Invo原创 2021-04-11 18:49:58 · 251 阅读 · 0 评论 -
Dubbo结构浅析
Dubbo结构浅读服务提供者注册服务服务消费者订阅服务消费者和服务提供者的交互文中图所悟所感皆从《深入理解Apache Dubbo与实战》一书书所获。源码获取:git clone https://github.com/apache/incubator-dubbo.git服务提供者注册服务当服务启动时,先初始化服务实例,再通过Proxy组件调用具体协议(Protocol ),把服务端要暴露的接口封装成Invoker ,然后转换成Exporter,这个时候框架会打开服务端口等并记录服务实例到内存原创 2021-04-10 16:51:37 · 170 阅读 · 4 评论 -
Dubbo 泛化调用
dubbo 泛化调用含义使用含义官方说的文邹邹的,不太懂。按我的理解,就是可以通过指定某个接口的全限定名和方法名,调用远程有提供该方法的服务。通过上篇文章Dubbo入门,我们可以知道作为服务的提供者和客户端都要引入一个facade的接口,如果facade提供了n个方法,对于客户端来说,这个n个方法都是可以知道的。如果我只想让客户端知道某个方法就好,此时除了再拆解出一个facade接口,还有一种方法就是使用泛化调用。另一个好处,如果facade除了定义了一下接口,还有很多vo实体,此时对于客户端都来原创 2021-03-28 21:56:34 · 485 阅读 · 0 评论 -
Dubbo 入门
Dubbo 入门Dubbo是什么Dubbo可以做什么Duboo如何使用Dubbo官方文档Dubbo源码Dubbo是什么个人理解中,Dubbo其实就是是一个用于服务治理的RPC框架。再进一步理解,即需要明白何为服务治理?何为RPC框架?何为服务治理?当一个服务为了应对访问压力等问题时,可以通过拆分的方式将服务划分成多个微服务,但随之而来的问题是:如果多个服务之间需要相互依赖,服务 URL 配置管理变得非常困难。甚至分不清哪个应用要在哪个应用之前启动哪个服务面临的访问压力比较大?是否需要加机原创 2021-03-21 23:19:35 · 191 阅读 · 0 评论