赞
踩
Nacos 官方手册:https://nacos.io/zh-cn/docs/quick-start.html
下载地址:https://github.com/alibaba/nacos/releases
下载压缩包解压即可
Nacos 服务默认端口为 8848
如要更改,在 nacos\conf\application.properties 中找到 server.port 更改即可
在 nacos\bin 下有 startup.cmd 脚本,双击打开会默认以集群模式启动
集群需要额外的配置,我们暂时以单体启动
在 nacos\bin 打开命令行,使用命令 startup.cmd -m standalone
启动
浏览器访问 http://localhost:8848/nacos 进入控制台
最初登录账户与密码均为 nacos,进入之后可以修改密码
父工程添加 spring-cloud-alibaba-dependencies:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.5.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
服务模块中添加 spring-cloud-starter-alibaba-nacos-discovery:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
在 application.yaml 中添加如下配置:
spring:
application:
name: order-service # 服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos 地址
由于 nacos 的服务在外部启动,只需启动服务模块即可
启动之后在 nacos 服务列表即可看到服务信息:
官方文档:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
集群多节点的数据统一由数据库实现
在 nacos\conf 目录中提供了有 nacos-mysql.sql 脚本
我们在自己的 MySQL 中,新建 nacos 数据库,执行脚本即可
在 nacos\conf 目录中提供了 cluster.conf.example 文件
可以复制一份并删除 .example 后缀,再做修改
配置集群内的节点地址即可 (如果写127.0.0.1可能无法被识别,请写真实地址)
上面以本机的三个不同端口为例
接下来配置节点,修改 application.properties 文件
(数据库密码不要用引号包裹)
如要单机模拟集群效果,可以将 nacos 解压文件复制三份,并分别配置端口号即可
由于 nacos 默认以集群模式启动,双击 nacos\bin 目录下的 startup.cmd 即可启动
按 ctrl + c 或关闭窗口,或者双击 shutdown.cmd 即可关闭
Nginx 服务器实现反向代理,通过负载均衡来选择要访问的节点
Nginx 配置如下(添加到 http 标签中):
# nacos 集群 upstream nacos-cluster { server 127.0.0.1:8847; server 127.0.0.1:8848; server 127.0.0.1:8849; } server { # 监听端口 listen 80; server_name localhost; # 反向代理 location /nacos { proxy_pass http://nacos-cluster; } }
启动 nginx 后访问 localhost/nacos 即可
将服务的 nacos 地址改为 nginx 的地址即可
spring:
application:
name: order-service
cloud:
nacos:
server-addr: localhost:80 # 80 为 nginx 服务端口
通常在 yaml 中配置数据库密码时,密码是纯数字习惯用双引号包裹
但在这里有引号会报错,无法连接数据库
应该是引号直接被转义了
在 cluster.conf 中如果用 127.0.0.1 做 ip 地址
服务启动后,cluster.conf 会被添加一个真实 ip 地址,端口号与当前节点配置的相同
应该是 127.0.0.1 不能被使用,localhost 情况相同
另外由于 nacos 等集群内所有节点都正常启动,才能进行服务注册
而我们自己设置的几个 127.0.0.1 不能正常使用,故而导致服务无法注册
服务启动时会报下面的错误:
failed to req API:/nacos/v1/ns/instance after all servers([localhost:80]) tried: ErrCode:400
MySQL 总是连接失败,偶尔能成功
去掉 url 里的 useSSL=false 参数就好了,或者改成 true
可能是我用的 mysql 8 的原因,如果是 5 应该没有问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。