dubbo环境的简单搭建

文章目录

  • 一、dubbo架构
  • 二、Zookeeper注册中心
      • 1、Zookeeper下载
      • 2、zoo.cfg参数配置说明
      • 3、启动Zookeeper
      • 4、测试Zookeeper
  • 三、监控中心
      • 1、dubbo-admin新版本安装
      • 2、安装node.js环境
      • 3、启动dubbo-admin-server服务端
      • 4、构建dubbo-admin-ui
      • 5、访问dubbo-admin

一、dubbo架构

高性能的Java RPC框架,dubbo被阿里捐献给了apache。dubbo架构:
dubbo环境的简单搭建_第1张图片
节点角色说明

  • Provider 暴露服务的服务提供方
  • Consumer 调用远程服务的服务消费方
  • Registry 服务注册与发现的注册中心
  • Monitor 统计服务的调用次数和调用时间的监控中心
  • Container 服务运行容器

调用关系说明

  • 服务容器负责启动,加载,运行服务提供者。
  • 服务提供者在启动时,向注册中心注册自己提供的服务。
  • 服务消费者在启动时,向注册中心订阅自己所需的服务。
  • 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  • 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  • 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

二、Zookeeper注册中心

dubbo官方文档可知,dubbo依赖注册中心,所以使用dubbo,需要提前搭建好注册中心。
dubbo官网-》文档-》用户文档-》参考手册-》注册中心参考手册-》推荐使用Zookeeper注册中心。
dubbo环境的简单搭建_第2张图片

1、Zookeeper下载

Zookeeper官网下载:https://zookeeper.apache.org/,我下载的是zookeeper-3.5.9版本:
在这里插入图片描述
下载完,解压后,新建个文件夹data,用来存放后期临时数据(随便起名字和路径,只要与后面配置文件中dataDir指向的地址一致就行)
dubbo环境的简单搭建_第3张图片
在conf文件夹中新建zoo.cfg文件(将zoo_sample.cfg内容复制到zoo.cfg里进行修改),调整dataDir即可:
dubbo环境的简单搭建_第4张图片
dubbo环境的简单搭建_第5张图片

2、zoo.cfg参数配置说明

(1)tickTime=2000:通信心跳数,Zookeeper服务器心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2tickTime)
(2)initLimit=10:Leader和Follower初始通信时限
集群中的follower跟随者服务器与leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
投票选举新leader的初始化时间
Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。
Leader允许Follower在initLimit时间内完成这个工作。
当已经超过 10个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10
2000=20 秒
(3)syncLimit=5:Leader和Follower同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。总的时间长度就是 5*2000=10秒
在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
如果L发出心跳包在syncLimit之后,还没有从F那收到响应,那么就认为这个F已经不在线了。
(4)dataDir:数据文件目录+数据持久化路径
保存内存数据库快照信息的位置,如果没有其他说明,更新的事务日志也保存到数据库。
(5)clientPort=2181:客户端连接端口
这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

3、启动Zookeeper

进到bin目录下,cmd,执行zkServer.cmd启动Zookeeper会报如下错误:
dubbo环境的简单搭建_第6张图片
经查找原因是,有点版本下载下来目录中没有lib文件夹,处理办法,去官网下载相应版本的bin的包,将apache-zookeeper-3.5.9-bin.tar.gz解压后文件夹中的lib包复制到apache-zookeeper-3.5.9.tar.gz解压后的文件夹中,重新cmd里启动,可成功启动,显示绑定了2181端口:
在这里插入图片描述
dubbo环境的简单搭建_第7张图片
dubbo环境的简单搭建_第8张图片

4、测试Zookeeper

zookeeper启动好了,接下来测试一下,还是bin下cmd,执行zkCli.cmd,打开zookeeper客户端:ls /查看一下根目录节点。至此,注册中心就搭建好了。
dubbo环境的简单搭建_第9张图片

如果启动客户端报错:Will not attempt to authenticate using SASL (unknown error),可能是你上一步不小心把启动的zk关掉了又,也可能是其他原因。

三、监控中心

dubbo2.6版本以后都是springboot方式启动,可以直接运行main方法,或者使用 java -jar 很方便;
2.6版本之前都是war包-》web项目-》放到tomcat里。

1、dubbo-admin新版本安装

从github下载dubbo admin项目:https://github.com/apache/dubbo-admin,解压;
新版本的dubbo-admin已经修改了方式,使用了前后端分离的方式,结构中的dubbo-admin-server是我们的服务后端,dubbo-admin-ui是我们的前端:
在这里插入图片描述
dubbo环境的简单搭建_第10张图片

2、安装node.js环境

前端又是使用的node.js,所以想要启动dubbo-admin首先需要安装node.js环境,进入nodejs官网https://nodejs.org/en/下载,一路next安装即可(没必要下载最新的,使用最多人使用的版本即可)
dubbo环境的简单搭建_第11张图片
安装完,命令行测试一下:
dubbo环境的简单搭建_第12张图片
我们的nodejs环境已经安装完成。

3、启动dubbo-admin-server服务端

1)修改配置
修改【dubbo-admin-develop\dubbo-admin-server\server\src\main\resource】下的application.properties 配置文件,注意配置zk的进程路径,必须配置你的zk运行的ip和端口。(改成自己服务器或虚拟机的地址,如果是在本地搭建的则不需要修改)

默认端口为8080,如果需要更改,加入配置 server.port=<端口号>,此处修改为8081
dubbo环境的简单搭建_第13张图片

注:此处可以看出登录的用户名密码默认root/root

2)启动应用
配置完成后,第一种方式-》idea中启动【dubbo-admin-develop\dubbo-admin-server\src\main\java\org\apache\dubbo\admin\DubboAdminApplication.java】运行即可。

此处用第二种方式启动方式-》命令行操作:
进入dubbo-admin-server 目录,打开cmd窗口,在当前目录下执行以下两条命令:

mvn install -Dmaven.test.skip=true  //跳过测试环节

进入dubbo-admin-server\target 目录,执行jar包 :

java -jar dubbo-admin-server-0.2.0-SNAPSHOT.jar

dubbo环境的简单搭建_第14张图片
dubbo环境的简单搭建_第15张图片

服务端就此启动完成,在8081端口。

4、构建dubbo-admin-ui

1)配置国内taobao镜像: npm config set registry http://registry.npm.taobao.org/
查看镜像:npm get registry
dubbo环境的简单搭建_第16张图片

2)进入dubbo-admin-ui文件夹下执行命令:

npm install  //安装依赖,进行mode_modules依赖构建
【构建成功后会生成node_modules文件夹】
npm run dev  //启动Vue项目

dubbo环境的简单搭建_第17张图片

注:如果失败或者停留在某个地方很久可以试一下换镜像:
npm config set registry https://registry.npm.taobao.org
npm config set registry http://registry.cnpmjs.org/
npm config set registry https://registry.npmjs.org/
npm cache clean --force 换完源之后执行这个命令清除一下缓存

注:修改前端工程端口及配置信息:
如果修改了server的启动端口那么要相应修改ui模块里面的连接server的端口设置修改要让他们统一。打开文件【dubbo-admin-develop\dubbo-admin-ui\config\index.js】,找到【proxyTable】,将里面的target改成我们后端服务的ip加端口,然后保存。 但是我这个版本并没有这样操作修改也能访问!!!!不知道是内置了还是什么情况待研究!

5、访问dubbo-admin

http://localhost:8081/ root/root 登录管理控制台:
dubbo环境的简单搭建_第18张图片

你可能感兴趣的:(《微服务中间件技术》系列,dubbo,微服务架构,分布式)