Dubbo快速入门(一):分布式与微服务、Dubbo基本概念

Dubbo原理和机制详解(非常全面) 最全图文详解Dubbo的原理机制,彻底搞懂吃透Dubbo核心功能、Dubbo核心组件、Dubbo的架构设计、Dubbo调用流程等重要核心知识点,可以让我们更好地掌握和使用 Dubbo。。 阅读详情

一、分布式与微服务概念

1.大型互联网架构目标

  • 传统项目和互联网项目的区别:
    传统项目用户:企业员工
    互联网项目:网民

在互联网时代,随着用户基数的急剧增长和技术的不断进步,互联网项目与传统项目相比有了显著的区别。互联网项目主要面向广泛的网民群体,而传统项目则更多服务于特定的企业内部员工。因此,互联网项目更加注重用户体验,包括界面的美观度、功能的丰富性、加载的速度以及系统的稳定性。

用户体验: 关注美观、功能、速度、稳定性。

  • 衡量网站的性能指标:
    • 响应时间: 指执行一个请求从开始到最后收到响应数据所花费的总体时间。
    • 并发数: 指系统同时能处理的请求数量。
    • 并发连接数: 指的是客户端向服务器发起请求,并建立了TCP连接,每秒钟服务器连接的总TCP数量。
      • 请求数: 指每秒请求数(QPS)。请求数>=并发连接数
      • 并发用户数: 单位时间内有多少用户访问。
      • 吞吐量: 指单位时间内系统能处理的请求数量。
    • QPS: 每秒查询书。
    • TPS: 每秒事务数。一个事务是指一个客户机向服务器发送请求然后服务器做出反应以及客户机收到反应的过程。
    • 高性能: 提供快速的访问体验。
    • 高可用: 网站服务一直可以正常访问。
    • 可伸缩: 通过硬件增加/减少,提高/降低处理能力。
    • 高可扩展: 系统间耦合低,可以很方便地新增/移除功能/模块。
    • 安全性: 提供网站安全访问和数据加密,安全存储等策略。
    • 敏捷性: 随需应变,快速响应。

2.集群和分布式

在互联网架构中,为了实现上述目标,通常会采用集群和分布式计算的技术方案。通过集群,可以将多台服务器组合成一个整体来提供服务,从而达到负载均衡和故障冗余的目的。而分布式计算则是将任务分散到多台计算机上并行处理,进一步提高系统的处理能力和效率。

(1)集群 (Cluster)

集群是指一组协同工作的计算机节点,它们作为一个整体对外提供服务。集群技术主要用于解决单点故障问题,提高系统的可靠性和可用性,同时也能通过负载均衡来提升系统的处理能力。在互联网应用中,常见的集群类型包括:

  • Web服务器集群:通过负载均衡器将请求分发给多个Web服务器实例,以分散请求压力,提高响应速度。
  • 数据库集群:采用主从复制或多主复制模式,确保数据的一致性和可靠性,同时支持读写分离,增强数据库的处理能力。
  • 缓存集群:利用分布式缓存技术,如Redis Cluster或Memcached,加速数据读取速度,减轻后端数据库的压力。

(2)分布式计算 (Distributed Computing)

分布式计算是一种计算模型,其中多台计算机通过网络连接,共同完成一项任务。每台计算机称为节点,它们之间通过消息传递进行通信和协作。分布式计算的核心优势在于能够充分利用网络中各节点的计算资源,实现大规模数据处理和复杂任务的并行执行。在互联网架构中,分布式计算的应用非常广泛,例如:

  • 分布式文件系统:如Hadoop HDFS,用于存储海量数据,支持数据的高可靠性和高可扩展性。
  • 分布式数据库:如Cassandra和MongoDB,设计用于处理大规模数据集,支持水平扩展和高并发访问。
  • 分布式消息队列:如Kafka和RabbitMQ,用于异步处理数据流,实现系统间的解耦,提高系统的稳定性和响应速度。
  • 分布式计算框架:如Apache Spark和Flink,用于执行复杂的分析任务,支持实时数据处理和机器学习算法。

(3)集群与分布式的关系

虽然“集群”和“分布式”这两个术语经常被一起提及,但它们侧重的方面有所不同:

  • 集群更关注于如何将多台机器组织起来,共同提供服务,重点在于提高系统的可用性和性能。
  • 分布式则更强调如何将一个任务分解为多个子任务,由网络中的多个节点并行处理,重点在于数据的分布存储和计算任务的并行执行。

