您的位置:首页 > 其它

代替 ZooKeeper,Eureka.阿里巴巴开源力作--Nacos安装所遇到的坑

2019-03-17 17:26 471 查看

文章目录

  • 3. 启动服务器
  • 4. 服务注册&发现和配置管理
  • 5. 关闭服务器
  • 1. 预备环境准备

    Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

    64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
    64 bit JDK 1.8+;下载 & 配置
    Maven 3.2.x+;下载 & 配置

    2. 下载源码或者安装包

    你可以通过源码和发行包两种方式来获取 Nacos。

    从 Github 上下载源码方式

    git clone https://github.com/alibaba/nacos.git
    cd nacos/
    mvn -Prelease-nacos clean install -U
    ls -al distribution/target/
    
    // change the $version to your actual path
    cd distribution/target/nacos-server-$version/nacos/bin

    下载编译后压缩包方式

    您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。

    unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
    cd nacos/bin

    我是在windows上安装,所以

    3. 启动服务器

    • Linux/Unix/Mac
      启动命令(standalone代表着单机模式运行,非集群模式):

    sh startup.sh -m standalone

    • Windows
      启动命令:

    cmd startup.cmd
    或者双击startup.cmd运行文件。

    • 我双击启动后发现自动生成了一个work目录
    • 第一次启动窗口一闪而过,启动失败
    • 然后我通过cmd启动,发现问题所在

    • 错误信息贴一下
    ***************************
    APPLICATION FAILED TO START
    ***************************
    
    Description:
    
    An attempt was made to call the method javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; but it does not exist. Its class, javax.servlet.ServletContext, is available from the following locations:
    
    jar:file:/D:/soft/jdk1.8/jre/lib/ext/servlet-api.jar!/javax/servlet/ServletContext.class
    jar:file:/D:/soft/nacos/target/nacos-server.jar!/BOOT-INF/lib/tomcat-embed-core-9.0.13.jar!/javax/servlet/ServletContext.class
    
    It was loaded from the following location:
    
    file:/D:/soft/jdk1.8/jre/lib/ext/servlet-api.jar
    
    Action:
    
    Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext

    我这么聪明透顶的人怎么可能被这种小错误所羁绊,经过半个小时百度无果后决定自己翻译一下,结合以往使用tomcat经验,这不就是把D:/soft/jdk1.8/jre/lib/ext/servlet-api.jar删掉就完事了吗,我太聪明了。本来想从自己的nacos-server.jar里加载,但是现在从D:/soft/jdk1.8/jre/lib/ext/servlet-api.jar里加载了,影响我原本的加载了,不兼容,你看着办吧,我俩只能选一个。。。

    • 重新启动,启动成功
    • 浏览器直接访问上面头部的Console的url http://localhost:8848/nacos/index.html
    • 纳尼?!这是要玩我吗,帐号密码,我第一次啊,大哥,我哪知道帐号密码啊,又百度了良久,找到一个所谓的帐号密码都是nacos,好嘞,我试一下。居然…成功了~

    4. 服务注册&发现和配置管理

    服务注册

    curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'


    此处模拟请求并未成功,有知道的大神可以告知下,我试了很久没成功。

    服务发现

    curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instances?serviceName=nacos.naming.serviceName'

    • 注册没成功,发现自然也不会成功,等过一段时间做demo的时候,用代码示范吧,此处是个坑。

    发布配置

    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/co
    1d25b
    nfigs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"

    • 发布后在配置列表就可以看到了

    获取配置

    curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

    5. 关闭服务器

    • Linux/Unix/Mac

    sh shutdown.sh

    • Windows

    cmd shutdown.cmd
    或者双击shutdown.cmd运行文件。

    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: