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


    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 配置详情中,就有这个服务的详情

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

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

    现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

    喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
    在这里插入图片描述

  • 相关阅读:
    产品经理必备的14款需求管理工具推荐!
    JVM:运行时数据区-PC寄存器(程序计数器)
    面试题:说说你了解的分布式 ID 生成方案
    MAYA教程之模型的UV拆分与材质介绍
    JS中的对象
    和用户相关的命令
    ISE网表逆向分析与使用技巧
    Git与IDEA: 解决`dev`分支切换问题及其背后原因 为何在IDEA中无法切换到`dev`分支?全面解析!
    自定义spring-boot-starter
    8 Functions for Transforming Text
  • 原文地址:https://blog.csdn.net/wx17343624830/article/details/126247134