然而,在实际应用中,两者往往是相辅相成的。例如,在一个分布式系统中,为了提高系统的可用性和性能,通常会采用集群技术来部署关键组件,如Web服务器、数据库和缓存等。同样,一个集群系统也可能需要使用分布式计算技术来处理大规模数据和复杂任务。

(4)实践中的应用案例

  • 电商网站:在大型促销活动期间,电商平台需要处理巨大的流量。通过将Web服务器、数据库和缓存部署为集群,可以有效地分担请求压力,确保系统的稳定运行。同时,使用分布式消息队列处理订单和物流信息,可以提高系统的响应速度和处理能力。
  • 大数据平台:在处理PB级别的数据时,分布式文件系统和分布式计算框架是必不可少的工具。通过将数据切片存储在多台机器上,并利用MapReduce等算法并行处理数据,可以大幅缩短数据处理的时间。

3.架构演进

单体架构 -> 垂直架构 -> 分布式架构 -> SOA架构 -> 微服务架构

(1)单体架构

应用、数据管理和静态文件都集中在一个应用上

在这里插入图片描述

  • 单体架构: 把所有模块放在一起的应用。
    • 优点:开发和部署都简单方便
    • 缺点:项目启动型慢,可靠性差,扩展性、可维护性、可伸缩性都差,性能不好

(2)垂直架构

拆分数据库和静态文件,应用只需要关注业务逻辑

在这里插入图片描述

  • 垂直架构: 将单体架构中的多个模块拆分成多个独立的项目。
    • 优点:从一定程度上解决了单体结构可靠性差,扩展性、可维护性、可伸缩性都差,性能不好的问题。
    • 缺点:重复的功能太多。

(3)分布式架构

在垂直架构的基础上抽象出公共服务

在这里插入图片描述

  • 分布式架构: 在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用。通过RPC协议来进行服务彼此的调用。
    • 优点:解决了垂直架构重复功能太多的问题。
    • 缺点:服务提供方一旦产生变更,所有消费方都需要变更。

(4)SOA架构

在这里插入图片描述

  • SOA架构: SOA,即Service-Oriented Architecture,面向服务的架构,是一个组件模型,将应用程序拆分成不同的服务,并根据接口和契约将这些服务联系起来。
    • ESB:Enterprise Service Bus,企业服务总线,服务中介,主要是提供了一个服务于服务之间的交互。提供了负载均衡、流量控制、加密处理、服务监控、异常处理、监控报告等功能。

(5)微服务架构

  • 微服务架构: 在SOA上进行了升级。业务彻底地组件化和服务化,原有的单个业务系统拆分为多个可以独立开发、设计、运行的小应用。小应用之间通过服务完成交互和集成。
    • 特点:
      • 服务组件化,开发者可以自由选择开发技术,也不需要协调其他团队;
      • 服务间交互一般使用Rest API;去中心化,每个微服务都有自己私有的数据库持久化业务数据;
      • 各个微服务可以很方便很独立地自动化部署、测试、运维。

在这里插入图片描述

Dubbo是一种广泛使用的Java RPC框架,它诞生于SOA时代,而Spring Cloud则是微服务架构下的一套解决方案,它们分别代表了两个不同阶段的技术实践。

二、Dubbo基本概念

阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架,后被Apache收购。

  • 架构:

在这里插入图片描述

Service Provider:服务提供者,负责实现业务逻辑并将服务注册到注册中心。
Registry:注册中心,管理服务提供者和消费者的地址列表及状态。
Service Consumer:服务消费者,通过注册中心发现服务并发起远程调用。

1. 核心组件

Dubbo 的架构主要包括以下几个核心组件:

  • Provider(服务提供者):暴露服务的服务提供方,负责实现服务,并将服务注册到注册中心。
  • Consumer(服务消费者):调用远程服务的服务消费方,通过注册中心发现服务,并发起远程调用。
  • Registry(注册中心):管理服务提供者和消费者的地址列表及状态,支持服务的动态注册与发现。常见的注册中心实现有 ZooKeeper、Nacos 等。
  • Monitor(监控中心):收集服务调用的统计信息,如调用次数、成功率、平均耗时等,用于服务治理和性能优化。
  • Container(容器):服务运行的容器,如 Spring 容器、Jetty 容器等,负责启动和管理服务提供者和消费者。

