Dubbo
kwxyzk
这个作者很懒,什么都没留下…
展开
-
Dubbo源码解析之负载均衡
Dubbo源码解析之负载均衡Dubbo LoadBalance组件 为负载均衡组件,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在 Dubbo 中,所有负载均衡实现类均继承自 AbstractLoadBalance,该类实现了 LoadBalance 接口,并封装了一原创 2020-07-14 19:46:36 · 150 阅读 · 0 评论 -
Dubbo源码解析之TPS控制
Dubbo源码解析之TPS控制dubbo使用Filter,再调用服务前对对付进行tps的验证判断,在进行Dubbo服务调用TPS限制,主要委托TPSLimiter实现类进行TPS的限制。TPSLimiter,返回布尔值,以允许在最后一次调用和当前调用内允许对提供程序服务的方法或特定方法的调用。public interface TPSLimiter { /** * 根据规则判定当前invocation的url能否被调用 * * @param url原创 2020-07-14 10:39:00 · 271 阅读 · 0 评论 -
Dubbo源码解析之服务集群容错
Dubbo源码解析之服务集群容错集群容错包含四个部分,分别是服务目录 Directory、服务路由 Router、集群 Cluster 和负载均衡 LoadBalance。集群容错的所有组件服务目录 Directory服务目录中存储了一些和服务提供者有关的信息,通过服务目录,服务消费者可获取到服务提供者的信息,比如 ip、端口、服务协议等。通过这些信息,服务消费者就可通过 Netty 等客户端进行远程调用。在一个服务集群中,服务提供者数量并不是一成不变的,如果集群中新增了一台机器,相应地在服务目录原创 2020-07-13 18:08:24 · 205 阅读 · 0 评论 -
Dubbo源码解析之服务的引用
#Dubbo服务引用在Dubbo中提供者负责服务的导出和发布,而消费着负责订阅服务和服务的导入。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务,第二种方式是基于注册中心进行引用。Dubbo 服务引用的时机有两个,第一个是在 Spring 容器调用 ReferenceBean 的 afterPropertiesSet 方法时引用服务,第二个是在 ReferenceBean 对应的服务被注入到其他类中时引用。这两个引用服务的时机区别在于,第一个是饿汉式的,第二个是懒原创 2020-07-11 17:13:30 · 203 阅读 · 0 评论 -
Dubbo源码解析之自适应扩展机制
#Dubbo自适应扩展机制Dubbo设计时采用Microkernel + Plugin模式,Microkernel只负责组装Plugin,Dubbo自身的功能也是通过扩展点实现的,也就是Dubbo的所有功能点都可被用户自定义扩展所替换。 Dubbo 就是通过 SPI 机制加载所有的组件,不过,Dubbo 并未使用 Java 原生的 SPI 机制,而是对其进行了增强,使其能够更好的满足需求SPI 全称为 Service Provider Interface,是一种服务发现机制。SPI 的本质是将接口实现类原创 2020-07-09 19:12:00 · 501 阅读 · 0 评论 -
Dubbo源码解析之服务的导出
Dubbo服务的导出Dubbo 服务导出过程始于 Spring 容器发布刷新事件,Dubbo 在接收到事件后,会立即执行服务导出逻辑。整个逻辑大致可分为三个部分,第一部分是前置工作,主要用于检查参数,组装 URL。第二部分是导出服务,包含导出服务到本地 (JVM),和导出服务到远程两个过程。第三部分是向注册中心注册服务,用于服务发现。下边是Dubbo提供的一张服务导出的时序图,从图中我们可以大概的了解到Dubbo导出过程:下边我们大概了解一下源码的导出过程:当DubboBootstrap启动后进行服原创 2020-07-10 18:38:30 · 301 阅读 · 0 评论