专栏首页Spring相关开发dubbo应用程序(二)dubbo注册中心相关概述

开发dubbo应用程序(二)dubbo注册中心相关概述

1.注册中心概述

​ 在Dubbo微服务体系中,注册中心是其核心组件之一.Dubbo通过注册中心实现了分布式环境中各微服务之间的注册与发现,是各分布式节点之间的纽带.其主要作用如下:

  • 动态加入。一个服务提供者通过注册中心可以动地把自己暴露给其他消费者,无序消费者逐个去更新配置文件;
  • 动态发现。一个消费者可以动态地感知新的配置、路由规则和新的服务提供者,无需重启服务使之生效;
  • 动态调整。注册中心支持参数的动态调整,新参数自动更新到所有相关服务节点;
  • 统一配置。避免了本地配置导致每个服务的配置不一致问题。

Dubbo的注册中心源码在模块dubbo-register中,里面包含了五个子模块,如下所示:

模块名称

模块介绍

dubbo-register-api

包含了注册中心所有API和抽象实现类

dubbo-register-zookeeper

使用zookeeper作为注册中心的实现

dubbo-register-redis

使用redis作为注册中心的实现

dubbo-register-default

Dubbo基于内存的默认实现

dubbo-register-multicast

multicast模式的服务注册与发现

2.工作流程

  • 服务启动时,会向注册中心写入自己的元数据信息,同时会订阅配置元数据;
  • 消费者启动时也会像注册中心写入自己的元数据,并订阅服务提供者、路由和配置元数据信息;
  • 服务治理中心(dubbo-admin),会同时订阅所有消费者、服务提供者、路由和配置元数据信息;
  • 当所有服务提供者离开或有新的服务提供者加入是,注册中心服务提供者目录会发生变化,变化信息会动态通知给消费者、服务治理中心;
  • 当消费方发起服务调用时,会异步将调用、统计信息等上报给监控中心(dubbo-monitor-simple)。

[站外图片上传中...(image-5ed3a3-1566707698948)]

3.Zookeeper原理概述

Zookeeper是树形结构的注册中心,每个节点的类型分为持久节点、持久顺序节点、临时节点和临时顺序节点。

  • 持久节点:服务注册后保证节点不会丢失,注册中心重启也会存在;
  • 持久顺序节点:在持久节点特性的基础上增加了节点先后顺序的能力;
  • 临时节点:服务注册后连接丢失或session超时,注册的节点会自动被移除;
  • 临时顺序节点:在临时节点特性的基础上增加了节点先后顺序的能力。

Dubbo使用Zookeeper作为注册中心时,只会创建持久节点和临时节点两种,对创建顺序并没有要求。

dubbo早zookeeper中的树形结构如下所示:

+ /dubbo

+ -- servicce 

       +--providers

       +--consumers

      +--routers

    +--configurators

4.树形结构关系

(1)树的根节点是注册中心分组,下面有多个服务接口,分组值来自用户配置<dubbo:register>中的group属 性;

(2)服务接口下包含4类子目录,分别是providers、consumers、routes、configurators,这个路径是持久节点;

(3)服务提供者目录(/dubbo/service/providers)下面包含的接口有多个服务者URL元数据信息;

(4)服务消费者目录(/dubbo/service/consumers)下面包含的接口有多个消费者URL元数据信息;

(5)路由配置目录(/dubbo/service/routes)下面包含多个消费者路由策略URL元数据信息。

(6)动态配置目录(/dubbo/service/configurators)下面包含多个用于消费者由策略URL元数据信息。

在Dubbo中启用注册中心可参考如下方式:

<beans>
<!--适用于Zookeeper一个集群有多个节点,多个IP和端口用逗号分隔-->
   <dubbo:registry protocol="zookeeper" address="ip:port,ip:port" />
 <!--适用于Zookeeper一个集群有多个节点,多个IP和端口用竖线分隔-->
  <dubbo:registry protocol="zookeeper" address="ip:port|ip:port" />
</beans>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 谷歌hacker批量寻找可注入网站

    本次给大家发一些可以提取有注入点的网站的关键词,所利用的 也就是大家所熟悉的谷歌hack技术,下面是部分关键词,工具的话用一些关键词提取工具就好了。

    网e渗透安全部
  • php免杀webshell木马总结

    关于eval 于 assert 字符串变形 定义函数绕过 回调函数 回调函数变形 特殊字符干扰 数组 类 编码绕过 无字符特征马 PHP7.1后webshell...

    网e渗透安全部
  • 企业面试题: 如何获取浏览器中URL中查询字符串中的参数

    window.location 对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

    舒克
  • phpmyadminroot账号获取webshell

    MysqlRoot账号通过phpMyAdmin获取webshell的思路,主要有下面几种方式,以第一二六八种方法较佳,其它可以根据实际情况来进行。

    网e渗透安全部
  • 通过phpmyadmin GETshell

    general_log默认为关闭的,root权限开启后,general_log_file会保存所有的查询语句

    网e渗透安全部
  • Python urllib HTTP头注入漏洞

    Python的urllib库(在Python2中为urllib2,在Python3中为urllib)有一个HTTP协议下的协议流注入漏洞。如果攻击者可以控制Py...

    网e渗透安全部
  • 企业面试题: 请用JS去除字符中(1)所有空格 (2)去除两头空格

    请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。

    舒克
  • 傀儡SQL的使用(快速寻找可注入网站)

    大家都听过SQL注入,但是对于新手来说,想要从网上众多网站中寻找到自己想要找到的目标并不是那么的容易,所以对于新手来说到底应该怎么更好的找到注入点呢...

    网e渗透安全部
  • Kali Linux渗透基础知识整理(二) 漏洞扫描 二(附送教程)

    这次继续上一篇文章,以后的每一篇文章底部都会推送一下教程或者一些实用工具哦,所以请大家认真看到底!

    网e渗透安全部
  • xss基础实练(新手篇二)

    在知道反射型XSS,是通过URL地址传播的,那么就需要思考那些地方会让URL地址的参数在页面中显示;相信读者都用过一些网站的站内搜索,在站内搜索的位置往往会将搜...

    网e渗透安全部

扫码关注云+社区

领取腾讯云代金券