2. 工作流程

  1. 服务提供者启动:

    • 服务提供者启动时,会将自身的服务地址和接口信息注册到注册中心。
    • 注册中心会维护一个服务提供者的列表,记录每个服务的地址、版本号等信息。
  2. 服务消费者启动:

    • 服务消费者启动时,会从注册中心订阅所需的服务。
    • 注册中心会将服务提供者的地址列表推送给服务消费者,并在服务提供者列表发生变化时通知消费者。
  3. 服务调用:

    • 服务消费者通过本地代理对象(Stub)调用远程服务。
    • 本地代理对象通过网络将请求发送到服务提供者。
    • 服务提供者接收到请求后,执行业务逻辑并返回结果。
    • 结果通过网络返回给服务消费者,服务消费者通过本地代理对象获取到结果。
  4. 监控:

    • 监控中心会收集服务调用的统计信息,如调用次数、成功率、平均耗时等。
    • 监控中心可以用于服务治理和性能优化,帮助管理员及时发现和解决问题。

3. 主要特性

  • 透明化的远程方法调用:开发者只需编写本地方法调用的代码,无需关心底层的网络通信细节。
  • 智能容错和负载均衡:Dubbo 提供了多种负载均衡策略(如随机、轮询、最少活跃调用数等),并在服务调用失败时自动切换到其他服务提供者。
  • 服务自动注册与发现:服务提供者和消费者通过注册中心进行服务的注册和发现,简化了服务的管理和维护。
  • 高性能:Dubbo 使用 Netty 作为网络通信框架,支持高效的异步非阻塞 I/O 操作。
  • 丰富的配置管理:支持多种配置方式(如 XML、注解、API 等),方便开发者根据需求进行配置。
Dubbo分布式服务框架入门(附工程) 本文介绍了dubbo的一些概念,并对zookeeper、dubbo-admin、提供者、消费者的搭建进行了详细的讲解,且附有工程源码 阅读详情

相关推荐

Dubbo2.x快速入门

Apache Dubbo 是一款易用、高性能的 WEB 和 RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能力、工具与最佳实践。

白豆五的博客 1207

Dubbo入门---搭建一个最简单的Demo框架

Dubbo背景和简介Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起。 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本。 缺点:单一的系统架构,使得在开发过程中,占用的资源越来越多,而且随着流量的增加越来越难以维护 垂直应用框架(MVC) 垂直应用架构解决了单一应用架构所面临的扩容问题,流量能够分散到各个子系统当中,且

noaman_wgs的博客 51万+

厚积薄发打卡Day66 :【itheima】Dubbo快速入门(上)<从分布式到Dubbo搭建>

1.分布式相关概念 1.1 互联网项目架构-特点 互联网项目架构-特点 用户多 流量大,并发高 海量数据 易受攻击 功能繁琐 变更快 传统项目和互联网项目的不同 用户体验: 美观、功能、速度、稳定性 衡量一个网站速度是否快: 打开一个新页面一瞬间完成;页面内跳转,刹那间完成。 根据佛经《僧衹律》记载: 一刹那者为一念,二十念为一 瞬,二十瞬为一 弹指,二十弹指为一罗预, 二十罗预为一须臾,一日一夜有三十须臾。 换算一下:以一天24小时为标准倒推 须臾:24/30 = 0

COOLGWAYNE_TECH_BLOG 326

dubbo使用教程(可直接应用于企业开发)

本dubbo使用教程基于zookeeper-3.4.9搭建,包含服务提供者DubboProvider、和消费者DubboConsumer,可直接在Tomcat上运行。DubboProvider对外开放2个接口,DubboConsumer调用DubboProvider,并对外暴露HTTP服务。DubboProvider还提供了对数据库的操作,基于SpringJDBC并加入了RowMapper通用类,

zxiaofan.com 4万+

JS+H5打字练习器

实现功能 1.导入.TXT文件到打字练习内容(部分浏览器可能出于安全问题限制了这一步操作) 2.输入文本到打字练习内(弹出输入框,将要练习的内容输入至输入框) 3. 开始练习,并根据正误在打字练习内容文本上修改颜色(某个字正确显示绿色,某个字错误,显示红色,某个字没有打显示灰色) 4.开始练习、结束练习,全部输入完成后自动结束练习,也可提前手动结束练习,结束练习后弹窗用显示时和正确率。(区别在于一个全部输入完成且全部正确,一个提前结束无其他条件) 效果图 分析 HTML 结构解析 根元素:<!DO

w11111xxxl的博客 1413

保姆级教程:用BIGEMAP和Global Mapper搞定5米精度DEM高程数据下载与处理

本文提供了一份详细的5米精度DEM高程数据处理教程,涵盖从BIGEMAP下载到Global Mapper处理的完整流程。通过实战案例和避坑指南,帮助用户掌握高效下载DEM数据、优化等高线生成及坐标系转换的关键技巧,适用于GIS新手和专业人士。

