哈哈,讲了这么久估计有童鞋可能有点烦了棘不是说应用zookeeper的实例吗?怎么还没见到zookeeper的影子。别焦急,zookeeper立时就要上场了。
长途调用治理组件是本框架的核心,它的重要感化是接收办事端供给者的注册的通知,该通知一般是接口以及该接口的实现类还有办事器的ip地址,治理组件会将这些通知记录下来,并且根据设备对这些办事法度榜样进行分组和标记,注册好的信息治理组件会将这些信息推送到办事调用者。长途调用治理组件还包含心跳机制,这个心跳机制是针对办事供给者,经由过程心跳机制检测办事供给者的健康状况,治理组件不会检测办事调用者的健康状况,因为这个没须要,因为本框架的应用照样调用者直接去请求供给者,逻辑上是没须要关怀调用者的状况,这和bs架构里浏览器一样,我们不会去关怀浏览器用户是不是存在。办事供给者、办事调用者和长途调用治理组件的关系如下图所示:
长途调用框架运行的过程是:当办事供给者启动时刻,它会将本身的ip地址和注册的办法传输到长途调用治理组件,治理组件接收到注册信息会将这些信息存储下来,存储技巧就是应用zookeeper,存储成功后,治理组件会将成功通知传回给办事供给者,同时治理组件还会经由过程心跳检测办事供给者是否健康;当办事调用者启动时刻,它会向治理组件请求办事供给者信息,治理组件接收到请求后会将相干信息推送给办事调用者。在实际体系运行时刻,办事调用者直接和办事供给者进行通信交互了,通信方法是netty,如不雅调用者和供给者有相干变更,都邑先通知办事治理组件,办事治理组件会将相干变革信息推送给响应的体系。
长途调用治理组件主如果经由过程zookeeper实现,zookeeper拥有一个层次的定名空间,它的模型是一个树状构造,树状构造是一个强大年夜的数据类型,它几乎能存储所有不合的数据类型,我们经由过程zookeeper将这些信息保存起来,便于我们治理全部长途调用框架,同时zookeeper照样高靠得住的,这个我在前面zookeeper文┞仿里讲到了,如许就包管了全部长途调用框架的稳定性,实际应用中我们会将组件编译成一个jar包,不合的项目直接引用这个jar包,如许治理组件办事端和办事的供给者和调用者就接洽起来。至于供给者和调用者的通信机制是直接进行,因为我们精晓信法度榜样集成在jar包里,只不过响应的治理机制采取到外部办事端进行同一治理。
这就是我设计的长途调用框架,可惜的是,这个构思我还没有真正实现过,今天拿出来是想表现zookeeper的实际应用,为我后面讲解zookeeper做铺垫,至于是否可行,看今后有没有机会开辟个类似的体系,到时估计还有很多意想不到的问题要解决。
(长途调用办事的设计我参考了技巧美女马德鑫的设计,他曾是淘宝的技巧架构师)
推荐阅读
房价涨幅虽猛,但自负年夜国度推出相干政策后,房价出现收紧迹象。国度统计局《2017年5月份70个大年夜中城市室庐发卖价格更改情况》的数据显示,本年5月15个一线和热点二线城市房地产市场根本稳定,其新建商品室庐价>>>详细阅读
本文标题:架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)
地址:http://www.17bianji.com/lsqh/36044.html
1/2 1