文章目录
一: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!