深入理解Apache Dubbo
文章平均质量分 56
Java微服务架构主流一分为二,Dubbo+Zookeeper为老一派的技术架构,Spring Cloud全家桶为新的技术架构,二者各有优缺点
wondream322
这个作者很懒,什么都没留下…
展开
-
Dubbo注册中心(三)—— 设计模式
设计模式Dubbo注册中心拥有良好的扩展性, 用户可以在其基础上, 快速开发出符合自己业务需求的注册中心。 这种扩展性和Dubbo中使用的设计模式密不可分, 本节将介绍注册中心模块使用的设计模式。一、模板模式整个注册中心的逻辑部分使用了模板模式, 其类的关系如下图所示 AbstractRegistry实现了 Registry接口中的注册、 订阅、 查询、 通知等方法, 还实现了磁盘文件持久化注册信息这一通用方法。 但是注册、 订阅、 查询、 通知等方法只是简单地把URL加入对应的集合,..原创 2021-06-07 15:55:43 · 33493 阅读 · 1 评论 -
Dubbo注册中心(二)—— 订阅/发布
订阅/发布是整个注册中心的核心功能之一当一个已有服务提供者节点下线, 或者一个新的服务提供者节点加入微服务环境时, 订阅对应接口的消费者和服务治理中心都能及时收到注册中心的通知, 并更新本地的配置信息。 如此一来, 后续的服务调用就能避免调用已经下线的节点, 或者能调用到新的节点。 整个过程都是自动完成的, 不需要人工参与。Dubbo在上层抽象了这样一个工作流程, 但可以有不同的实现。 本章主要讲解ZooKeeper和Redis的实现方式。ZooKeeper 的实现1、发布的实现服务提供者和原创 2021-06-07 15:24:12 · 33911 阅读 · 1 评论 -
Dubbo注册中心(一)——概述
Dubbo微服务体系中, 注册中心是其核心组件之一。 Dubbo通过注册中心实现了分布式环境中各服务之间的注册与发现, 是各个分布式节点之间的纽带。 其主要作用如下:1、动态加入。 一个服务提供者通过注册中心可以动态地把自己暴露给其他消费者, 无须消费者逐个去更新配置文件2、动态发现。 一个消费者可以动态地感知新的配置、 路由规则和新的服务提供者, 无须重启服务使之生效。3、动态调整。 注册中心支持参数的动态调整, 新参数自动更新到所有相关服务节点。4、统一配置。 避免了本地配置导致每个服务原创 2021-06-03 18:17:20 · 35575 阅读 · 0 评论 -
Spring整合Dubbo简易教程(三)——基于API实现
基于API实现Dubbo框架大部分场景都会在Spring中使用, 但是不局限于这种场景。 除了基于XML和注解的方式, Dubbo框架还支持API的方式。 虽然大部分场景不会直接使用API的方式暴露和消费服务, 但是在某些场景下API非常有用。 比如开发网关类的应用, 需要动态消费不同版本的服务, 通过API方式, 可以根据前端请求参数动态构造不同版本的服务实例等一、基于API编写Echo服务器基于配置方式启动Dubbo,框架内部必须做很多转换, 比如把标签<dubbo:protocol原创 2021-06-03 17:33:42 · 33343 阅读 · 0 评论 -
Spring整合Dubbo简易教程(二)——基于注解实现
基于注解实现 通过XML配置启动Dubbo服务是比较常见的方式, 但Dubbo可以消除XML配置, 直接使用注解来暴露服务, 这种方式更友好一些, 虽然业务代码会耦合一些Dubbo框架注解, 但是未来代码重构比较便利一、基于注解编写Echo服务器通过注解暴露服务, 只需要在要服务接口上标注旧Service注解即可,代码 如下:代码清单 基于注解标记服务package com.wondream.dubbo.samples.echo.impl;import com.aliba...原创 2021-06-03 17:22:49 · 33481 阅读 · 0 评论 -
Spring整合Dubbo简易教程(一)-基于XML配置实现
在本系列教程中, 我们会动手实践快速构建一个完整的服务器和客户端程序。 应用程序很简单:服务器会接收客户端发来的消息, 然后将消息不做任何处理返回给客户端。 通过本示例程序来帮助读者熟悉Dubbo框架。 应用程序可以通过XML、 注解和API这3种方式来编写, 本节教程主要介绍基于XML的实现。 所有的Dubbo服务接口都可以直接通过配置对外暴露, 但用户不需要额外编写服务暴露的代码, 因为这些都被Dubbo框架隐藏了, 用于降低框架使用门槛, 用户只需要专注以下内容: • 关注业...原创 2021-06-03 16:57:27 · 33913 阅读 · 0 评论 -
Dubbo消费者调用服务提供者的总体流程
Dubbo组件调用总体流程如图首先, 调用过程也是从一个Proxy开始的, Proxy持有了一个Invoker对象。 然后触发invoke调用。 在invoke调用过程中, 需要使用Cluster, Cluster负责容错, 如调用失败的重试。 Cluster在调用之前会通过Directory获取所有可以调用的远程服务Invoker列表(一个接口可能有多个节点提供服务) 。 由于可以调用的远程服务有很多, 此时如果用户配置了路由规则(如指定某些方法只能调用某个节点) , 那么还会.原创 2021-05-10 18:01:33 · 8195 阅读 · 1 评论 -
Dubbo负载均衡策略
随机 Random LoadBalance轮询 RoundRobin LoadBalance最少活跃调用数 LeastActive LoadBalance一致性Hash ConsistentHash LoadBalance负载均衡的使用@Reference(version = "1.0.0", loadbalance = "roundrobin")...原创 2021-04-23 08:40:51 · 83 阅读 · 0 评论 -
Dubbo架构
节点角色说明 节点 角色说明 Provider 暴露服务的服务提供方 Consumer 调用远程服务的服务消费方 Registry 服务注册与发现的注册中心 Monitor 统计服务的调用次数和调用时间的监控中心 Container 服务运行容器 主要环节 start0.原创 2021-04-22 13:36:22 · 8244 阅读 · 0 评论 -
史上最全 40 道 Dubbo 面试题及答案,看完碾压面试官!
想往高处走,怎么能不懂 Dubbo?Dubbo是国内最出名的分布式服务框架,也是 Java 程序员必备的必会的框架之一。Dubbo 更是中高级面试过程中经常会问的技术,无论你是否用过,你都必须熟悉。下面我为大家准备了一些 Dubbo 常见的的面试题,一些是我经常问别人的,一些是我过去面试遇到的一些问题,总结给大家,希望对大家能有所帮助。1、Dubbo是什么?Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。面试官问你如果这转载 2021-03-18 18:01:19 · 33707 阅读 · 0 评论 -
深入理解Apache Dubbo(Dubbo总体大图)
https://github.com/apache/dubboDubbo总体分层Dubbo总体可以分为业务层(Biz)、RPC层、Remote层。如果把每一层继续细化,那么一共可以分为十层。其中Monitor在最新的官方PPT中并不再作为单独的一层。Service和Config两层可以认为是API层,主要提供给API使用者,使用者无须关心底层的实现,只需要配置和完成业务代码即可;后面所有的层级合在一起,可以认为是SPI层,主要提供给扩展者使用。Tips:SPI,全称为 Servic.原创 2021-01-03 10:56:13 · 35418 阅读 · 0 评论