IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 分布式框架之(二)分布式RPC框架Dubbo入门 -> 正文阅读

[Java知识库]分布式框架之(二)分布式RPC框架Dubbo入门

二、分布式RPC框架Dubbo入门

2.1 Dubbo简介

  • Apache Dubbo是一款微服务开发框架,它提供了RPC通信微服务治理两大关键能力(致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案)。这意味着,使用Dubbo开发的微服务,将具备相互之间的远程发现与通信能力,同时利用Dubbo提供的丰富服务治理能力,可以实现诸如服务实现负载均衡流量调度等服务治理诉求。同时Dubbo使高度可扩展的用户几乎可以在任意功能点去定制自己的实现,以改变框架的默认行为来满足自己的业务需求。

  • Apache Dubbo是一开高性能的、轻量级的Java RPC框架。其前身是阿里巴巴公司开源的一个框架,可以和Spring框架无缝继承。

  • 简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东西,说白了就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册)。
    其核心部分包含:

    1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
    2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
    3. 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

    Dubbo官网地址:http://dubbo.apache.org

2.2 什么是RPC?

RPC全称为remote procedure call,即远程过程调用。比如两台服务器A和B,A服务器上部署一个应用,B服务器上部署一个应用,A服务器上的应用想调用B服务器上的应用提供的方法,由于两个应用不在一个内存空间,不能直接调用,所以需要通过网络来表达调用的语义和传达调用的数据。

RPC是一个泛化的概念,严格来说一切远程过程调用手段都属于RPC范畴。各种开发语言都有自己的RPC框架。Java中的RPC框架比较多,广泛使用的有RMI、Hessian、Dubbo等。

需要注意的是RPC并不是一个具体的技术,而是指整个网络远程调用过程。

2.3 Dubbo能做什么?

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

Dubbo能做到:

  • 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
  • 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
  • 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

2.4 什么是服务发现?

  • 服务发现就是将服务提供者信息主动上报到服务注册中心进行服务注册,是微服务框架需要具备的关键能力。如将其提供的服务和对应的IP和端口注册到ZooKeeper中,服务调用者启动的时候,将ZooKeeper注册中心信息下拉倒服务调用者本机缓存,到需要用到到某个服务时,通过某种算法,去选择其中一个IP+端口,然后调用。
  • 实现服务发现的方式有很多,Dubbo提供的是一种Client-Based的服务机制,通常还需要部署额外的第三方注册中心组件来协调服务发现过程,如常用的Nacos、Consul、Zookeeper等,Dubbo自身也提供了对多种注册中心组件的对接,用户可以灵活选择。

2.5 Dubbo架构

Dubbo架构图(官方提供):
在这里插入图片描述

虚线都是异步访问,实线都是同步访问
蓝色虚线:在启动时完成的功能
绿色虚线(实线)都是程序运行过程中执行的功能

角色节点说明:

More Actions节点角色名称
Provider暴露服务的服务提供方
Consumer调用远程服务的服务消费方
Registry服务注册与发现的注册中心
Monitor统计服务的调用次数和调用时间的监控中心
Container服务运行容器

服务发现的一个核心组件就是注册中心,Provider注册地址到注册中心,Consumer从注册中心读取和订阅Provider地址列表。因此要启用服务发现,需要为Dubbo增加注册中心配置。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-20 14:57:12  更:2021-08-20 14:57:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 9:55:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码