zoukankan      html  css  js  c++  java
  • Dubbo—Zookeeper的典型应用

    1.Zookeeper 作为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 Hbase 中 Master Election、Server 之间状态同步等。
    Zoopkeeper 提供了一套很好的分布式集群管理的机制,就是它这种基于层次型的目录树的数据结构,并对树中的节点进行有效管理,从而可以设计出多种多样的分布式的数据管理模型。

    2.Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。

    下面看一下简单的处理流程(没有详细展开,深入的话推荐看http://shiyanjun.cn/archives/325.html):

    我们一般写Web程序,会分为三层,Controller,Service和Dao,其中Controller主要用来进行转发,Service进行业务逻辑的处理,而Dao是用来进行数据库映射。单机处理很容易,可是涉及到阿里这样庞大的业务时,比如淘宝、天猫、阿里旅行、天猫国际等等,就会发现它们都会用到支付服务,这时候我们很自然把支付服务单独拿出来,部署到其他服务器上,为了庞大的业务以及防止宕机,会部署到集群上。通过Dubbo,上层的开发者在写Controller层的时候,只需要写类似于Spring的简单依赖注入,就通过RPC调用到远程的服务,而服务层开发者也只需要关注服务层的业务逻辑即可。具体过程是先访问Dubbo后台的核心组件(内部是Zookeeper),核心组件有两个作用:1.判断哪台主机有相应的服务。2.判断哪台主机空闲。即名称服务和动态的负载均衡,然后告知Controller,Controller就会到相应的主机调用支付服务。

  • 相关阅读:
    测试是否有必要看开发代码?如何能看懂?
    【LeetCode】111. 二叉树的最小深度(BFS 解题套路框架,要会默写)
    【LeetCode】112. 路径总和
    【测试开发】知识点配置 Nginx 解决多端口访问
    【测试开发】知识点使用EasyExcel,实现excel导出和导入
    p5 随机圆连接背景和代码树
    angular技巧
    javascript原生技巧篇
    MybatisPlus
    安装 jupyter notebook
  • 原文地址:https://www.cnblogs.com/DarrenChan/p/6484656.html
Copyright © 2011-2022 走看看