【Dubbo】Dubbo(一)为什么使用Dubbo?

2023-11-15

Dubbo

Dubbo是一款Java RPC框架

如何将应用打包并部署到服务器上?

在这里插入图片描述

之前的单一应用架构,可以部署到多个服务器上,每次修改或扩展某一处功能都要将整个应用重新打包并部署到多台服务器上;协同开发时都改这一个应用,不利于开发与维护;当应用规模不断扩大,一台服务器无法支撑整个单体应用,仅仅依靠增加服务器也不能带来效率上的显著提升。

在这里插入图片描述

垂直应用架构:
将整个应用拆分成多个子应用,每个子应用都包括页面、业务逻辑、和数据操作。开发人员分工合作时可以互不干扰;可以对访问量较多的子应用进行服务器扩展,而不是整个应用增加服务器。垂直架构的问题就是界面与业务逻辑之间没有分离;各个子应用之间需要交互,不可能完全独立。

在这里插入图片描述

分布式服务架构:
将界面与业务逻辑进行抽离,可以单独更改界面或单独更改业务。界面可以调用各个业务,各业务之间也可以相互调用。在之前的架构,用户web与用户业务在同一个服务器上,相互之间可以进程内通讯,而分布式架构下,界面与业务在不同的服务器下,就需要RPC(远程过程调用)。如何拆分业务以及如何进行远程调用就是分布式服务架构需要关注的问题。随着应用规模扩大,成千上万个服务器应用于各个业务之中,资源浪费也就随之出现,就需要一个基于访问压力的调度中心,实时监控服务器数据,动态调度,提高资源利用率。

RPC:
远程过程调用,当进行不同服务器通讯时,例如A服务器调用B服务器的方法:1A服务器客户端调用,2将A传入的参数序列化,3发送要传递的信息给B服务器的小助手,4小助手反序列化传入的消息成对象,5小助手调用B服务器的方法,传入反序列化的对象,5B服务器服务处理并返回值,6返回值给小助手,8B服务器小助手将返回结果序列化,9返回给A服务器的小助手,10A服务器的小助手反序列化结果,11返回给A服务器调用结果。综上:RPC框架需要建立连接,序列化数据与反序列化数据两大步。

注册中心:
存储各个业务分别部署在哪些服务器上,RPC通过注册中心找到合适的服务器并建立连接,传递数据,进行远程调用
dubbo的注册中心采用zookeeper,到官网下载。

Dubbo流程:

在这里插入图片描述

蓝色虚线初始化,绿色虚线异步,绿色实线同步。

首先,Dubbo框架容器启动,提供者将业务信息注册到注册中心;消费者也就是web页面,将从注册中心订阅所需要的服务;当服务提供者有了变更,注册中心将通过长连接的方式将服务变更通知给消费者,让消费者实时的知道哪些服务不能再调用;注册与订阅之后,消费者就可以调用所需要的服务,如果服务有多台服务器,消费者就可以根据负载均衡算法,选择一个合适的服务器进行调用;每次的服务调用信息都会定时发送到监控中心,监控中心就可以监控服务的运行状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Dubbo】Dubbo(一)为什么使用Dubbo? 的相关文章

