Dubbo知识点的学习

1. Zookeeper介绍

(1) 什么是Zookeeper?
顾名思义 zookeeper 就是动物园管理员,他是用来管 hadoop(大象)、Hive(蜜蜂)、pig(小 猪)的管理员, Apache Hbase 和 Apache Solr 的分布式集群都用到了 zookeeper;Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。
(2) Zookeeper的作用是什么?
他提供的主要功能包括:配置管理、名字服务、分布式锁、集群管理。

2. Zookeeper存储结构

(1) 什么是Znode?
在 Zookeeper 中,znode 是一个跟 Unix 文件系统路径相似的节点,可以往这个节点存储 或获取数据。 Zookeeper 底层是一套数据结构。这个存储结构是一个树形结构,其上的每一个节点, 我们称之为“znode”
(2) Znode节点类型有哪些?
(1)PERSISTENT 持久化节点: 所谓持久节点,是指在节点创建后,就一直存在,直到 有删除操作来主动清除这个节点。否则不会因为创建该节点的客户端会话失效而消失。
(2)PERSISTENT_SEQUENTIAL 持久顺序节点:这类节点的基本特性和上面的节点类 型是一致的。额外的特性是,在 ZK 中,每个父节点会为他的第一级子节点维护一份时序, 会记录每个子节点创建的先后顺序。基于这个特性,在创建子节点的时候,可以设置这个属 性,那么在创建节点过程中,ZK 会自动为给定节点名加上一个数字后缀,作为新的节点名。 这个数字后缀的范围是整型的最大值。 在创建节点的时候只需要传入节点 “/test_”,这样 之后,zookeeper 自动会给”test_”后面补充数字。

(3)EPHEMERAL 临时节点:和持久节点不同的是,临时节点的生命周期和客户端会 话绑定。也就是说,如果客户端会话失效,那么这个节点就会自动被清除掉。注意,这里提 到的是会话失效,而非连接断开。另外,在临时节点下面不能创建子节点。 这里还要注意一件事,就是当你客户端会话失效后,所产生的节点也不是一下子就消失 了,也要过一段时间,大概是 10 秒以内,可以试一下,本机操作生成节点,在服务器端用 命令来查看当前的节点数目,你会发现客户端已经 stop,但是产生的节点还在。

(4) EPHEMERAL_SEQUENTIAL 临时自动编号节点:此节点是属于临时节点,不过带 有顺序,客户端会话结束节点就消失

3. Zookeeper安装-单机版

(1) 如何安装Zookeeper单机版?
1.1 安装 Linux
1.2 安装 JDK
配置环境变量 export JAVA_HOME=/usr/local/jdk export CLASSPATH=.: J A V A H O M E / l i b / d t . j a r : JAVA_HOME/lib/dt.jar: JAVAHOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export PATH= J A V A H O M E / b i n : JAVA_HOME/bin: JAVAHOME/bin:PATH

1.3 上传 Zookeeper
官方资源包可在 zookeeper.apache.com 站点中下载。最新发布版本为:3.4.12。

1.4 解压 Zookeeper 压缩包
[root@localhost temp]# tar -zxf zookeeper-3.4.6.tar.gz [root@localhost temp]# cp zookeeper-3.4.6 /usr/local/zookeeper -r

1.5 Zookeeper 目录结构

  1. bin:放置运行脚本和工具脚本,如果是 Linux 环境还会有有 zookeeper 的运 行日志 zookeeper.out 2. conf:zookeeper 默认读取配置的目录,里面会有默认的配置文件 3. contrib:zookeeper 的拓展功能 4. dist-maven:zookeeper的 maven 打包目录 5. docs:zookeeper 相关的文档 6. lib:zookeeper 核心的 jar 7. recipes:zookeeper 分布式相关的 jar 包 8. src:zookeeper 源码

1.6 配置 Zookeeper
Zookeeper 在启动时默认的去 conf 目录下查找一个名称为 zoo.cfg 的配置文件。 在 zookeeper 应用目录中有子目录 conf。其中有配置文件模板:zoo_sample.cfg cp zoo_sample.cfg zoo.cfg。zookeeper 应用中的配置文件为 conf/zoo.cfg。 修改配置文件 zoo.cfg - 设置数据缓存路径

1.7 启动 Zookeeper
默认加载配置文件:./zkServer.sh start:默认的会去 conf 目录下加载 zoo.cfg 配置文件。
指定加载配置文件:./zkServer.sh start 配置文件的路径

4. Zookeeper集群原理

(1) Zookeeper集群中的角色主要有哪三类?
Dubbo知识点的学习_第1张图片
(2) 请阐述Zookeeper的集群原理是什么?
Dubbo知识点的学习_第2张图片

