• SpringBoot-39-Dubbo环境搭建


    11.4.Dubbo环境搭建
    11.4.1 window下安装zookeeper
      • 下载zookeeper:地址,我们下载3.7.1稳定版,解压zookeeper
      • 运行/bin/zkServer.cmd,初次运行会报错,没有zoo.cfg配置文件:

    存在的问题:闪退

    解决:首先需要在系统变量上添加Classpath环境变量,可以输入“.;C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar; C:\Program Files\Java\jdk1.5.0_06\lib\dt.jar” 翻看zkServer.cmd命令发现需要Classpath

    setlocal
    call "%~dp0zkEnv.cmd"
    
    set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
    set ZOO_LOG_FILE=zookeeper-%USERNAME%-server-%COMPUTERNAME%.log
    
    echo on
    call %JAVA% "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" "-Dzookeeper.log.file=%ZOO_LOG_FILE%" "-XX:+HeapDumpOnOutOfMemoryError" "-XX:OnOutOfMemoryError=cmd /c taskkill /pid %%%%p /t /f" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*
    
    endlocal
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    为什么需要Classpath环境变量?

    如果将Java执行环境比喻为操作系统,如果设置Path变量是为了让操作系统找到指定的工具程序(以Windows来说就是找到.exe文件),则设置Classpath的目的就是让Java执行环境找到指定的Java程序(也就是.class文件)。

    接下来,编辑zkServer.cmd文件末尾添加pause。这样运行出错就不会退出,会提示错误信息,方便找到原因。

    在这里插入图片描述
    在这里插入图片描述

    • 上诉错误是下载的版本tar.gz没有lib包,3.5以后的版本需要要下载带有bin标识的zookeeper用其中的lib包。

    报错最关键的就是;
    在这里插入图片描述
    第一个解压出来没有lib文件加,需要将第二个压缩包解压出来,将lib复制粘贴到,第一个压缩包解压的zookeeper目录下。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

      • 接下来就需要把apache-zookeeper-3.7.1\conf\zoo_sample.cfg复制一份作为zoo.cfg,里面的配置不用更改
    double默认端口号20281
    clientPort=2181 //zookeeper默认端口号
    
    • 1
    • 2

    注意几个重要位置:
    dataDir=./临时数据存储的目录(可写相对路径)
    clientPort=2181 zookeeper的端口号

    • 在安装目录下面新建一个空的 data 文件夹文件夹:

    • 修改 zoo.cfg 配置文件,将 dataDir=/tmp/zookeeper 修改成 zookeeper 安装目录所在的 data 文件夹,数据日志的配置默认添加了

    在这里插入图片描述

    • 双击重新启动zkServer.cmd可以成功运行

    在这里插入图片描述

    如何永久占用8080端口,将tomcat作为后台服务即可

    类似mysql的服务安装命令 mysqld -install

    • 双击启动客户端zkCli.cmd,需要服务端开启才可连接成功

    在这里插入图片描述

    • 使用zookeeper的zkCi.cmd客户端进行测试 :

    ls /:列出zookeeper根下保仔的所有节点,注意空格

    create -e /map abc:创建一个map节点,值为abc,注意空格

    get /map 获取map节点的值

    在这里插入图片描述

    11.4.2 window下安装dubbo-admin
    • dubbo本身并不是一个服务软件。它其实就是一个jar包,帮你的java程序连接到zookeeper,并利用zookeeper消费、提供服务。

    • 但是为了让用户更好的管理监控众多的dubbo服务,官方提供了一个可视化的监控程序dubbo-admin,不过这个监控即使不装也不影响使用。dubbo是一个监控管理后台~查看我们注册了哪些服务,哪些服务被消费

    • 下载dubbo-admin开发版本(新版本):地址用idea导入项目后打开

    • 先启动zookeeper(E:\software\apache-zookeeper-3.7.1\bin\zkServer.cmd),然后将dubbo-admin-server这个module启动运行或着是打包后用命令行运行

    遇到的问题:dubbo+zookeeper占用8080端口

    zookeeper从某个版本开始内置了jetty,所以是zookeeper里还有jetty在占用8080端口
    修改zookeeper的配置文件zoo.cfg:
    添加一条配置信息:admin.serverPort=8008

    在这里插入图片描述

    由于dubbo-admin develop开发版本不稳定,我们最好使用dubbo-admin master 0.2.0版本

    • 下载dubbo-admin 0.2.0旧版本,地址:https://qithub.com/apache/dubbo-admin/tree/master
    • 进入dubbo-admin\src\main\resources目录,可以修改application.properties指定zookeeper地址
    server.port=7001
    spring.velocity.cache=false
    spring.velocity.charset=UTF-8
    spring.velocity.layout-url=/templates/default.vm
    spring.messages.fallback-to-system-locale=false
    spring.messages.basename=i18n/message
    spring.root.password=root
    spring.guest.password=guest
    
    #注册中心zookeeper
    dubbo.registry.address=zookeeper://127.0.0.1:2181
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 在项目目录下打包dubbo-admin,首次打包需要加载大量jar包
    mvn clean package -Dmaven.test.skip=true
    
    • 1
    • 若打包的时候遇到

    在这里插入图片描述

    • 那么就用idea将下载下的dubbo-admin-master-0.2.0项目导入,用idea对dubbo-admin进行clean和打包,注意要修改项目的jdk编译版本为1.8

    • 执行dubbo-admin\target下的dubbo-admin-0.0.1-SNAPSHOT.jar

    java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
    
    • 1

    【注意:zookeeper的服务一定要打开!】

    • 执行完毕,访问http://localhost:7001/输入登录账户和密码root/root,查看界面

    在这里插入图片描述

    下一篇:SpringBoot-40-使用spring boot+dubbo+zookeeper创建demo
  • 相关阅读:
    P2910 [USACO08OPEN] Clear And Present Danger S
    Python Pandas PK esProc SPL,谁才是数据预处理王者?
    自动驾驶感知算法实战6——目标分类详解(ResNet、VGG、GoogLeNet等)
    Node学习(一)-全局变量——global是node中最大的一个对象-可省略 & dirname-目录的绝对路径 & filename-文件的绝对路径
    智能神经网络在音调识别中的应用(Matlab代码实现)
    第52天:Web应用、手写Web框架、Django的下载安装
    面向对象编程原则(03)——单一职责原则
    MVCC机制与BufferPool缓存机制
    从入门到进阶,Python程序员必看的6本书籍!
    NebulaGraph实战:3-信息抽取构建知识图谱
  • 原文地址:https://blog.csdn.net/weixin_42045639/article/details/126688792