Apache Dubbo 微服务架构下的服务治理(基于Zooke

2021-02-01  本文已影响0人  一个头发茂密的程序员

Apche Dubbo

服务注册发现中心:(基于Zookeeper)

Zookeeper是一个高性能的分布式协调中间件,所谓分布式协调中间件的作用就是通过并发工具包来协调线程的访问控制,比如访问顺序控制。zookeeper并不是注册中心,只是基于Zookeeper本身的特性可以实现注册中心这个场景而已

Zookeeper的数据结构

zookeeper的数据结构和分布式文件系统类似,是一种层次化得属性结构。和文件系统不同的是,Zookeeper的数据是结构化存储的,并没有在物理上出现文件或目录。
zookeeper树中的每一个节点成为znode。Znode维护了一个stat状态信息。其中包括数据变化的时间和版本等。并且每一个znode节点可以设置一个value值,Zookeeper并不用于通用的数据库或者大容量的对象存储,他只是协调和管理相关的数据。所以value的大小不建议设置的非常大,较大的数据会带来更大的网络开销。

Zookeeper每个节点的数据都是允许读写的,读代表获取指定znode节点上的value值,写标识修改指定znode上的value值。
节点的创建规则和文件系统中文件创建规则类似,必须按照层级创建。如需创建/node/node1/node1-1,则必须先创建/node/node1这两个层级节点

image.png
图片来源:https://blog.csdn.net/yin380697242/article/details/52293761

Zookeeper特性

Zookeeper中的znode被创建的时候,需要指定节点的类型,节点类型:

同级目录下,节点名称必须是唯一的!!!!!!!

Watcher机制

Zookeeper提供了一种对znode节点 订阅/通知机制。当znode节点状态发生变化时,或者zookeeper客户端链接状态发生变化时,会触发事件通知。这个机制在服务注册与发现中,对服务调用者及时感知服务提供者变化提供非常好的解决方案
zookeeper 在 Java API中 提供了 3种机制对znode进行注册监听。

常见的应用场景

1、分布式锁
使用zookeeper的临时节点的特性以及同级节点的唯一性排他锁()

Zookeeper 注册中心的实现原理

image.png
图片来源:https://www.bilibili.com/read/cv6365527/
当Dubbo服务启动的时候,会去Zookeeper服务器上的/dubbo/com.bob.dubbo.service.CityDubboService/providers目录下创建当前服务的URL,其中
上一篇 下一篇

猜你喜欢

热点阅读