作家
登录

架构设计:一种远程调用服务的设计构思(zookeeper的一种应用实践)

作者: 来源: 2017-07-05 16:07:17 阅读 我要评论

  •     <property name="interface" value=http://mdsa.51cto.com/art/201707/"cn.com.ITest"></property><!-- 长途调用的接口 --> 
  •     <property name="target" ref="clsTest"></property><!-- clsTest实现ITest的实现类,clsTest这里是一个bean的id值 --> 
  • </bean> 
  •  
  • <!-- 办事调用者设备 --> 
  • <bean id="clientConsumer" class="cn.com.sharpxiajun.RmifSpringConsumerBean"
  •     <property name="interface" value=http://mdsa.51cto.com/art/201707/"cn.com.clsTest"></property><!-- value就是Provider定义的target的接话柄现类 --> 
  •     <property name="seriaType" value=http://mdsa.51cto.com/art/201707/"hessian"></property><!--序列化方法  --> 
  •     <property name="compress" value=http://mdsa.51cto.com/art/201707/"true"></property><!-- 紧缩标记 --> 
  • </bean> 
  • 负载均衡:分布式体系都离不开负载均衡,好的负载均衡可以充分应用好不合办事器的计算资本,供给体系的并发量和运算才能,对于网站而言(我们公司如今网站办事器不是太多)少于10台办事器可以应用两种策略:一种是简单轮询,比如有6台办事端,我们会把第一个请求给第一台办事器,第二个请求给第二台,依次类推,等6台轮回完毕,又大年夜第一台开端;第二种是随机方法,即应用random函数,当然更多的办事器我就不知道有什么轮询机制比较好,欲望有知道的童鞋可以给我推荐下。
  • 哈哈,讲了这么久估计有童鞋可能有点烦了棘不是说应用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

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)