Dubbo从入门到上天系列第十八篇:Dubbo引入Zookeeper等注册中心简介以及DubboAdmin简要介绍,为后续详解Dubbo各种注册中心做铺垫!

news2024/10/3 6:35:05

文章目录

一:Dubbo注册中心引言

1:什么是Dubbo的注册中心?

2:注册中心关系图解

3:引入注册中心服务执行流程

4:Dubbo注册中心好处

5:注册中心核心作用

二:注册中心实现方案

1:早期

2:当前现状

三:DubboAdmin介绍

1:DubboAdmin简介

2:DubboAdmin的主要功能


一:Dubbo注册中心引言

1:什么是Dubbo的注册中心?

        Dubbo注册中心是Dubbo服务治理中极其重要的一个概念。它主要是用于对Rpc集群应用实例进行管理。

        对于我们的Dubbo服务来讲,至少有两部分构成,一部分是Provider一部分是Consumer。一个提供服务,一个调用我们的服务。

        后续随着规模的扩大,单机Provider受限于物理机的内存、CPU、网络带宽等硬件瓶颈,以及随着请求数量越来越多,链接数量也可能会达到瓶颈,这样的话,我们需要横向拓展我们的系统。这样我们的Consumer和Provider都会越来越多!

        Consumer和Provider都会越来越多之后,如何管理这么多的实例就需要引入我们的注册中心了。这就是Dubbo引入注册中心的必要性!

2:注册中心关系图解

3:引入注册中心服务执行流程

         Dubbo引入注册中心之后,我们的服务流程有了一点点的变化!

        引入注册中心的目的就是为了管理Provider集群。其中管理者一个服务的一组多个实例。

        第一步:作为我们这一组Provider实例,必须在服务启动的时候首先向我们的注册中心进行注册,注册的内容中最为核心的内容就是本服务的ip地址和端口号。(当然肯定有别的内容,后续介绍!)

        第二步:我们的客户端也就是消费者Consumer来对我们的提供者Provider来发起调用!所以,首先在消费者启动的时候从注册中心拉取、订阅、服务发现我们的提供者的列表。把这个列表拉取到我们消费者的本地进行保存。

        第三步:这时候基于不同的负载均衡算法,从注册中心管理的诸多提供者实例中挑选一个实例出来进行Rpc调用。(负载均衡算法为了满足挑选实例的需要,这是一种客户端负载均衡的策略。Ngnix是服务端的负载均衡)

        第四步:第四步,我们就是要去做容错机制。什么叫容错呢?刚才,我们的服务器都进行了注册,然后消费者都拿到了他们的注册信息,万一发起请求的时候,某个提供者服务端挂了呢?这是有可能的。

        所以,容错机制就是当我们真实发起调用的时候,如果服务端挂了,怎么能够基于容错机制,把请求打到可用的实例上。

        第五步:获取真实的反应结果。

4:Dubbo注册中心好处

        好处一:可以有效的管理RPC集群的健康情况,动态的上线或者下线服务。让我们的服务更加⾼可⽤。

        结合我们上边的图理解一下就好。注册中心将所有的提供者都注册到它本身,这样注册中心不仅仅留存了他们所有的ip和端口号。

        更重要的是,有了这些信息之后,就可以对服务的健康问题进行检查。

        一旦服务挂了,可以实现服务的动态下线,或者流量激增,我们也可以动态让我们的下线服务再次上线!注册中心可以完成这个事!

        好处二:Provider与Consumer解耦合。

        不用注册中心,我们就得进行消费者和提供者之间的直连,这样的话把提供者的ip地址和端口号绑定到我们的消费者服务当中,这是一种耦合!

       好处三:提供负载均衡机制。

       可以合理的分配流量

       好处四:提供容错机制。

        刚才已经分析过了。某一个实例挂了,会自动切换到一个健康的实例上,这是一种高可用的体现!

5:注册中心核心作用

        作用一:服务注册,服务提供者(Provider)在启动时,会将自身可提供的服务注册到注册中心

        作用二:服务发现,服务消费者(Consumer)在启动时,会向注册中心订阅⾃⼰需要的服务,注册中心会将相应的服务提供者信息返回给消费者,消费者据此可以调用对应的服务。

        作用三:服务路由,负载均衡、容错

        作用四:服务监控,注册中⼼可以记录服务的调⽤次数、调⽤延迟等信息,对服务的质量进⾏监控。

