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