Dubbo

cccs7 Lv5

Dubbo


分布式系统中的相关概念


大型互联网架构目标

衡量网站的性能指标

  • 响应时间:指执行一个请求从开始到最后响应数据所花费的总体时间
  • 并发数:指系统同时能处理的请求数量
    • 并发连接数:指的是客户端向服务器发起请求,并建立了 TCP 连接。每秒钟服务器连接的 总 TCP 数量
    • 请求数:也称为 QPS (Query Per Second) 指每秒多少请求
    • 并发用户数:单位时间内有多少用户
  • 吞吐量:指单位时间内系统能处理的请求数量
    • QPS:Query Per Second 每秒查询数
    • TPS:Transactions Per Second 每秒事务数
    • 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,依次来计算使用的时间和完成的事务个数
    • 一个页面的一次访问,只会形成一个 TPS;但是一次页面请求,可能产生多次对服务器的请求,就会有多个 QPS

集群和分布式

  • 集群: 很多 “人” 一起,干不一样的事
    • 一个业务模块,部署到多台服务器上
  • 分布式:很多 “人” 一起,干不一样的事情,合起来是一件大事
    • 一个大的业务系统,拆分为小的业务模块,分别部署到不同的机器上

架构演进

image-20230416213816521

单体架构
image-20230416213843657
优点
  • 简单:开发部署都很方便。小型项目首选
缺点
  • 项目启动慢
  • 可靠性差
  • 可伸缩性差
  • 扩展性和可维护性差
  • 性能低
垂直架构
image-20230416214020519

垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构

垂直架构存在的问题
  • 重复功能过多
分布式架构
image-20230416214548861

分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消费,以实现服务的共享和重用

RPC:Remote Producer Call 远程过程调用。有非常多的协议和技术都实现了 RPC 的过程

分布式架构的问题
  • 服务提供方一旦产生了 变更。所有消费者都需要变更
SOA 架构
image-20230416214918534

SOA : (Service-Oriented Architecture,面向服务的架构)是一个组件模型,他将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来

ESB:(Enterprise Serve Bus)企业服务总线。主要是提供了一个服务于服务之间的交互。ESB 包含的功能如:负载均衡。流量控制,加密处理,服务的监控,异常处理,检控告急等等

微服务架构
image-20230416215405698

微服务架构是在 SOA 上做的升华,微服务架构强调的是一个重点是 **”业务需要彻底的组件化和服务化”**,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务器完成交互和集成

微服务架构 = 80% 的 SOA 服务架构思想 + 100% 的组件化架构思想 + 80% 的领域建模思想

特点
  • 服务实现组件化:开发者可以自由的选择开发技术,也不需要协调其他团队
  • 服务之间交互一般使用 REST API
  • 去中心化:每个微服务有自己私有的数据库持久化业务数据
  • 自动化部署:把应用拆分为一个一个独立的单个服务,方便自动化部署、测试、运维

Dubbo 概述

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

Dubbo 架构


image-20230416220203822

节点角色说明:

  • Provider:暴露服务的服务提供方
  • Container:服务运行容器
  • Consumer:调用远程服务的服务消费方
  • Registry:服务注册与发现的注册中心
  • Monitor:统计服务的调用次数和调用时间的监控中心
  • Title: Dubbo
  • Author: cccs7
  • Created at: 2023-03-30 22:02:22
  • Updated at: 2023-06-29 23:12:12
  • Link: https://blog.cccs7.icu/2023/03/30/Dubbo/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments