搞懂 Dubbo 入门理论,这一篇就够

news2024/11/18 23:34:12

RPC简介

● RPC, Remote Procedure Call ,远程过程调用,是一种跨系统间服务调用的协议或框架

● 在很多企业,在内部存在大量的业务子系统,这些子系统都承担独立的业务功能,并相互协作,实现企业各种业务

● 这些业务子系统协作过程中,存在大量的相互接口调用,常用的接口调用技术有Socket、Web Service、RPC、REST等

● 在企业内部,RPC由于其能像调用本地方法一样使用外部系统接口、效率高、性能好等特点,有着众多的应用场景

● RPC优点:

○ 格式清晰严谨,交互的双方遵守严格的接口规范和契约,更严谨稳定

○ 性能好,数据传输效率高,一般使用TCP协议,使用长连接进行调用

○ 私有协议,安全性高

● RPC缺点

○ 开发难度大,对初学者并不友好

○ 业务耦合度高

○ 灵活度低

● 常用的RPC技术或框架有:

○ Thrift

○ gRPC

○ Apache Dubbo

● RPC示意图

图片

Dubbo概述

● Apache Dubbo 3 是一款微服务框架,为大规模微服务实践提供高性能 RPC 通信、流量治理、可观测性等解决方案,涵盖 Java、Golang 等多种语言 SDK 实现

● 不只是一款RPC框架,同时还提供服务治理,像服务自动注册与发现、服务监控、负载监控、服务降级等功能

● Dubbo支持多种服务注册中心,主要有:

○ multicast

○ zookeeper

○ nacos

○ redis

○ simple

Nacos概述

● 致力于发现、配置和管理微服务

● 支持几乎所有主流类型的“服务”的发现、配置和管理,像

○ Kubernetes Service

○ gRPC & Dubbo RPC Service

○ Spring Cloud RESTful Service

● Nacos注册中心部署,参考官网文档

https://nacos.io/zh-cn/docs/what-is-nacos.html,

方式如下

○ 本地使用,下载Nacos-server,然后通过bin/startup.cmd或bin/startup.sh运行即可,命令参考单机版命令,参考官网文档

○ 部署到Linux服务器,参考官网文档

○ 部署到Docker引擎,参考官网文档

● 部署完成后,可通过默认的8848端口访问注册中心,查看注册的服务,包括服务提供者和消费者,如下图

图片

在这里插入图片描述

● 常用概念

○ 服务列表:

■ 显示注册的服务,包括服务提供者和消费者信息上
■ 在服务管理–>服务列表中显示
■ 如上图1中名为
providers:com.lemon.demo.dubbo.inf.service.IUserService:2.0.1的服务,就是后面示例中Dubbo服务提供者定义并注册的IUserService服务

○ 配置列表:
■ 显示注册的服务接口详细信息,包括输入参数类型和名称、返回参数类型、自定义类型描述等
■ 在配置管理–>配置列表中
■ 如上图2中名为
com.lemon.demo.dubbo.inf.service.IUserService:2.0.1::provider:dubbo-provider 配置详情中,就有这个服务的详情

○ 命名空间:主要用于分类服务,将某类服务归类到指定的命名空间中

○分组:在同一个命名空间下的多个服务,也可以按实际业务逻辑进行分组处理


资源分享【这份资料必须领取~】

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107063.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[思维模式-10]:《如何系统思考》-6- 认识篇 - 结构决定功能,如何进行深度思考

目录 第1章 深度思考概述 1.1 深度思考的本质 1.2 深度思考的冰山模型 1.3 行为模式:结构与现象之间的桥梁 第2章 复杂多变的现象背后的六种基本的行为模式 第3章 透过模式/趋势看清内在的结构 第1章 深度思考概述 1.1 深度思考的本质 结构决定功能&#x…

超标量处理器设计——第三章_虚拟存储器

超标量处理器设计——第三章_虚拟存储器 参考《超标量处理器》姚永斌著 文章目录超标量处理器设计——第三章_虚拟存储器3.2 地址转换3.2.1 单级页表3.2.2 多级页表3.2.3 Page Fault3.3 程序保护3.4 加入TLB和Cache3.4.1 TLB的设计TLB缺失TLB的写入对TLB进行控制3.4.2 Cache的设…

时变电磁场 工程电磁场 P24

两个重要定律 首先是两个非常重要的定理 法拉第电磁感应定律完整形式: 应用斯托克斯定律,我们可以得到 在静止媒质钟我们有 全电流定律 对于非恒定的电流,我们可以写成 相应的微分形式 电磁感应定律与全电流定律构成了电磁场理论的基石 这两…

python自学难吗?零基础学python难吗?

作为一名小白,学习任务新东西的时候都会关系,要学的东西难吗?学习Python时自然也会关心Python难吗?能学会吗? 从编程语言的角度来看,Python相比于其他语言真的是不难,Python本身极简的语法&…

正点原子-Linux嵌入式开发学习-第二期03

第九讲:模仿STM32驱动开发实验 前言:在02中我们学习的如何使用C语言的知识去编写代码,并且是直接定义寄存器地址的。你自己回想一下,stm32的库文件是这样的吗?当然不是,它是继续封装了地址,把寄…

