1.SOFARegistry
2.利用ZK来实现一个服务的同步同步注册和发现
3.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是一个非常重要的分布式协调服务,它为各种分布式系统提供了稳定、可靠、易用的协调机制,使得这些系统能够更好地协同工作,提高整体性能和稳定性。