5. Zookeeper创建集群

(1) 如何搭建Zookeeper集群?
使用 3 个 Zookeeper 应用搭建一个伪集群。应用部署位置是:192.168.70.143。服务监听 端口分别为:2181、2182、2183。投票选举端口分别为 2881/3881、2882/3882、2883/3883。
tar -zxf zookeeper-3.4.6.tar.gz 将解压后的 Zookeeper 应用目录重命名,便于管理 mv zookeeper-3.4.12 zookeeper01
2.3.1 提供数据缓存目录
在 zookeeper01 应用目录中,创建 data 目录,用于缓存应用运行数据 cd zookeeper01 mkdir data
2.3.2 复制应用
复制两份 Zookeeper 应用。用于模拟集群中的 3 个节点。 cp -r zookeeper01 zookeeper02 cp -r zookeeper01 zookeeper03
2.3.3 提供配置文件
在 zookeeper 应用目录中有子目录 conf。其中有配置文件模板:zoo_sample.cfg cp zoo_sample.cfg zoo.cfg zookeeper 应用中的配置文件为 conf/zoo.cfg。
2.3.4 修改配置文件 zoo.cfg - 设置数据缓存路径
dataDir 参数值为应用运行缓存数据保存目录。是 3.2.3 步骤中创建的目录。使用绝对路 径赋值。不同的应用路径不同。
2.3.5 提供应用唯一标识
在 Zookeeper 集群中,每个节点需要一个唯一标识。这个唯一标识要求是自然数。且唯 一标识保存位置是:$dataDir/myid。其中 dataDir 为配置文件 zoo.cfg 中的配置参数 在 data 目录中创建文件 myid : touch myid 为应用提供唯一标识。本环境中使用 1、2、3 作为每个节点的唯一标识。 vi myid 简化方式为: echo [唯一标识] >> myid。 echo 命令为回声命令,系统会将命令发送的 数据返回。 '>>'为定位,代表系统回声数据指定发送到什么位置。 此命令代表系统回声数 据发送到 myid 文件中。 如果没有文件则创建文件。
2.3.6 修改配置文件 zoo.cfg - 设置服务、投票、选举端口
vi zoo.cfg clientPort=2181 #服务端口根据应用做对应修改,zk01-2181,zk02-2182,zk03-2183 server.1=192.168.70.143:2881:3881 server.2=192.168.70.143:2882:3882 server.3=192.168.70.143:2883:3883

6. Zookeeper常见命令

(1) 如何启动Zookeeper?
bin/zkServer.sh start
(2) 如何关闭Zookeeper?
bin/zkServer.sh stop
(3) 如何查看Zookeeper状态?
bin/zkServer.sh status
(4) 如何使用Zookeeper客户链接Zookeeper?
zkCli.sh -server host:port。默认连接 localhost:2181
(5) Connect命令的作用是什么?
connect host:port - 连接其他的 ZooKeeper 应用
(6) Ls命令的作用是什么?
ls path - 列表路径下的资源。在 ZooKeeper 控制台客户端中,没有默认列表功能,必须 指定要列表资源的位置。 如: ls / ; ls /path 等。
(7) Create命令的作用是什么?
create [-e] [-s] path data - 创建节点,如: create /test 123 创建一个/test 节点,节点携 带数据信息 123。 create -e /test 123 创建一个临时节点/test,携带数据为 123,临时节点只 在当前会话生命周期中有效,会话结束节点自动删除。 create -s /test 123 创建一个顺序节点 /test,携带数据123,创建的顺序节点由ZooKeeper自动为节点增加后缀信息,如-/test00000001 等。-e 和-s 参数可以联合使用
(8) Get命令的作用是什么?
get path - 查看指定节点的数据。 如: get /test

7. Dubbo介绍

(1) 什么是Dubbo?
Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。Dubbo 框架,是基于容器运行的。容器是 Spring
(2) 什么是单体架构?
单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合 在一个应用中的架构方式。其优点为:项目易于管理、部署简单。缺点:测试成本高、可伸 缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难
(3) 什么是SOA架构?
面向服务的架构(SOA)是一个组件模型,它将应用程序拆分成不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的, 它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中 的服务可以以一种统一和通用的方式进行交互
(4) 什么是RPC远程过程调用?
远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底 层网络技术的协议。RPC 协议假定某些传输协议的存在,如 TCP 或 UDP,为通信程序之间 携带信息数据。在 OSI 网络通信模型中,RPC 跨越了传输层和应用层。RPC 使得开发包括 网络分布式多程序在内的应用程序更加容易

8. Dubbo架构图讲解