ACL介绍

ACL 中文:访问控制列表 介绍: ACL 是网络当中策略的一种,策略:我们之前学的内容只够我们把网络连通,但网络不仅仅是能连通那么简单,在保证网络能连通的基础上,应该还有更高一层的追求&#xf…

地统计插值学习心得(二)

简介 交叉验证是一种“留一”法,可用于确定插值模型与数据的拟合程度。交叉验证从数据集中移除一个点,并使用剩余的所有其他点来预测被移除点的位置。预测值随后与测量值进行比较,并生成大量统计数据 来确定预测的准确性。 交叉验证窗格可以用于展示并评价插值模型的执行效…

Redis持久化之RDB

Redis持久化之RDB1.RDB(Redis DataBase)1.1 RDB是什么1.2 dump.rdb文件1.3Redis启动方式1.4 配置文件中默认快照配置1.5 命令save VS bgsave1.6 RDB举例1.7 stop-writes-on-bgsave-error1.8 rdbchecksum 检查完整性2.持久化如何执行的2.1 流程优势劣势1.…

【小学信息技术教资面试】《生活在信息中》教案

题目:生活在信息中内容: 基本要求: (1)说出信息的不同表现形式及信息在生活中的应用。 (2)教学中注意师生间的交流互动。 (3)十分钟之内完成试讲。 《生活在信息中》教…

【学习笔记04】生命周期的钩子函数

目录一、生命周期的钩子函数二、创建阶段三、挂载阶段四、父子组件创建和挂载阶段钩子函数的执行次序五、更新阶段六、销毁阶段七、复习和补充1、MVVM2、v-for中的key值3、$nextTick一、生命周期的钩子函数 在组件的生命周期的过程中自动的调用的函数,叫做生命周期…

C++进阶 多态讲解

作者:小萌新 专栏:C进阶 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍C中多态的概念 多态多态的概念多态的定义及实现多态的构成条件虚函数虚函数的重写虚函数重写的两个例外协变析构函数的重写C11…

【ML】numpy meshgrid函数使用说明(全网最简单版)

【ML】numpy meshgrid函数使用说明meshgrid的作用?怎么使用(举例说明)手工描点(帮助理解)怎么画三维?附画图代码meshgrid的作用? 首先要明白numpy.meshgrid()函数是为了画网格,&…

Systemverilog实现参数化的Round-Robin Arbiter Tree

本篇内容涉及的rtl代码为开源组织PLUP的common cell仓库中的源代码,本文只是对其进行些许解读。源码链接如下:[https://github.com/pulp-platform/common_cells/blob/dc555643226419b7a602f0aa39d449545ea4c1f2/src/rr_arb_tree.sv] “想要快速提升编程能…

基于springboot的公司人事管理系统

1 简介 今天向大家介绍一个帮助往届学生完成的毕业设计项目,公司人事管理系统。 计算机毕业生设计,课程设计需要帮助的可以找我 源码获取------》 链接:https://pan.baidu.com/s/1CdxrlV7GeRRmsT9UWEMtJg 提取码:cygy 2 设计概要 21世纪…

测试人不得不知的 HTTP 状态码知识

HTTP协议是当前使用最广泛的一种通信协议,在性能测试中,也使用的非常广泛。但是,确有很多人在调试性能测试脚本的时候,弄不明白HTTP状态码,不能通过HTTP状态码做些基本判断,今天,就来给大家好好…

客户终身价值(CLTV)计算和回归预测模型(Python)

内容介绍 本文整理了客户终身价值(CLV或者CLTV)的相关概念,并对一家英国线上零售公司的一年交易数据进行分析,计算该公司所有客户的CLV并且建立回归预测模型。 一、客户生命周期价值 用户生命周期价值Customer Lifetime value(…

常见实用的锁策略详解

🎈专栏链接:多线程相关知识详解 目录 1.乐观锁VS悲观锁 2.读写锁VS普通互斥锁 3.轻量级锁VS重量级锁 4.自旋锁VS挂起等待锁 5. 公平锁VS非公平锁 6.可重入锁VS不可重入锁 7.关于synchronized的锁策略以及自适应 1.乐观锁VS悲观锁 乐观锁:预测锁…

Windows中安装配置RabbitMQ

本次安装环境win10,采用版本 OTP 25.0.3https://github.com/erlang/otp/releases/tag/OTP-25.0.3RabbitMQ 3.10.13 Release RabbitMQ 3.10.13 rabbitmq/rabbitmq-server GitHubOpen source RabbitMQ: core server and tier 1 (built-in) plugins - Release Rabbi…

[N1CTF 2018]eating_cms parse_url绕过

index.php <?php require_once "function.php"; if(isset($_SESSION[login] )){Header("Location: user.php?pageinfo"); } else{include "templates/index.html"; } ?> function.php <?php session_start(); require_once &q…

Kafka Producer 自定义 拦截器 序列化

Kafka Producer 拦截器 & 序列化 前言 文章中的版本信息、maven依赖如下 JDK17 kafka_2.13-3.3.1 pom文件 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>…