随机推荐

  • 若依实现父弹窗获取子弹窗的数据

    参考这个 RuoYi 弹出新窗口选择数据回显到父页面 https blog csdn net u014440968 article details 116266076 还有官方的demo就行 最终实现效果 关键的方法 父页面 div cla
  • 基于ESB权限初始化流程开发总结

    在集团信息化系统的建设过程中 由于应用系统数量日益增多 很多集团缺少一个能有效地将众多系统身份认证 账号管理 授权等功能集成的软件系统 由此IDM应运而生 在IDM中统一权限的功能资源模块是对下游系统的平台进行功能资源的统一管控 在管控之前
  • HTTP学习——网关

    网关可以作为一种翻译器使用 抽象出了一种能够到达资源的方法 网关和代理的区别 代理连接的是两个或多个使用相同协议的应用程序 而网关连接的则是两个或多个使用不同协议的端点 网关扮演的是 协议转换器 的角色 Web网关在一侧使用HTTP协议 在
  • 离散数学 --- 命题逻辑 -- 命题符号化与命题公式

    第一部分 命题符号化及其应用 1 等价连接词中 P Q同为真同为假时为真 真假不同时为假 下面是各个联结词的真值表 复合命题的真值只取决于通过联结词构成他的简单命题的真值 与简单命题的内容无关 比如 中国在地球上且太阳东升西落 这是一个复合
  • 记录DHCP IPV6遇到的问题(一)

    进行DHCP IPV6连接的时候 经常遇到设备获取过一次地址后 在短时间内再次重新主动进行一次DHCP IPV6连接 会连接失败 从抓包来分析就是上行服务器不响应 通过与服务器方的沟通 了解到一点 服务器会记录请求设备的mac和DUID 是
  • SpringMVC的架构有什么优势?——视图与模型(二)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架
  • 一文拆解Faas的真实案例

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文来自腾讯云技术沙龙 本次沙龙主题为Serverless架构开发与SCF部署实践 刘敏洁 具有多年云计算行业经验 曾任职于华为 UCloud等企业担任产品开发 产品经理 目前负责腾
  • meedu二次开发:企业内部使用 必须登录之后才能查看里面内容

    meedu二次开发 修改成企业内部培训系统功能 用户必须登录之后才能查看里面课程内容
  • C语言第五章第4节用for语句实现循环学习导案

    课 题 5 4 用for语句实现循环 课时安排 2课时 课 型 新授 学 习目标 掌握for循环语句的一般形式 掌握for循环语句的执行过程 重点 for循环语句的一般形式 难点 理解for循环语句的执行过程并会做题 导 学 流 程 复备或
  • 实习日志3.22

    今天是实习的第一天 主要做了以下工作 1 安装vs2017 在csdn直接下载安装包 官网找不到2017版本的社区版 2 配置opencv编译环境 4 2 0版本 推荐b站up3 3 遇到了bug 找不到opencv core420d dd
  • PyTorch报错insufficient shared memory (shm)

    报错 ERROR Unexpected bus error encountered in worker This might be caused by insufficient shared memory shm ERROR Unexpec
  • 高并发分布式架构演进

    架构演进过程如下 单机架构 第一次演进 Tomcat与数据库分开部署 第二次演进 引入本地缓存和分布式缓存 第三次演进 引入反向代理实现负载均衡 第四次演进 数据库读写分离 第五次演进 数据库按业务分库 第六次演进 把大表拆分为小表 第七次
  • 哈工大计算机系统大作业

    哈工大计算机系统大作业 摘要 本文主要阐述在Linux系统下hello程序的生命周期 了解hello程序从hello c经过预处理 编译 汇编 链接生成可执行文件的全过程 结合课本的知识详细阐述计算机系统是如何对hello进行进程管理 存储
  • git commit 提交失败

    git commit 之后提示 原因 对项目进行git 操作的时候 会调用到pre commit的插件 它对代码风格进行检查 不符合规范则取消commit 操作 导致无法push 解决方案 方案一 git commit no verify
  • 打包aab教程,模拟器安装aab教程

    一 aab 打包 Android App Bundle aab 是谷歌新的安卓安装文件 其实也就是根据 cpu 架构和语言等 切分多个 apk 以减少包体体积 aab 打包有以下两种方式 AS 打包 Android Studio 打包 类型
  • Stack的三种含义

    学习编程的时候 经常会看到stack这个词 它的中文名字叫做 栈 理解这个概念 对于理解程序的运行至关重要 容易混淆的是 这个词其实有三种含义 适用于不同的场合 必须加以区分 含义一 数据结构 stack的第一种含义是一组数据的存放方式 特
  • 高通 Msm835平台充电功能的开发与调试

    目录 平台充电相关代码 835平台kernel充电相关代码 关机充电的系统相关代码 835平台UEFI 充电相关代码 835平台电池曲线 电池曲线大体内容如下 kernel 电池曲线的提交 XBL 关于充电曲线的提交 充电相关调试方法 充电
  • js逆向学习路线指南

    1 js基础教程 耗时2个星期 2个月 视基础而定 主要掌握用js进行程序设计 以及dom相关的知识 反复看 反复编程 并做好笔记 教程 https wangdoc com javascript index html 2 开始进行实战 多看
  • LeetCode 86. 分隔链表 Partition List(C语言)

    题目描述 给定一个链表和一个特定值 x 对链表进行分隔 使得所有小于 x 的节点都在大于或等于 x 的节点之前 你应当保留两个分区中每个节点的初始相对位置 示例 输入 head 1 gt 4 gt 3 gt 2 gt 5 gt 2 x 3
  • 【Dubbo】Dubbo(一)为什么使用Dubbo?

    Dubbo Dubbo是一款Java RPC框架 如何将应用打包并部署到服务器上 之前的单一应用架构 可以部署到多个服务器上 每次修改或扩展某一处功能都要将整个应用重新打包并部署到多台服务器上 协同开发时都改这一个应用 不利于开发与维护 当