Nacos(1)基本使用

1. Nacos基本使用

  下载:https://github.com/alibaba/nacos/releases

   官方文档:https://nacos.io/zh-cn/

   直接解压使用即可。

   启动:Nacos_Home/bin/startup.sh

   初始账号/密码:nacos/nacos


2. Nacos配置Mysql8

  Nacos是存在一个嵌入式的数据库derby的,查看源码的pom.xml就能够看见org.apache.derby。

  如果希望更改为本地数据库(目前只支持mysql)的话,步骤如下:

   (1)初始化mysql数据库,利用/conf/nacos-mysql.sql导入库和表

   (2)修改配置文件/conf/application.properties,在内容最下面追加即可,这是官网给出的配置样例

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos_devtest
db.password=youdontknow

  但是对于Nacos1.2.1版本,官方要求的mysql版本是5.6.5+,而目前大部分的人都不再使用mysql5.几的版本了,大部分人用的都是mysql8,而这也就会导致连接失败的情况,因此我们需要更改数据库为mysql8。

   配置文件更改为:

########################################## mysql config ######################
spring.datasource.platform=mysql
driver-class-name=com.mysql.cj.jdbc.Driver
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos-config?serverTimezone=Asia/Shanghai&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

   注意如果是Linux系统,最好不要使用127.0.0.1,直接配置成Linux系统的ip地址是最好的。

   更改配置文件是第一步,我们可以去查看/target/nacos-server.jar/BOOT-INF/lib下面Nacos所使用的jar包,会发现只引入了mysql-connect-java-5.1.34.jar
在这里插入图片描述

   目前网上大部分资料都是直接下载Nacos源码,然后修改pom文件里面的jar包引用和部分import,最后再自己打包,来替代nacos-server.jar文件。

   这有一个更加简单的办法来解决mysql连接失败的问题,新建文件夹/plugins/mysql,在下面放入自己的mysql-connection-java-8.0.19.jar
在这里插入图片描述在这里插入图片描述

  再次启动即可解决Nacos无法连接mysql8的问题了。



3. Nacos配置集群(Linux)

  首先针对于数据库的更改,Linux的更改方式和Windows下面的方式是完全一样的。

  通常情况下,学习使用一般都是弄一台Linux虚拟机就足够了,因此我们需要在一台虚拟机上启动三个Nacos实例(官方说明:Nacos集群至少三个)

  基本环境说明:
  在这里插入图片描述

tar -zxvf nacos-server.1.2.1.tar.gz

  解压下载好的Nacos压缩包,能够看见基本的目录结构和Windows下是完全一样的
在这里插入图片描述
   更改了数据库之后,启动Nacos集群就会出现第一个问题:Nacos默认端口是8848,那么如何更改这个端口,来启动三个Nacos进程。

  首先,修改集群配置文件:cluster.conf.example

复制一份集群配置文件:
    cp cluster.conf.example cluster.conf

修改配置文件:
    vim cluster.conf

  按照给出的例子,修改三个配置文件即可:
在这里插入图片描述  在这里插入图片描述
   第二步:更改启动文件startup.sh,让启动的时候能够接受一个参数,这个参数就是我们要传入的端口号。

while getopts ":m:f:s:p:" opt
do
    case $opt in
        m)
            MODE=$OPTARG;;
        f)
            FUNCTION_MODE=$OPTARG;;
        s)
            SERVER=$OPTARG;;
        p)
            PORT=$OPTARG;;
        ?)
        echo "Unknown parameter"
        exit 1;;
    esac
done

   修改前后对比,修改部分标红:
在这里插入图片描述
   修改的意思为:添加了一个启动参数p,通过case语句,将我们传入的参数的值赋值给变量PORT,这样在后面就能利用PORT来获取到我们传入的端口号。

   修改第二处:配置启动的端口号为变量PORT
在这里插入图片描述

# start
echo "$JAVA ${JAVA_OPT}" > ${BASE_DIR}/logs/start.out 2>&1 &
nohup $JAVA -Dserver.port=${PORT} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &
echo "nacos is starting,you can check the ${BASE_DIR}/logs/start.out"

  全部修改完成,这样我们启动的时候的命令为:

./startup.sh -p 3333

3.1 Linux 和 windows启动差异

  在启动的时候有一点是非常值得注意的,在Linux下面,如果我们希望和Windows一样直接单机启动的话,在启动的时候就会报错。

  这个坑我最开始也没有注意到的,就是在Linux下一直启动失败,在网上查资料也没有相关资料,后来去查看日志文件/logs/start.out,才发现启动出现了异常,异常如下:
