Dubbo
文章平均质量分 77
dubbo学习进阶
程铭程铭你快成名
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Dubbo ScopeModel 的设计思想
抽象这三个能力是为了实现 Dubbo 的多实例支持原创 2022-11-11 11:40:09 · 1559 阅读 · 2 评论 -
Proxyless Mesh 在 Dubbo 中的实践(实战篇)
Proxyless Mesh 在 Dubbo 中的实战指南原创 2022-09-02 16:48:43 · 974 阅读 · 0 评论 -
Proxyless Mesh 在 Dubbo 中的实践(原理篇)
Proxyless Mesh在Dubbo中的实践原创 2022-09-02 16:28:57 · 953 阅读 · 2 评论 -
聊聊Dubbo的注册中心、配置中心以及元数据中心
了解Dubbo的部署架构可以帮助我们更深入的理解Dubbo,先来看一张官网的图片这张图应该是非常经典的一张图了,从dubbo问世以来一直都没有怎么变过,从上图中可以清晰的看到dubbo作为一个微服务框架,注册中心是至关重要的,主要负责协调 Consumer 与 Provider 之间的地址注册与发现。除此之外dubbo还有配置中心和元数据中心。配置中心主要负责存储 Dubbo 启动阶段的全局配置,保证配置的跨环境共享与全局一致性以及负责服务治理规则(路由规则、动态配置等)的存储与推送元数据中心主要原创 2022-02-07 15:52:58 · 2611 阅读 · 0 评论 -
聊聊Dubbo3应用级服务发现模型
什么是服务发现服务发现,即消费端自动发现服务地址列表的能力,是微服务框架需要具备的关键能力,借助于自动化的服务发现,微服务之间可以在无需感知对端部署位置与IP地址的情况下实现通信。实现服务发现的方式有很多种,Dubbo 提供的是一种 Client-Based 的服务发现机制,通常还需要部署额外的第三方注册中心组件来协调服务发现过程,如常用的 Nacos、Zookeeper等,Dubbo 自身也提供了对多种注册中心组件的对接,用户可以灵活选择。Dubbo 基于消费端的自动服务发现能力,其基本工作原理如下原创 2022-01-19 18:12:25 · 1262 阅读 · 0 评论 -
深入解析Dubbo3.0服务端暴露全流程
原文链接:https://mp.weixin.qq.com/s/nEhvPl7IWlQU2VfpXwZtOw背景随着云原生时代的到来,Dubbo3.0的一个很重要的目标就是全面拥抱云原生。正因如此,Dubbo3.0为了能够更好的适配云原生,将原来的接口级服务发现机制演进为应用级服务发现机制。基于应用级服务发现机制,Dubbo3.0能大幅降低框架带来的额外资源消耗,大幅提升资源利用率,主要体现在:单机常驻内存下降 75%能支持的集群实例规模以百万计的集群注册中心总体数据量下降超 90%目前关转载 2021-09-17 22:16:49 · 2932 阅读 · 0 评论 -
Apache Dubbo 3.0.0 正式发布 - 全面拥抱云原生
本文转载自微信公众号「阿里巴巴中间件」:https://mp.weixin.qq.com/s/5loawrCyKmN4HhK1lzy0Rw转载 2021-07-13 17:40:19 · 2977 阅读 · 1 评论 -
Dubbo进阶(十五):Dubbo总结
最近针对Dubbo中核心的知识点做了一次系统的学习,现对本次学习Dubbo的过程做一次总结。Dubbo的定位Dubbo的定位是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。Dubbo产生的背景随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将原创 2020-06-17 21:11:09 · 10307 阅读 · 2 评论 -
Dubbo进阶(十四):Router的实现
首先我们依然再看一遍Dubbo调用的流程Router是什么Router是一种约定的规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。比如服务A配置了调用的服务的IP是192.168.1.1,那么路由会过滤到除192.168.1.1之外的所有的服务,只会返回192.168.1.1。通常服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在Dubbo 2.7.x的版本中,路由包含了条件路由、脚本路由、文件路由原创 2020-06-11 09:53:51 · 10556 阅读 · 0 评论 -
Dubbo进阶(十三):Directory的实现
首先通过UML来看下Directory的层级结构从这个UML图上可以看到,依然使用了模板模式。AbstractDirectory是一个抽象类,封装了通用逻辑,最重要的有list方法,用于返回所有可用的list,它会调用doList方法,doList是一个抽象方法,在不同的子类会有不同的实现。public List<Invoker<T>> list(Invocation invocation) throws RpcException { if (destroyed) {原创 2020-06-07 22:32:20 · 9545 阅读 · 0 评论 -
Dubbo进阶(十二):负载均衡
Dubbo中实现了五种负载均衡的算法,先看一下UML图。原创 2020-05-26 11:31:07 · 10260 阅读 · 3 评论 -
Dubbo进阶(十一):容错机制
在集群调用失败时,Dubbo提供了多种容错方案,默认值为failover重试。Dubbo中现在有Failover、Failfast、Failsafe、Failback、Forking、Broadcast等容错机制,每个容错机制的特性如下表。机制名机制简介FailoverDubbo容错机制的默认值。当出现失败的时候,会尝试其他服务。用户可以通过retries="2"设置重试次数。这是Dubbo的默认容错机制,会对请求做负载均衡。通常使用在读操作或者幂等性写操作上,但是重试操作会导致接口原创 2020-05-25 17:36:03 · 10586 阅读 · 0 评论 -
Dubbo进阶(十):心跳机制
Dubbo客户端和Dubbo服务端之间存在心跳,目的是维持provider和consumer之间的长链接。由Dubbo客户端主动发起,可参见Dubbo源码 HeartbeatTimerTask。Dubbo心跳时间heartbeat默认是60s,超过heartbeat时间没有收到消息,就发送心跳消息(provider,consumer同样),若是连着3次(heartbeatTimeout为heartbeat*3)没有收到心跳响应,provider会关闭channel,而consumer会进行重连;不管是pr原创 2020-05-20 18:00:47 · 11570 阅读 · 2 评论 -
Dubbo进阶(九):服务消费原理
之前在服务暴露原理中讲解了Dubbo是如何暴露服务的,这篇博客针对Dubbo消费原理一探究竟,主要从以下几个方面进行分析:注册中心的暴露;通过注册中心进行服务消费通知;直连服务进行消费。服务消费端的详细过程服务消费端启动时,将自身的信息注册到注册中心的目录,同时还订阅服务提供方的目录,当服务提供方的 URL 发生更改时,实时获取新的数据。上图中可以看到,服务消费的流程与服务暴露的流程有点类似逆向的。从整体来看,Dubbo做服务消费也分为两大部分,第一步通过持有远程服务实例生成Invoker原创 2020-05-17 22:49:02 · 10242 阅读 · 0 评论 -
Dubbo进阶(八):服务暴露原理
在了解Dubbo服务暴露原理之前,我们先简单的了解一下Dubbo配置信息的默认策略和优先级:-D传递给JVM参数优先级最高,比如-Ddubbo.protocol.prot=20880代码或者XML配置优先级次高,比如Spring中XML文件指定<dubbo:protocol.port="20880"/>配置文件优先级次最低,比如dubbo.properties文件指定dubbo.protocol.port=20880。一般推荐使用dubbo.properties作为默认值,只有XML没有原创 2020-05-17 18:37:46 · 11170 阅读 · 0 评论 -
Dubbo进阶(七):Dubbo扩展点加载机制(下)
在上一篇文章Dubbo进阶(六):Dubbo扩展点加载机制(中)中介绍了扩展点机制的一些注解,这篇文章主要通过源码来学习一下ExtensionLoader的原理。ExtensionLoader是整个扩展机制的主要逻辑,在这个类里实现了配置的加载、扩展类缓存、自适应对象生成等所有工作。ExtensionLoader的工作流程ExtensionLoader的逻辑入口可以分为getExtension...原创 2020-05-07 18:45:07 · 1424 阅读 · 0 评论 -
Dubbo进阶(六):Dubbo扩展点加载机制(中)
在上一篇文章Dubbo进阶(五):Dubbo扩展点加载机制(上)中对比介绍了Java SPI和Dubbo SPI,这边文章主要讲解一下Dubbo SPI机制的一些注解。@SPI注解@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})public @interface SPI { /**...原创 2020-04-28 15:50:19 · 1529 阅读 · 0 评论 -
Dubbo进阶(五):Dubbo扩展点加载机制(上)
Dubbo的扩展点加载机制类似于Java的SPI加载机制,但是Java的SPI加载机制在查找具体某个实现的时候,只能通过遍历进行查找并会实例化所有实现类,因此对于实际不需要加载的扩展实现也会实例化,造成一定的内存浪费。Dubbo SPI加载机制可通过扩展点名称进行查找,避免实例化所有实现;同时,增加了对扩展点IoC和AOP的支持,一个扩展点实现可以注入其他扩展点实现并进行Wrapper包装。在了...原创 2020-04-27 18:25:00 · 1896 阅读 · 3 评论 -
Dubbo进阶(四):Dubbo注册中心
在Dubbo微服务体系中,注册中心是其核心的组件之一。Dubbo通过注册中心实现了分布式环境中各服务之间的注册与发现,是各个分布式节点之间的纽带。主要作用有:动态加入:一个服务提供者通过注册中心可以动态的把自己暴露给其他消费者,无需消费者逐个去更新配置文件。动态发现:一个消费者可以动态感知新的配置、路由规则和新的服务提供者,无需重启服务使之生效。动态调整:注册中心支持参数的动态调整,新参数...原创 2020-04-22 11:14:03 · 2286 阅读 · 0 评论 -
Dubbo进阶(三):SpringBoot整合Dubbo构建分布式服务
Dubbo官方文档中提到有三种方式来开发Dubbo的应用程序,分别是基于XML配置实现继续注解实现(常用 / 推荐)基于API实现鉴于我们平时开发过程中用Spring Boot比较多,所以本篇博客以Spring Boot为例,整合Dubbo来构建一个简单的分布式服务。前期准备本文用的注册中心是zookeeper,所以需要下载并安装zookeeper。安装zookeeper的示例网上...原创 2020-04-21 23:23:30 · 11624 阅读 · 4 评论 -
Dubbo进阶(二):Dubbo是什么
在当今微服务盛行的大环境下,设计一套高并发、高可扩展、自动容错和高可用的分布式系统无疑是离不开一套优秀的RPC框架的。Dubbo是阿里开源的RPC框架,在市场上众多RPC框架中是最受欢迎的,各大公司也都争相拥抱和使用。Dubbo的架构图图片来自Dubbo官网,各个角色说明如下:角色角色说明Provider暴露服务的服务提供方Container服务运行容器...原创 2020-04-15 16:40:35 · 1694 阅读 · 0 评论 -
Dubbo进阶(一):RPC和RESTful
想要比较清楚的了解RPC和REST API的区别,我们先来了解一下网络的七层模型。OSI网络模型图片来自网络我们可以清楚的看到OSI模型一共有七层,从上到下分别是:第一层应用层。定义了用于在网络中进行通信和传输数据的接口;第二层表示层。定义不同的系统中数据的传输格式,编码和解码规范等;第三层会话层。管理用户的会话,控制用户间逻辑连接的建立和中断;第四层传输层。管理着网络中的端到端...原创 2020-04-14 17:07:41 · 2655 阅读 · 2 评论
分享