二:注册中心实现方案

1:早期

        早期在生产环境当中,我们主要使用Zookeeper作为Dubbo的注册中心实现。我们前边所讲到的所有内容都交给了Zookeeper

2:当前现状

        当前,随着技术发展,很有优秀的注册中心涌现出来:Zookeeper、Nacos、Consul、Etcd等等

        在今天,Dubbo的注册中心有很多选择,后续我们的文章当中,Zookeeper、Nacos、Consul这些注册中心在Dubbo中的使用,我们都会一一进行分析!

        需要注意的是:上述注册中心,他们的核心功能大致像是,但是他们的实现过程是有底层性差异的,但是总体差异不大!

三:DubboAdmin介绍

1:DubboAdmin简介

        Dubbo Admin是Apache Dubbo服务治理和管理系统的⼀部分。它主要帮我们管理的是服务相关的内容。

        DubboAdmin最为重要的内容:DubboAdmin提供了⼀套⽤于服务治理的Web界面,让我们可以更⽅便地对Dubbo系统进⾏管理和监控。

        新版本的Dubbo Admin是基于VUE、SpringBoot开发的,是一套前后端分离的Web系统。

2:DubboAdmin的主要功能

        

        服务管理:Dubbo Admin可以查看所有提供者和消费者的详细信息, 包括服务地址、方法、参数等。

        路由规则:Dubbo Admin可以根据需要设置路由规则,将请求导向特定的服务提供者。

        动态配置:Dubbo Admin可以动态地改变服务的配置,包括负载均衡策略、容错策略等。

        权限控制:Dubbo Admin⽀持对访问进行权限控制,只有获得授权的用户才能访问特定的服务。

        监控和统计:Dubbo Admin可以收集并展示服务的运行数据,包括调用次数、响应时间等。

        综上所述:开发者通过Dubbo Admin可以更⽅便地进⾏服务治理和管理,提高服务的可⽤性和可维护性。

        

        注意:我们本次课程学习的是,是DubboAdmin的最新版本:0.5.0

        添加微信:DaShuDeveloper 拉你进我们的技术交流群,我们一起讨论Dubbo,一起学习Dubbo,一起干翻Dubbo!

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

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

相关文章

10.docker的网络network-概述

1.docker的网络模式 docker共有四种网路模式,分别是bridge、host、none和container. 1.1 bridge bridge,也称为虚拟网桥。在bridge模式下,为每个容器分配、配置IP等,并将容器连接到一个docker0。使用–network bridge命令指定,…

程序员指南六:数据平面开发套件

PORT HOTPLUG FRAMEWORK 端口热插拔框架为DPDK应用程序提供在运行时附加和分离端口的能力。由于该框架依赖于PMD实现,PMD无法处理的端口超出了该框架的范围。此外,在从DPDK应用程序分离端口后,该框架不提供从系统中移除设备的方法。对于由物…

【用unity实现100个游戏之16】Unity中程序化生成的2D地牢5(附项目源码,完结)

文章目录 最终效果前言生成墙壁优化方法一、使用rule tile方法二、使用代码生成墙壁补充最终效果后续参考源码完结最终效果 前言 本期是本项目最后一期,主要是进行墙壁的生成优化和补充一下剩下了的其他内容 生成墙壁优化 方法一、使用rule tile 我这里大概给个rule tile参…

跟着Cancer Cell 学作图| 配对棒棒糖图(Lollipop chart)

dotplot 本期图片 ❝ Doi:https://doi.org/10.1016/j.ccell.2022.02.013 ❞ ❝ Dotplot showing the association of cell populations with different tissue types (organ or tumor). The x axis represents cell types, and the y axis represents the different…

