【amaze ui 源码】【天神捉妖源码】【图表系统源码】zk同步机制源码_zk 同步机制

时间:2024-12-23 06:05:33 分类:辉瑞公开源码 来源:筹码狙击指标公式源码

1.SOFARegistry
2.利用ZK来实现一个服务的同步同步注册和发现
3.zk是什么意思?

zk同步机制源码_zk 同步机制

SOFARegistry

       SOFARegistry

        引用自: /s/mZo7Dg6gfNqXoetaqgwMww

        (其实就是提供者和消费者)

        (所有提供者和消费者与SOFARegistry的连接都是到这一层)

        <u> 对应zk上的各个节点存储的数据。 </u>

        <u> 推送通知 </u>

        普通的注册中心,如zk,将所有的服务注册信息都保存在同一个实例上,集群其他的机器会同步数据,但是在海量服务注册的情况下,zk很容易的达到单机的瓶颈。这时候,<font style='color:red'>一致性哈希</font>就派上用场了。

        依旧拿zk举例,当客户端数量达到一定数量级时,客户端与zk的连接也会达到瓶颈。而SOFARegistry的架构设计,将客户端与服务端的连接拆分成两部分,客户端连接SessionServer,SessionServer再与DataServer通信,其中的SessionServer不参与任何数据相关的操作,如注册、下线、数据同步等。所以即使连接数量增大,只需要扩容SessionServer即可。毕竟如zk或者eureka这样的注册中心,如果扩容服务端,集群内部数据复制就需要多一份。尤其zk这样的,需要等到复制到半数以上的机器才返回成功,必然会影响写的效率。

        一个dataInfoId会分成提供者列表和消费者列表,两个列表。其中提供者列表维护在DataServer中,而消费者维护在SessionServer中。

        SOFARegistry其实预分片机制,因为需要进行数据多副本同步。用一致性哈希的话扩缩容的成本会比较高

        当数据往DataServerA中写入时,同时会把操作日志异步发送到另外的多副本所在的服务器,如DataServerB、C中,B、C会把数据写入a的副本,这里的a就是dataInfoId的粒度

       æ€»ç»“:实现秒级上下线,主要都是靠服务上下线给SessionServer推送,并由SessionServer再推送给消费者。但为此也带来“网络不稳定导致服务频繁上下线”的负面影响

利用ZK来实现一个服务的注册和发现

       利用ZK来实现一个服务的注册和发现小结

        一、服务的机制机制注册

        1、先来安装zk,源码这里可以在windows环境下安装即可,我们就用一个单节点做测试。同步同步不用建集群或者伪集群

        2、机制机制启动zk-server

        3、源码amaze ui 源码在项目工程里引入操作ZK的同步同步客户端框架 curator

        4、通过curator的机制机制操作命令来链接zk-server,并创建节点

        5、源码进行服务提供方所提供的同步同步服务接口在第4部上所建节点进行服务接口的注册(即服务的暴露)

        6、启动服务提供方的机制机制监听(用来监听消费方发送来的消息)

        7、补充:服务的源码监听其实质还是通过ServerSockt来获取消息,但是实际当中的一些消息中间件并不会这样用。我们知道现如今高性能的同步同步IO通信框架netty已经被广泛使用,采用了同步非阻塞的机制机制设计思想,以及多路复用器来完成高并发下的源码网络通信

        二、服务的发现

        1、消费方开始调用提供方的天神捉妖源码服务接口

        2、调用方式:1>可以使用jdk动态代理来调用远程方法

        2>也可以自己实现一个InvocationHandler,其目的就把远程接口加载到本地,当做本地方法来使用

        3、serverceLocator方式

        3.1 服务发现步骤

        3.2 通过curator来链接zk-server

        3.3 访问znode是否存在

        3.4 通过zk-api 提供PathChildrenCache、PathChildrenCacheListener来监听znode数据是否有变化

        3.5 获取zk-server的ip+port

        3.6 通过消费方socket来链接 zk-server 并发送消息

        总结:这里的服务注册和发现 完全是用了zk的两个非常重要的特性:znode结构以及事件监听通知机制,我们可以看到

        在消费方服务发现里,会有一个监听对应znode的watcher实时动态的负责监听。这里可以理解为:只要znode上有

        新的服务方接口,就会通知消费方来调用

        缺点:实际项目当中我们知道作为服务注册和发现的图表系统源码组件常用的有ZK、Eureka,而我们并不去优先考虑使用ZK,原因何在?

        我们知道ZK\Eureka,这两者都是作为分布式系统当中的一种重要的分布式协调器,而我们所知的二者都满足了分布式系统

        CAP理论当中的一个侧重点,ZK主要满足CP,而Euraka是满足AP,这就为ZK不能满足A而带来一定程度的影响,比如当ZK中

        master节点挂掉之后,因为集群节点过多,从节点的leader选举占据了大量的时间,而导致zk的域名行情源码不可用,反而大大提升了

        系统的风险。

        优点:ZK的优点也是基于自身的特点,根据他的特点我们可以去实现一个分布式系统当中常用的 配置管理中心,这里就利用

        了他的一致性特点

        优化方案,如果服务提供房是一个集群,那么消费方请求可以通过负载均衡,来打到不同的节点上,以防止单一节点过载

zk是redis源码分享什么意思?

       zk通常指的是Zookeeper。

       Zookeeper是一个开源的分布式协调服务,由Apache软件基金会开发并维护。它主要用于管理和协调分布式系统中的各种服务,如Hadoop、HBase等。Zookeeper通过提供一个简单的、易于使用的接口,使得分布式系统中的各个节点能够协同工作,保证系统的高可用性和可扩展性。

       Zookeeper的核心功能包括数据同步、分布式锁、领导选举等。数据同步是指Zookeeper能够在多个节点之间同步数据,保证数据的一致性和可靠性。分布式锁则提供了一种机制,使得多个节点能够在竞争资源时协调自己的行为,避免产生冲突。领导选举则是Zookeeper在分布式系统中实现主从结构的关键技术,通过选举产生一个领导者来协调整个系统的运行。

       在实际应用中,Zookeeper被广泛应用于各种分布式系统中,如分布式数据库、分布式文件系统、分布式计算框架等。它通过提供高可靠性的协调服务,保证了这些系统的稳定性和可扩展性。同时,Zookeeper还提供了一些扩展功能,如监控、报警等,使得系统管理员能够更加方便地管理和维护分布式系统。

       总之,zk是一个非常重要的分布式协调服务,它为各种分布式系统提供了稳定、可靠、易用的协调机制,使得这些系统能够更好地协同工作,提高整体性能和稳定性。