zoukankan      html  css  js  c++  java
  • Dubbo原理简介、与Zookeeper整合利用

    官方文档:http://dubbo.io/books/dubbo-user-book/

    Dubbo的简单介绍

    Dubbo是一个分布式服务框架,架构如图:

    节点角色说明:

    Provider: 暴露服务的服务提供方。

    Consumer: 调用远程服务的服务消费方。

    Registry: 服务注冊与发现的注冊中心。

    Monitor: 统计服务的调用次调和调用时间的监控中心。

    Container: 服务执行容器。

    调用关系说明:

    0. 服务容器负责启动,载入,执行服务提供者。

    1. 服务提供者在启动时,向注冊中心注冊自己提供的服务。

    2. 服务消费者在启动时。向注冊中心订阅自己所需的服务。

    3. 注冊中心返回服务提供者地址列表给消费者,假设有变更。注冊中心将基于长连接推送变更数据给消费者。

    4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,假设调用失败。再选还有一台调用。

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

     

    Dubbo提供了非常多协议,Dubbo协议、RMI协议、Hessian协议,我们查看Dubbo源码,有各种协议的实现,如图所看到的:


    我们之前没用Dubbo之前时,大部分都使用Hessian来使用我们服务的暴露和调用,利用HessianProxyFactory调用远程接口。

     

     Dubbo与Zookeeper整合使用

    第一步:在Linux上安装Zookeeper

           Zookeeper作为Dubbo服务的注冊中心,Dubbo原先基于数据库的注冊中心,没採用Zookeeper。Zookeeper一个分布式的服务框架。是树型的文件夹服务的数据存储,能做到集群管理数据 ,这里能非常好的作为Dubbo服务的注冊中心,Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注冊中心能自己主动删除提供者信息,当提供者重新启动时,能自己主动恢复注冊数据,以及订阅请求。我们先在linux上安装Zookeeper,我们安装最简单的单点,集群比較麻烦。

        (1)下载Zookeeper-3.4.6.tar.gz  地址http://www.apache.org/dist/zookeeper/

        (2) 我们放到Linux下的一个目录。然后解压: 

          #tar zxvf zookeeper-3.4.6.tar.gz

      (3)然后在相应的zookeeper-3.4.6/conf 下有一个文件zoo_sample.cfg的这个文件中面配置了监听client连接的port等一些信息。Zookeeper 在启动时会找zoo.cfg这个文件作为默认配置文件,所以我们复制一个名称为zoo.cfg的文件。如图所看到的:

     

    我们查看一下这个文件的里面的一些配置信息。如图所看到的:

    说明:

     clientPort:监听客户端连接的port。

     tickTime:基本事件单元,以毫秒为单位。它用来控制心跳和超时,默认情况下最小的会话超时时间为两倍的 tickTime。

     我们能够对配置文件的port等或者进行高级配置和集群配置比如:maxClientCnxns:限制连接到 ZooKeeper 的client的数量等

     (4)启动Zookeeper 的服务,如图所看到的:

    到这边Zookeeper的安装和配置完毕

      第二步:配置dubbo-admin的管理页面,方便我们管理页面

        (1)下载dubbo-admin-2.4.1.war包。在Linux的tomcat部署,先把dubbo-admin-2.4.1放在tomcat的webapps/ROOT下。然后进行解压:

       (2)然后到webapps/ROOT/WEB-INF下,有一个dubbo.properties文件。里面指向Zookeeper ,使用的是Zookeeper 的注冊中心。如图所看到的:

    多个地址:

    dubbo.registry.address=zookeeper://10.143.92.xx:2181?backup=10.143.92.xx:2181,10.143.92.xx:2181,10.143.92.xx:2181,10.143.92.xx:2181

    (3)然后启动tomcat服务,username和password:root,并訪问服务,显示登陆页面。说明dubbo-admin部署成功。如图所看到的:

     

  • 相关阅读:
    2019西湖论剑网络安全技能大赛(大学生组)部分WriteUp
    C++学习(四十)(C语言部分)之 学生管理系统设计
    C++学习(三十九)(C语言部分)之 游戏项目(2048游戏)
    C++学习(三十八)(C语言部分)之 排序(冒泡 选择 插入 快排)
    C++学习(三十七)(C语言部分)之 链式栈(推箱子实现)
    C++学习(三十六)(C语言部分)之 链表2
    C++学习(三十五)(C语言部分)之 单链表
    C++学习(三十四)(C语言部分)之 链表
    C++学习(三十三)(C语言部分)之 队列
    C++学习(三十二)(C语言部分)之 栈
  • 原文地址:https://www.cnblogs.com/liyongsan/p/8422616.html
Copyright © 2011-2022 走看看