【sticc指标源码】【永利2源码】【x站源码商】zk同步机制源码_zk 同步机制

时间:2024-11-23 13:39:48 来源:下载歌曲的源码 分类:娱乐

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、源码sticc指标源码在项目工程里引入操作ZK的同步同步客户端框架 curator

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

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

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

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

        二、服务的发现

        1、消费方开始调用提供方的永利2源码服务接口

        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上有

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

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

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

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

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

        系统的风险。

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

        了他的一致性特点

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

zk是源码库开发什么意思?

       zk通常指的是Zookeeper。

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

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

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

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