• Dobbo和zookeeper的关系


    以下是我对Dobbo和zookeeper的关系的理解,如有错误欢迎指出。

    Dobbo是什么:Dobbo是管理中间层的工具,个人理解就是一个分布式的框架,就如空的汽车骨架,里面是空的,需要你去配置。

    zookeeper:是一个存储媒介,个人理解就比如汽车的引擎,把引擎放入汽车骨架中汽车才能跑,当然汽车引擎有很多牌子,例如redis,Memcached都是不同品牌的汽车引擎,都可以搭配汽车骨架去使用。

    为什么要用Dobbo:使用Dobbo的好处是解决服务越来越多时,调用量越来越大,计算机支撑不了这么多服务暴露出来的种种问题。

    例如:我们可以用一台或多台计算机组成一个服务集群,通过硬编码(写死)的方式去实现分布式调用,但是碰见服务一多,高并发时,或某一台计算机挂掉的时候,那消费者(调用服务的一方)就有可能调用不到想要调用的服务,灵活性很差。

    Dobbo为什么能解决这样的问题:1.因为Dobbo的服务容器负责启动,加载,运行服务提供者,

                   2.生成服务提供者代理对象,服务提供者就会去注册中心去注册服务。

                   3.服务消费者在启动时,生成服务消费者的代理对象,向注册中心订阅自己所需的服务。

                   4.注册中心返回服务提供者地址列表(服务的IP以及服务名称)给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。(不用担心此事注册中心挂掉地址列表会丢失,因为在消费者在订阅服务的时候就把地址列表储存到本地,只要订阅完成一定能找对对应的服务进行消费)

                   5.服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

                   6.服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

    因此,解决了调用不到服务,灵活性差的问题,因为服务一定会被调用到。

    大家为什么要使用ZK:ZK的好处:1.首先是负载均衡,单注册中心的承载能力是有限的,在流量达到一定程度的时候就需要分流,负载均衡就是为了分流而存在的,而一个ZooKeeper群配合相应的Web应用就可以很容易达到负载均衡;

                    2.资源同步,单单有负载均衡还不够,节点之间的数据和资源需要同步,ZooKeeper集群就天然具备有这样的功能;

                    3.命名服务,将树状结构用于维护全局的服务地址列表,服务提供者在启动的时候,向ZK上的指定节点/dubbo/${serviceName}/providers目录下写入自己的URL地址,这个操作就完成了服务的发布。

  • 相关阅读:
    Freedur为什么会免费?
    Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理
    AssetManager asset的使用
    Android AsyncHttpClient
    UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)
    UBUNTU 下如何升级 gcc, g++
    java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类、内部类应用于泛型探讨
    最新Connectify注冊码(序列号) Connectify3.7序列号 破解版
    简单单元測试思想
    Dijkstra算法
  • 原文地址:https://www.cnblogs.com/liweibin00/p/12828289.html
Copyright © 2020-2023  润新知