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

一: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!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

专业pdf编辑工具PDF Expert mac中文版特点介绍

PDF Expert mac是一款专业的PDF编辑和阅读工具。它可以帮助用户在Mac、iPad和iPhone等设备上查看、注释、编辑、填写和签署PDF文档。 PDF Expert mac软件特点 PDF编辑:PDF Expert提供了丰富的PDF编辑功能,包括添加、删除、移动、旋转、缩放、裁剪等操作…

云原生入门系列(背景和驱动力)

做任何一件事,或者学习、应用一个领域的技术,莫过于先要想好阶段的目标和理解、学习它的意义是什么?解决了什么问题? 这部分,就尝试来探讨下这个阶段需要理解并达成的目标以及践行云原生的意义在哪里。 1.历程 任何阶…

Python 自动化测试如何动态的选择用例执行

问题 在做自动化测试时,往往需要根据任务的不同选择不同的用例集来执行。怎么优雅的来解决这个问题呢? 答案就是:pytest 框架的标记功能。 使用方法如下: 1. 注册标记 在项目根目录下创建 pytest.ini,在其中注册标…

nodejs微信小程序+python+PHP-储能电站运营管理系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

SSM之Mybatis框架

1 概述 1.1 什么是Mybayis 它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低。 1.2 什么是ORM ORM(…

《C++ Primer》第9章 顺序容器(三)

参考资料: 《C Primer》第5版《C Primer 习题集》第5版 9.5 额外的string操作(P320) 9.5.1 构造string的其他方法 const char *cp "hello, world!"; char arr[] { h,\0,i,\0 }; string s1(cp); // s1 "hello, world!…

基于STM32的数字图像处理与模式识别算法优化

基于STM32的数字图像处理与模式识别算法优化是一项涉及图像处理和机器学习领域的研究任务,旨在实现高效的图像处理和模式识别算法在STM32微控制器上的运行。本文将介绍基于STM32的数字图像处理与模式识别算法优化的原理和实现步骤,并提供相应的代码示例。…

网络运维与网络安全 学习笔记2023.11.22

网络运维与网络安全 学习笔记 第二十三天 今日目标 VLAN间通信之交换机、VLAN间通信综合案例、浮动路由 VRRP原理与配置、VRRP链路跟踪、VRRP安全认证 VLAN间通信之交换机 单臂路由的缺陷 在内网的VLAN数量增多时,单臂链路容易成为网络瓶颈 三层交换机 具备…

Linux 进程等待

在2号手册里查wait()。wait()等待任意一个子进程的状态。 wait()等待成功会返回该子进程的id,返回失败会返回-1: 小实验 子进程的退出码 子进程执行work(),父进程wait子进程。 子进程跑完5秒之后就e…

AIGC前沿技术与数字创新应用合作交流和论坛发布活动圆满落幕

2023年11月17日下午,AIGC前沿技术与数字创新应用合作交流和论坛发布活动在北京市海淀区牡丹科技楼B座B1报告厅成功举办。 在这个以技术为驱动力的时代,AIGC等这些前沿技术正以惊人的速度改变着我们的生活和产业格局。利用新兴技术和数字化工具来解决问题…

《工程测量学》笔记/期末复习资料

水平角观测方法: ①测回法;②方向观测法(全圆观测法)。 比例尺精度: 图上0.1mm(肉眼能够识别的最小距离)所表示的实地距离称为“比例尺精度”。 ①尺寸小于比例尺精度的地物不需要测量&…

系列十、ThreadLocal的使用场景

一、ThreadLocal的使用场景 (1)使用日期工具类,当用到SimpleDateFormat时,使用ThreadLocal保证线程安全; (2)全局存储用户信息(用户信息存入ThreadLocal,那么当前线程在任…

Kubernetes(k8s)之Pod详解

文章目录 Kubernetes之Pod详解一、Pod介绍pod结构pod定义 二、Pod配置pod基本配置镜像拉取策略启动命令环境变量端口设置资源配额 三、Pod生命周期创建和终止初始化容器钩子函数容器探测重启策略 四、Pod调度定向调度NodeNameNodeSelector 亲和性调度NodeAffinityPodAffinityPo…

2014年6月18日 Go生态洞察:Go 1.3 版本发布

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

什么是应急演练脚本?其设计原则是什么?

应急演练脚本是一种系统性、有计划的模拟性文件,旨在测试和评估组织在紧急情况下的应对能力。这种脚本提供了一系列步骤和场景,以确保团队能够高效、协调地应对各种紧急事件。以下将详细探讨应急演练脚本的定义、设计原则以及实施过程。 一、应急演练脚本…

Leetcode2216. 美化数组的最少删除数

Every day a Leetcode 题目来源:2216. 美化数组的最少删除数 解法1:模拟 使用变量 count 代表已删除的元素个数,由于每次删除元素,剩余元素都会往前移动,因此当前下标为 i - count。 遍历一次数组 nums&#xff0…

Sleuth

Sleuth 一 引言 随着服务的越来越多,对调⽤链的分析会越来越复杂。它们之间的调⽤关系也许如下图: 问题: 1:微服务之间的调⽤错综复杂,⽤户发送的请求经历那些服务,调⽤链不清楚,没有⼀ 个⾃…

【Django使用】md文档10大模块第5期:Django数据库增删改查和Django视图

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展…

兼顾陪读|自由职业者赴美国加州大学尔湾分校访学

I老师出国访学除了提升自己的科研水平外,主要目标还是以陪伴孩子上学为主。最终我们为其落实了排名还不错的加州大学尔湾分校的职位,这对于已多年脱离科研工作岗位,学术背景非常薄弱的I老师来说相当不易。 I老师背景: 申请类型&a…

str转wstr的三种方法和从网站获取json数据到数据随机提取,返回拼接字符串和动态数组

库的设置 hv库 外部包含目录:…\include\libhv_new\hv; 库目录:…\include\libhv_new\lib\x86\Release; 附加依赖项:hv.lib; //Get请求 获取json数据,然后提取符合 条件的,time值大于自定义变量的值,然后取…