封装安装完成的Linux,linux下nacos安装

文章目录

1.下载

解压并移动

单机模式启动

启动时出现报错

错误一

解决方案

错误二

解决方案

访问web地址

注意防火墙的端口8848

集群

1.配置 cluster.conf文件

2.创建数据库

3.配置application.properties

4.分别启动三台服务器

5.遇到的问题一

5.1 mysql8问题

5.1.1 下载地址

5.1.2 修改

5.1.3 修改naming这个项目 com.alibaba.nacos.naming.healthcheck 包下的 MysqlHealthCheckProcessor 类的第24行导包为

5.1.4修改console项目下的配置文件

5.1.5 打包

5.1.6 打包完成后,再次安装nacos,步骤按照上面安装的说明

5.1.7 再次修改application.properties配置文件

5.2 unable to find local peer: 192.168.47.128:8848

1.下载

下载地址[.tar.gz] https://github.com/alibaba/nacos/releases

解压并移动

tar -zxvf nacos-server-1.1.4.tar.gz

mv nacos /usr/local

单机模式启动

cd /usr/local/nacos/bin

sh startup.sh -m standalone

或启动

bash startup.sh -m standalone

启动时出现报错

错误一

/usr/java/jdk1.8.0_181/bin/java -Xms512m -Xmx512m -Xmn256m -Dnacos.standalone=true -Djava.ext.dirs=/usr/java/jdk1.8.0_181/jre/lib/ext:/usr/java/jdk1.8.0_181/lib/ext:/usr/local/nacos/plugins/cmdb:/usr/local/nacos/plugins/mysql -Xloggc:/usr/local/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -Dnacos.home=/usr/local/nacos -Dloader.path=/usr/local/nacos/plugins/health -jar /usr/local/nacos/target/nacos-server.jar --spring.config.location=classpath:/,classpath:/config/,file:./,file:./config/,file:/usr/local/nacos/conf/ --logging.config=/usr/local/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288

nacos is starting with standalone

nacos is starting,you can check the /usr/local/nacos/logs/start.out

查看/usr/local/nacos/logs/start.out,看文件中提示具体什么错误

如报下面错误:

java.io.FileNotFoundException: /usr/local/nacos/conf/cluster.conf (没有那个文件或目录)

at java.io.FileInputStream.open0(Native Method)

at java.io.FileInputStream.open(FileInputStream.java:195)

at java.io.FileInputStream.(FileInputStream.java:138)

at com.alibaba.nacos.core.utils.SystemUtils.readClusterConf(SystemUtils.java:124)

at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.logClusterConf(StartingSpringApplicationRunListener.java:141)

at com.alibaba.nacos.core.listener.StartingSpringApplicationRunListener.contextPrepared(StartingSpringApplicationRunListener.java:91)

at org.springframework.boot.SpringApplicationRunListeners.contextPrepared(SpringApplicationRunListeners.java:60)

at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:374)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)

at com.alibaba.nacos.Nacos.main(Nacos.java:33)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)

at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)

at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

at org.springframework.boot.loader.PropertiesLauncher.main(PropertiesLauncher.java:593)

解决方案

由于启动的默认由cluster改成了standalone单机启动模式,但是启动仍然是集群模式启动,并且抛出上述找不到cluster.conf文件

bash startup.sh -m standalone

错误二

systemctl start nacos.service

报如下错误:

nacos.service

Loaded: loaded (/usr/lib/systemd/system/nacos.service; bad; vendor preset: disabled)

Active: failed (Result: exit-code) since 一 2019-10-28 22:31:25 CST; 19s ago

