Nacos的那些事儿:集群搭建

Posted HERO笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos的那些事儿:集群搭建相关的知识,希望对你有一定的参考价值。



引言: Nacos 用于发现、配置和管理微服务。它提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。

本文环境:

CentOS 7.6; JDK1.8;mysql 8.0.21;nacos-server 1.4.1


一、单机安装



    单口相声:版本不同,部分细节不同。一切皆以官方文档为准。

1,下载及编译


//从GitHub拉取代码 如果下载代码比较慢,可以从Release地址下载 nacos-server-$version.zip 或者 nacos-server-$version.tar.gz 包。
git clone https://github.com/alibaba/nacos.git 

//编译打包 (install命令完成了项目编译、单元测试(跳过)、打包功能,同时把打好的可执行jar包布署到本地maven仓库) 
cd nacos/ 
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U

【坑】windows安装,在PowerShell窗口下执行maven命令行报错:Unknown lifecycle phase ".test.skip=true".
解决方案:'-Dmaven.test.skip=true' ,win10下 Shift+右击 打开 PowerShell 窗口,而 PowerShell 窗口下,执行带参数的需要’单引号’包起来才可以。或者直接在cmd窗口启动

2,单机启动


//进入编译好的Nacos文件夹
cd distribution/target/nacos-server-$version/nacos/bin

//启动 (linux用.sh , windows用.cmd)
./startup.sh 或 ./startup.cmd

//指定模式启动
./startup.sh -m standalone (单机)
./startup.sh -m cluster (集群)
ps:若启动失败,先查看日志确认下什么方式启动的。(不同版本默认方式不一样)日志会有提示信息,如:
  Runing in stand alone mode (单机)  或 Nacos is starting in cluster (集群)

【坑】nacos1.3.2不能启动(Aug 4, 2020)启动报错:db.num is null
 解决方案:
  编辑startup.cmd文件,把 set MODE="cluster"集群模式改为单机模式,set MODE = "standalone"
  或者配置mysql数据库解决:配置mysql数据库解决


3,快速访问


//默认端口为8848
http://yourlocalhost:8848/nacos/index.html
账户:nacos  
密码:nacos


二、集群安装


     

    群口相声:提高Nacos服务的吞吐量~


1.安装单机后,准备数据库


//文件夹distribution/target/nacos-server-$version/nacos/conf 中,有nacos的sql文件。
新建MySQL数据库,并运行nacos-mysql.sql


2.修改配置


//每个版本的配置有所不同,以对应的模块cluster.conf.example和application.properties.example为准。
//本次配置使用的是 nacos-server-1.4.1

//配置集群IP
拷贝cluster.conf.example一份为cluster.conf,并修改cluster.conf配置,改为自己的ip地址
192.16.1.110:8848

//集群方式需配置数据库地址,修改application.properties。
spring.datesource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_db?serverTimezone=UTC
   (加serverTimezone=UTC是为了防止连接数据库时报错 Caused by: java.sql.SQLException: The server time zone value is unrecognized or represents more than one time zone. )
db.user=root
db.password=root


3.启动服务



     保存配置文件,./start.sh -m cluster 启动访问即可 (注意配置文件里设置的端口)。


【坑】启动nacos时,总是启动不起来。日志提示Cannot allocate memory(分配内存失败)

原因: 查看启动脚本,发现单击启动时 默认的内存最小为256m, 如果是集群,则最小内存为 1G,所以在虚拟机上配置一个集群,可以能需要几个G的内存。

if [[ "${MODE}" == "standalone" ]]; then
    JAVA_OPT="${JAVA_OPT} -Xms512m -Xmx512m -Xmn256m"
    JAVA_OPT="${JAVA_OPT} -Dnacos.standalone=true"
else
    JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${BASE_DIR}/logs/java_heapdump.hprof"
    JAVA_OPT="${JAVA_OPT} -XX:-UseLargePages"

解决:

修改集群需要的内存大小。如: -Xms512m -Xmx512m -Xmn256m

4.简单使用



     界面化操作,编辑保存,即可在数据库里看到对应的数据:


Nacos的那些事儿(一):集群搭建

Nacos的那些事儿(一):集群搭建

        

        以上内容就是本次分享的Nacos集群搭建,赶快打开虚拟机上手吧!


Nacos的那些事儿(一):集群搭建

HERO笔记

Nacos的那些事儿(一):集群搭建


今日单曲循环~Nacos的那些事儿(一):集群搭建

This browser does not support music or audio playback. Please play it in Weixin or another browser. Nacos的那些事儿(一):集群搭建


关于文章,如果你有什么好的建议都可以私信我哦~~



以上是关于Nacos的那些事儿:集群搭建的主要内容,如果未能解决你的问题,请参考以下文章

Nacos源码系列—服务端那些事儿

Nacos源码系列—服务端那些事儿

Nacos源码系列—服务端那些事儿

rocketmq那些事儿之本地调试环境搭建

iOS App开发的那些事儿2:如何搭建合适的框架

05.Nacos集群搭建及高可用方案