对比两个数组中对应位置的两个元素将每次对比的最大值用于构成新的数组np.maximum()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 对比两个数组中对应位置的两个元素 将每次对比的最大值用于构成新的数组 np.maximum() 选择题 以下代码的输出结果为? import numpy as np a1 [1,2,33] a2 [11,2,3] print("…

webshell之无扩展免杀

1.php加密 这里是利用phpjiami网站进行加密,进而达到加密效果 加密前: 查杀效果 可以看到这里D某和某狗都查杀 里用php加密后效果 查杀效果 可以看到这里只有D某会显示加密脚本,而某狗直接绕过 2.dezend加密 可以看到dezend加密的特征还是…

DockerHub 无法访问 - 解决办法

背景 DockerHub 镜像仓库地址 https://hub.docker.com/ 突然就无法访问了,且截至今日(2023/11)还无法访问。 这对我们来说,还是有一些影响的: ● 虽然 DockerHub 页面无法访问,但是还是可以下载镜像的,只是比较慢而已 ● 没法通过界面查询相关镜像,或者维护相关镜像了…

【JavaEE初阶】认识线程、创建线程

1. 认识线程(Thread) 1.1 概念 1) 线程是什么 一个线程就是一个 "执行流". 每个线程之间都可以按照顺序执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 举例: 还是回到我们之前的银⾏的例⼦中。之前我们主要描…

算法——双指针

一、背景知识 双指针(Two Pointers):指的是在遍历元素的过程中,不是使用单个指针进行访问,而是使用两个指针进行访问,从而达到相应的目的。对撞时针: 两个指针方向相反对撞指针一般用来解决有序…

ts实现合并数组对象中key相同的数据

背景 在平常的业务中,后端同学会返回以下类似的结构数据 // 后端返回的数据结构 [{ id: 1, product_id: 1, pid_name: "Asia", name: "HKG01" },{ id: 2, product_id: 1, pid_name: "Asia", name: "SH01" },{ id: 3, pro…

为Oracle链接服务器使用分布式事务

1 现象 在SQL Server中创建指向Oracle的链接服务器,SQL语句在事务中向链接服务器插入数据。返回链接服务器无法启动分布式事务的报错。 2 解决 在Windows平台下,SQL Server依赖分布式事务协调器(MSDTC)来使用分布式事务&#xff0…

Autocad2020切换经典界面

Autocad2020切换经典界面 1.更改1.1设置另存为 1.更改 1.1设置另存为

CURL踩坑记录

因为项目使用的windows server,且没有安装Postman,所以对于在本地的Postman上执行的请求,要拷贝到服务器执行,只能先转化成为curl命令,操作也很简单,如下: 注意,Postman默认对url包围…

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化:输入延迟、卡顿,大小核调度

关于 win11 系统下12代/13代英特尔大小核架构 CPU 的 VMware 优化:输入延迟、卡顿,大小核调度 一、前言二、VMware 的优化2.1 键鼠输入延迟问题的解决2.1.1 搜索内核隔离2.1.2 关闭内存完整性并重启2.1.3 搜索启用或关闭windows功能2.1.4 关闭 hyper-v 和…

凸问题与非凸问题

凸函数:曲线上任意两点连线上的点对应的函数值不大于该两点对应的函数值得连线上的值,例如yx^2; 非凸函数:曲线上任意两点连线上的点对应的函数值既有大于该两点对应的函数值得连线上的值的部分也有小于的部分,例如&am…

生产订单自动下达

文章目录 1 Introduction2 Detail2.1 input MM02 3 Summary 1 Introduction Production order is released order by automation . We can set the material for it . The method is the detial . 2 Detail 2.1 input MM02 please choose work Scheduling please choose S…

ultralytics yolov8 实例分割 训练自有数据集

参考: https://docs.ultralytics.com/datasets/segment/coco/ http://www.bryh.cn/a/613333.html 1、数据下载与转换yolo格式 1)数据集下载: 参考:https://universe.roboflow.com/naumov-igor-segmentation/car-segmetarion 下载的是coco格式,需要转换 2)coco2yolo t…

不到十个例题带你拿下c++双指针算法(leetcode)

移动零问题 https://leetcode.cn/problems/move-zeroes/submissions/ 1.题目解析 必须在原数组进行修改,不可以新建一个数组 非零元素相对顺序不变 2.算法原理 【数组划分】【数组分块】 这一类题会给我们一个数组,让我们划分区间,比如…

[项目管理-33/创业之路-87/管理者与领导者-127]:如何提升自己项目管理的能力和水平

目录 前言: 一、项目经理的角色定位 1.1 项目经理的职责 1.2 不同矩阵类型的项目,项目经理的职责 1.3 项目经理的角色定位 1.4 项目经理的发展路径 二、项目经理项目理论和知识结构 三、软件项目经理在计算机水平的提升 四、项目经理业务知识的…