Process: 2847 ExecStart=/usr/local/nacos/bin/startup.sh -m standalone (code=exited, status=1/FAILURE)

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: which: no javac in (/usr/...

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: readlink: 缺少操作数

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: Try 'readlink --help' for...

10月 28 22:31:25 localhost.localdomainP1 systemd[1]: nacos.service: control process...1

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: dirname: 缺少操作数

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: Try 'dirname --help' for ...

10月 28 22:31:25 localhost.localdomainP1 systemd[1]: Failed to start nacos.service.

10月 28 22:31:25 localhost.localdomainP1 startup.sh[2847]: ERROR: Please set the JAV...

10月 28 22:31:25 localhost.localdomainP1 systemd[1]: Unit nacos.service entered fai....

10月 28 22:31:25 localhost.localdomainP1 systemd[1]: nacos.service failed.

解决方案

需要更改相应启动文件的JDK配置

将如下三行注释掉,并将第一行的配置修改为JDK的位置。

如何找到JDK位置

whereis java

找到JDK的位置为: /usr/java/jdk1.8.0_181

vim startup.sh

原文为:

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java

[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME

修改后

[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java/jdk1.8.0_181

#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java

#[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java

#[ ! -e "$JAVA_HOME/bin/java" ] && unset JAVA_HOME

访问web地址

curl http://127.0.0.1:8848/nacos/index.html

http://127.0.0.1:8848/nacos/index.html

登录的用户名和密码默认的都是nacos

注意防火墙的端口8848

集群

本例的安装目录为/usr/local/nacos

参考链接: https://www.cnblogs.com/lhlucky/p/nacoscluster.html

1.配置 cluster.conf文件

在文件里添加相关服务器IP,三台机器都做相同的配置

cd /usr/local/nacos/conf

cp cluster.conf.example cluster.conf

vim cluster.conf

cluster.conf文件内容为:

#it is ip

#example

#10.10.109.214

#11.16.128.34

#11.16.128.36

192.168.47.128:8848

192.168.47.129:8848

192.168.47.130:8848

2.创建数据库

脚本位置 /usr/local/nacos/conf/nacos-mysql.sql

将脚本里的SQL语句直接导入既可

3.配置application.properties

cd /usr/local/nacos/conf

vim application.properties

增加内容为:

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://192.168.47.128:5186/nacos_config?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

db.user=cici

db.password=123123

4.分别启动三台服务器

cd /usr/local/nacos/bin

sh startup.sh

观察日志,看是否有异常打印【cat或者tailf命令】

/usr/local/nacos/logs/nacos.log

/usr/local/nacos/logs/naming-raft.log

/usr/local/nacos/logs/start.out

启动成功后访问,观察集群

http://192.168.47.128:8848/nacos/index.html

http://192.168.47.129:8848/nacos/index.html

http://192.168.47.130:8848/nacos/index.html

5.遇到的问题一

5.1 mysql8问题

直接下载的稳定版本nacos编译后的文件,不支持mysql8及其以上版本,本例中使用的为1.1.4版本

-参考链接

https://www.cnblogs.com/gyli20170901/p/11245270.html

解决方案

下载nacos的源码并更改mysql驱动的版本

5.1.1 下载地址

https://github.com/alibaba/nacos

5.1.2 修改

修改最外层pom.xml 中 mysql驱动版本,我这边使用的是8.0.16

mysql

mysql-connector-java

8.0.16

5.1.3 修改naming这个项目 com.alibaba.nacos.naming.healthcheck 包下的 MysqlHealthCheckProcessor 类的第24行导包为

import com.mysql.cj.jdbc.MysqlDataSource;

5.1.4修改console项目下的配置文件

-由于mysql8及其以上版本需要带时区,所以还需要修改 console这项目 resources/META-INF下 nacos-default.properties这个文件中的db.url

db.url.0=jdbc:mysql://11.162.196.161:3306/diamond_devtest?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

db.url.1=jdbc:mysql://11.163.152.91:3306/diamond_devtest?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

5.1.5 打包

cmd命令窗口进入项目根目录执行

mvn -Prelease-nacos clean install -U

5.1.6 打包完成后,再次安装nacos,步骤按照上面安装的说明

包的地址[根目录\distribution\target]

5.1.7 再次修改application.properties配置文件

cd /usr/local/nacos/conf

vim application.properties

修改为

spring.datasource.platform=mysql

db.num=1

db.url.0=jdbc:mysql://192.168.47.128:5186/nacos_config?serverTimezone=GMT%2B8&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

db.user=cici

db.password=123123

5.2 unable to find local peer: 192.168.47.128:8848

参考链接 https://www.wandouip.com/t5i278697/

java.lang.IllegalStateException: unable to find local peer: 172.16.26.250:8848, all peers: [120.79.167.88:8848, 119.23.104.130:8848, 47.101.47.127:8848]

at com.alibaba.nacos.naming.consistency.persistent.raft.RaftPeerSet.local(RaftPeerSet.java:224)

at com.alibaba.nacos.naming.monitor.PerformanceLoggerThread.collectMetrics(PerformanceLoggerThread.java:100)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)

at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)

at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:93)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)

at java.util.concurrent.FutureTask.run(FutureTask.java:266)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at java.lang.Thread.run(Thread.java:748)

2019-10-18 14:06:45,000 ERROR Unexpected error occurred in scheduled task.

因为我部署的三台服务器是虚拟机上的,属于内网,都是在一个网段的。

解决方案

编辑启动文件 /usr/local/nacos/bin/startup.sh

vim /usr/local/nacos/bin/startup.sh

依次修改三台服务器的启动文件

# 单机模式对应的启动参数

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"

# *新增以下参数设置本机ip地址*

JAVA_OPT="${JAVA_OPT} -Dnacos.server.ip=192.168.47.128"

fi

if [[ "${FUNCTION_MODE}" == "config" ]]; then

JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=config"

elif [[ "${FUNCTION_MODE}" == "naming" ]]; then

JAVA_OPT="${JAVA_OPT} -Dnacos.functionMode=naming"

fi

修改之后再次启动即可

#关闭服务

cd /usr/local/nacos/bin

./shutdown.sh

#启动服务

sh startup.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值