weixin_34169322的博客 390

Dubbo(从入门到掌握)看完这一篇就够了

Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。

西敏寺的乐章的博客 2万+

ANSYS Help USER300

USER 300概述单元描述输入数据假设与限制条件 概述 单元描述 Mechanical APDL提供了一种方便的方法来创建自定义的单元,命名为USER300,可以创建几乎任何单元类型。 UserElem子程序为Mechanical APDL在单元类型创建上提供了一个接口,可传递用户自定义单元创建时所需的所有数据,然后从自定义单元返回所有数据和结果,以更新数据库和文件。因为通过接口可以访问数据库和文件信息,所以很少需要了解Mechanical APDL数据库程序和文件结构。该接口还提供了获取Mechanic

weixin_47019765的博客 2233

dubbo快速入门

dubbo笔记1 分布式与集群2 架构演进2.1 单体架构2.2 垂直架构2.3分布式架构2.4 SOA架构2.5 微服务架构3 Dubbo3.1 Duboo概述3.2 Duboo架构 1 分布式与集群 分布式:一个业务拆分为多个子业务,部署在多个服务器上 。 集群:同一个业务,部署在多个服务器上 。 2 架构演进 单体架构 、垂直架构、分布式架构、SOA架构 2.1 单体架构 优点:开发部署方便,小型项目首选 缺点:项目启动慢、可靠性差,可伸缩性差、扩展性和可维护性差。 2.2 垂直架构 可以理解为将单

xuwenze的博客 515

BitLocker加密盘解密实战:从隐藏分区到密钥恢复的全过程

本文深入探讨了BitLocker加密盘在密钥丢失或遗忘情况下的解密实战方法。文章系统性地介绍了从理解加密机制、制作取证镜像,到深度扫描隐藏分区、分析内存转储寻找密钥残留,最终利用恢复密钥解锁加密卷的全过程。重点剖析了非标准恢复路径,为数据恢复和数字取证工作提供了专业的技术框架和实战思路。

weixin_29268385的博客 333

告别Windows!Oculus Quest 2在Mac M1上的串流实战(scrcpy+SideQuest避坑指南)

本文为Mac M1用户提供了Oculus Quest 2在macOS上实现高清低延迟串流的实战指南。通过使用开源工具scrcpy和SideQuest,绕开官方限制,详细讲解了从环境准备、无线调试到画质与延迟优化的完整步骤,重点解决了Apple Silicon芯片Mac的连接与性能问题,助你告别Windows依赖。

weixin_29224309的博客 308

Dubbo快速入门 —— 基于SpringBoot Starter 开发微服务应用案例 + 知识讲解

💧本文是参考 Dubbo官网案例以及 尚硅谷Dubbo教程的学习文档,主要是方便自己复习,也供大家学习dubbo作一定的参考,如有问题欢迎指出.

仰望天空,妳我亦是行人. 3238

无线通信技术及其在机器人中的应用

本文系统阐述了无线通信技术在机器人领域的应用框架与技术选型。首先构建了无线通信的三层理论架构:物理层解决信号传输问题,链路层处理接入控制,网络层实现组网管理。随后详细分析了主流无线技术的特性与适用场景:BLE适用于低功耗传感器节点,Wi-Fi适合高带宽视频传输,5G专网满足工业AGV的广域覆盖需求,星闪技术凭借20μs超低时延和4096台并发连接能力,为高端机器人应用提供突破性解决方案。通过鄂尔多斯隆基5G专网等典型案例,验证了5G在工业AGV规模化部署中的优势,并展望了通感算智融合、星闪+5G协同等未来发

weiyvyy的博客 1114

Dubbo快速入门 - Java分布式框架

本文系统介绍了Dubbo框架及其应用,重点对比了Feign与Dubbo的差异,包括定位、通信模型、服务治理、生态集成等。Dubbo作为高性能RPC框架,适用于高并发场景,支持多协议、负载均衡和集群容错。详细演示了Dubbo快速入门流程,包括Zookeeper安装、服务提供者与消费者模块搭建,以及注册中心配置。此外,探讨了Dubbo高级特性,如序列化、超时重试、多版本发布、负载均衡及服务降级,并结合dubbo-admin管理平台实现服务监控与治理。

ltt159264的博客 1362

把外部系统接到 SAP Build Process Automation 的两条路:前台直连与后台编排的完整范式