(1) Registry表示什么含义?
注册中心. 是用于发布和订阅服务的一个平台.用于替代SOA结构体系框架中的ESB服务总线的。
(2) Consumer表示什么含义?
服务的消费者, 就是服务的客户端. 消费者必须使用 Dubbo 技术开发部分代码. 基本上都是配置文件定义.
(3) Provider表示什么含义?
服务的提供者, 就是服务端. 服务端必须使用 Dubbo 技术开发部分代码. 以配置文件为主
(4) Container表示什么含义?
容器. Dubbo 技术的服务端(Provider), 在启动执行的时候, 必须依赖容器才能正常启动. 默认依赖的就是 spring 容器. 且 Dubbo 技术不能脱离 spring 框架
(5) Monitor表示什么含义?
监控中心. 是 Dubbo 提供的一个 jar 工程. 主要功能是监控服务端(Provider)和消费端(Consumer)的使用数据的.

9. Dubbo的运行流程

(1) 请阐述Dubbo执行流程?
0 start: 启动 Spring 容器时,自动启动 Dubbo 的 Provider
1 register: Dubbo 的 Provider 在启动后自动会去注册中心注册内容.注册的内容包括: 1.1 Provider 的 IP 1.2 Provider 的端口. 1.3 Provider 对外提供的接口列表.哪些方法.哪些接口类 1.4 Dubbo 的版本. 1.5 访问 Provider 的协议.
2 subscribe: 订阅.当 Consumer 启动时,自动去 Registry 获取到所已注册的服务的信息.
3 notify: 通知.当 Provider 的信息发生变化时, 自动由 Registry 向 Consumer 推送通知.
4 invoke: 调用. Consumer 调用 Provider 中方法 4.1 同步请求.消耗一定性能.但是必须是同步请求,因为需要接收调用方法后的结果.
5 count:次数. 每隔 2 分钟,provoider 和 consumer 自动向 Monitor 发送访问次数.Monitor 进行统计

10. Dubbo支持的协议

(1) Dubbo支持的协议有哪些?
1 Dubbo 协议(官方推荐协议)
2 RMI(Remote Method Invocation)协议
3 Hessian 协议
(2) 每个协议的优缺点是什么?
1 Dubbo 协议(官方推荐协议)
优点: 采用 NIO 复用单一长连接,并使用线程池并发处理请求,减少握手和加大并发效率, 性能较好(推荐使用) 缺点: 大文件上传时,可能出现问题(不使用 Dubbo 文件上传)
2 RMI(Remote Method Invocation)协议

  1. 优点: JDK 自带的能力。可与原生 RMI 互操作,基于 TCP 协议 2) 缺点: 偶尔连接失败.
    3 Hessian 协议
  2. 优点: 可与原生 Hessian 互操作,基于 HTTP 协议 2) 缺点: 需 hessian.jar 支持,http 短连接的开销大
    (3) 官方推荐使用什么协议?
    Dubbo 协议(官方推荐协议)

11. Dubbo支持的注册中心

(1) Dubbo支持哪些注册中心?
1 Zookeeper(官方推荐)
2 Multicast
3 Redis
4 Simple
(2) 每个注册中心的优缺点是什么?
1 Zookeeper(官方推荐)

  1. 优点: 支持分布式.很多周边产品. 2) 缺点: 受限于 Zookeeper 软件的稳定性.Zookeeper 专门分布式辅助软件,稳定较优
    2 Multicast
  2. 优点:
    去中心化,不需要单独安装软件. 2) 缺点: 2.2.1 Provider 和 Consumer 和 Registry 不能跨机房(路由)
    3 Redis
  3. 优点: 支持集群,性能高 2) 缺点: 要求服务器时间同步.否则可能出现集群失败问题.
    4 Simple
    1. 优点: 标准 RPC 服务.没有兼容问题 2) 缺点: 不支持集群
      (3) 官方推荐使用什么技术作为注册中心?
      Zookeeper(官方推荐)

12. Dubbo入门案例-创建项目

(1) Dubbo坐标是什么?


    
        com.alibaba
        dubbo
        2.5.4
    

13. Dubbo入门案例-创建服务

(1) 什么是服务?
项目中对外界所提供的能力
(2) 什么是服务标准?
接口+接口实现类
(3) 什么是接口?
对外界描述当前服务的信息,如协议类型,服务提供者的地址,发布的服务名 称,服务中方法名称等信息
(4) 什么是接口实现类?
对发布的接口中的标准的具体实现
(5) 如何在配置文件中为服务配置名称?


(6) 如何在配置文件中配置注册中心地址?


(7) 如何在配置文件中配置协议以及端口?


(8) 如何在配置文件中注册接口?



你可能感兴趣的:(Dubbo知识点的学习)