在这里插入图片描述
  但是,这种情况在windows下面却没有出现过,可以在windows下去查看最初的文件目录,也是不存在cluster.conf。

  我在网上资料也没有查找到导致这种情况的原因是什么,最后在startup.sh文件中找到了原因。

  Windows版的startup.cmd

在这里插入图片描述
  再看下Linux版的startup.sh
在这里插入图片描述

  这就能很清楚的看到问题所在了,在Windows下面,默认的启动模式是Standalone,单机模式,而在Linux系统下,默认的启动模式是cluster。

  解决方法,我们可以查看startup.sh,就会发现,在启动Nacos的时候能够接受一个参数m而这个m,那么我们就自己传入单机启动的参数standalone即可。
在这里插入图片描述

  因此,Linux系统上单机启动命令:

./startup.sh -m standalone



3.2 Linux集群启动问题

  在学习过程中,如果使用一台Linux虚拟机上来做集群的话,还存在另外一个问题,我们使用上面的命令来启动Nacos

./startup.sh -p 3333

  会发现,完全无法启动,而且Linux虚拟机变的特别的卡。

  这个时候去查看start.out日志
在这里插入图片描述

  不断的循环这句话,一直无法正常启动,查看其它日志文件(logs下面提供了各种的日志文件)也没有发现出现错误,在网上查找相关资料也没有查找到这方面的问题,因此猜测原因可能是因为目前是cluster做集群,是不是因为还没有启动其它两个节点,所以导致当前节点一直在等待其它节点的启动(现在想起来当时跟个二傻子一样,阿里的大神能写出这样的代码?也就我这二傻子会这么想)。

  然后眼一闭,心一横,直接三个Nacos实例全部启动,终于……终于出现了我梦寐以求(唉,我这种菜鸟程序猿最怕的就是无法启动而且没有错误)的错误:OOM(关于OOM,详情

  瞅一眼Nacos生成的错误日志就能知道原因:
在这里插入图片描述
   1016860 kB ≈ 1000MB不到,再瞅一眼Nacos集群的JVM启动参数:
在这里插入图片描述
   堆就要2个g了。。。。能启动才怪。当然,这也是我自己的问题,每次启动了后,就直接clear控制台,其实控制台都已经说明了Emmmmmm
在这里插入图片描述
  最后就是修改启动参数就好了,修改startup.sh中的JVM启动参数,修改后如图:

if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    JAVA_OPT="${JAVA_OPT} -server -Xms128m -Xmx128m -Xmn64m -XX:MetaspaceSize=32m -XX:MaxMetaspaceSize=64m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

  在这我们也能知道,为什么Linux上单机能够启动,而集群模式无法启动,因为两者启动参数不同。



4. 学习学习,努力学习

  燃烧吧,青春!啊,青春.这就是青春~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装和使用Nacos作为配置中心,你可以按照以下步骤进行操作: 1. 下载Nacos:首先,你需要从Nacos的官方网站(https://github.com/alibaba/nacos/releases)下载适合你的版本。你可以选择下载Nacos的服务器端或者使用Docker容器运行。 2. 启动Nacos服务器:如果你下载了服务器端,解压缩下载的文件并进入解压后的目录。然后,执行以下命令启动Nacos服务器: ```shell sh startup.sh -m standalone ``` 这将启动一个独立的Nacos服务器实例。 3. 访问Nacos控制台:在浏览器中访问 http://localhost:8848/nacos,这是Nacos服务器的默认访问地址。你将看到Nacos控制台的登录页面。 4. 登录Nacos控制台:默认情况下,Nacos没有启用身份验证,因此你可以直接点击登录按钮登录到控制台。 5. 创建命名空间:在控制台中,你可以创建一个命名空间来组织和管理配置。点击左侧导航栏中的“命名空间”选项,然后点击“新建命名空间”按钮来创建一个新的命名空间。 6. 创建配置:在控制台中,点击左侧导航栏中的“配置管理”选项,后点击“新建配置”按钮来创建一个新的配置。在弹出的对话框中,填写配置的相关信息,如配置的Data ID、Group、配置内容等。 7. 获取配置:你可以使用Nacos提供的客户端SDK来获取配置。根据你选择的编程语言,引入相应的SDK,并使用SDK提供的API来获取配置。 以上是基本Nacos安装和使用步骤。你可以根据实际需求进一步了解Nacos的高级功能和配置。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值