想把外部系统接入到你的【销售订单管理】审批流程,最稳妥的路径是:在流程里开一个,在 BTP 配好以为核心的 Destination,让前端经由approuter代理、后台通过 Cloud SDK 直连,任务处理用My Inbox或Task APIs,异步对接用。这套组合拳,既满足安全边界与运维规范,又能让前台与后台两个世界各取所需、自然衔接。SAP。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1660

SD卡烧写Linux kernel——SD卡分区,并烧写uboot,kernel,DTB及filesystem

Linux Ubuntu环境下对SD卡分区(烧写uboot,kernel,及filesystem) 介绍dd命令的使用,SD卡分区、格式化、复制文件等 fdisk命令

weixin_42408707的博客 5056

【Dubbo】Dubbo快速入门

主要是重新整理了整个dubbo的重要知识点。

Arcus 1416

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Dubbo快速入门

Dobbo相关知识的简单介绍

llg3189609554的博客 1121

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java 分布式框架 —— Dubbo 快速入门

Dubbo 基础知识概览

wohuishidalao的博客 1023

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

dubbo:从零理解及搭建dubbo微服务框架(一)【附带源码】

首先大家要了解到底什么是dubbo,他是一个组件,还是一门语言?实际上dubbo一个服务框架,一开始是用java编写,后续产生了go语言版本。因为dubbo本身自带了RPC调用功能,也就是组间调用。所以也称dubbo为RPC服务框架dubbo官方文档Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。

55555的博客 9785

【SpringCloud Alibaba系列】Dubbo基础入门篇

学习目标是一款高性能、轻量级的开源Java RPC框架,提供面向接口代理的高性能RPC调用、智能负载均衡、服务自动注册和发现、运行期流量调度、可视化服务治理和运维等功能。 互联网项目特点: 单体架构:把所有的功能模块都放在一起,部署在服务器上,形成一个app。部署在一个tomcat服务器上,叫做单机单体架构;也可以部署在多个服务器上,称为多机单体架构。优点:缺点:分布式架构存在的问题:特点:Dubbo是SOA时代的产物,SpringCloud是微服务时代的产物。Dubbo是阿里巴巴公司开源的一个高性能、轻量

实用技术干货分享⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄对您有用的话请点个关注吧~ 4403

【Dubbo】Dubbo的概述、快速入门

一、大型互联网项目架构目标 传统项目和互联网项目 传统项目指的是在一定范围内限定人群使用的项目,比如各种小范围的管理系统。 互联网项目指的是在互联网上面发布使用的项目,比如各种商用应用网站。 人数上:互联网项目面向的是全体网民,而传统项目面向的大多是企业内部用户 数量级:互联网大型项目的用户数量级可达数亿,而传统项目最多上万左右 容忍度:互联网项目的用户对于项目的使用大多是零容忍,而传统项目的用户容忍度更高 用户体验:互联网项目讲究用户体验:美观、功能、速度、稳定性;传统项目的用户体验要求更低 互联网项

雨下一整晚real的博客 601

Dubbo 快速入门

比如 Dubbo Java 作为服务开发框架,当运行在 Spring 体系时就是构建在 Spring Boot 应用开发框架之上的微服务开发框架,并在此之上抽象了一套 RPC 服务定义、暴露、调用与治理的编程范式。

qq_36070104的博客 914

dubbo-快速入门-分布式RPC框架Apache Dubbo

文章目录分布式RPC框架Apache Dubbo1. 软件架构的演进过程1.1 单体架构1.2 垂直架构1.3 SOA架构1.4 微服务架构2. Apache Dubbo概述2.1 Dubbo简介2.2 Dubbo架构3. 服务注册中心Zookeeper3.1 Zookeeper介绍3.2 安装Zookeeper3.3 启动、停止Zookeeper4. Dubbo快速入门4.1 服务提供方开发4.2 服务消费方开发5. Dubbo管理控制台5.1 安装5.2 使用6. Dubbo相关配置说明6.1 包扫描6

qq_33820545的博客 629

分布式与微服务系列 - Dubbo

分布式系统原理与范型》定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”分布式系统(distributed system)是建立在网络之上的软件系统。随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

知行 1132

Dubbo -- Dubbo快速入门代码编写

Dubbo -- Dubbo快速入门代码编写

天行健 君子以自强不息,地势坤 君子以厚德载物。 2413
上一篇: MySQL 实战宝典(七):MySQL 连接查询、嵌套子查询与性能优化原理
下一篇: 微服务注册中心基础(四):Zookeeper部署服务、基本概念与操作
TracyCoder123
博客等级 码龄8年 1万+粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyCoder123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值