本地启动Nacos出现的两个问题:
1、Nacos单机模式与集群模式启动(java.net.UnknownHostException: jmenv.tbsite.net异常解决)
2020/10/09 | Spring | admin| 暂无评论 | 1356 views
Nacos的下载地址:https://github.com/alibaba/nacos/releases
(1)单机模式启动:
修改bin目录下的startup.cmd文件,将set MODE="cluster"一行改成set MODE="standalone",然后直接运行startup.cmd。运行成功后,访问http://localhost:8848/nacos可以查看Nacos的主页,默认账号密码都是nacos。
(2)数据库集群模式启动:
i)在MySQL中新建数据库:
库名:nacos_config
字符集:utf8 — UTF-8 Unicode
排序规则:utf8_general_ci
ii)将nacos/conf/nacos-mysql.sql文件里的sql脚本执行到上面新建的数据库中。
iii)修改nacos/conf/application.properties配置文件,修改以下几项:
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?autoReconnect=true&connectTimeout=1000&socketTimeout=3000&useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false&useSSL=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
db.user=root
db.password=root
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?autoReconnect=true&connectTimeout=1000&socketTimeout=3000&useUnicode=true&characterEncoding=utf-8&failOverReadOnly=false&useSSL=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
db.user=root
db.password=root
iv)维持bin目录下的startup.cmd文件中的set MODE="cluster"这一行不变,然后将nacos/conf/cluster.conf.example文件复制一份改名为cluster.conf,但是要保持里面内容为空。
需要注意的是,这一步骤不能省略也不能出错。如果没有cluster.conf文件在启动时就会出现本篇文章标题中的那个错误;如果cluster.conf文件中添加了服务地址,后续可能导致服务没法注册到Nacos,爆java.net.SocketTimeoutException: Read timed out错误。具体原因我看了下nacos-1.3.2的源码,应该是com.alibaba.nacos.naming.web.DistroFilter#doFilter方法的处理逻辑有些问题,如果cluster.conf文件存在服务地址,可能导致无限循环转发请求,然后就出现前面那个java.net.SocketTimeoutException: Read timed out错误了。切记切记!
2、Nacos直接命令行启动报错Unable to start web server,Unable to start embedded Tomcat
本地安装的JDK貌似不兼容。
原版本:1.8.0_144
现版本:1.8.0_191
于是换jdk版本,由于oracle 官网下载的页面有问题导致无法下载。
于是找到的网上的资料
https://pan.baidu.com/s/1za76Uk4mm7L1W0r6H6BBUg 提取码:a6g8
终于跑起来了~~