下载
Nacos 2.1.2 安装包路径:https://github.com/alibaba/nacos/releases/tag/2.1.2
如果有新的 release 版本,可以装新版。
下载完成后,你可以在本地将 Nacos Server 压缩包解压,并将解压后的目录名改为“nacos-cluster1”,再复制一份同样的文件到 nacos-cluster2,以此来模拟一个由两台 Nacos Server 组成的集群。
配置
Nacos Server 的启动项位于 conf 目录下的 application.properties 文件里,别看这个文件里的配置项密密麻麻一大串,但大部分都不用你操心,直接使用默认值就好。你只需要修改这里面的服务启动端口和数据库连接串就好了。
启动项参数
因为你需要在一台机器上同时启动两台 Nacos Server 来模拟一个集群环境,所以这两台 Nacos Server 需要使用不同的端口,否则在启动阶段会报出端口冲突的异常信息。
Nacos Server 的启动端口由 server.port 属性指定,默认端口是 8848。我们在 nacos-cluster1 中仍然使用 8848 作为默认端口,你只需要把 nacos-cluster2 中的端口号改掉就可以了,这里我把它改为 8948。
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Include message field
server.error.include-message=ALWAYS
### Default web server port:
server.port=8848
接下来,你需要对 Nacos Server 的 DB 连接串做一些修改。在默认情况下,Nacos Server 会使用 Derby 作为数据源,用于保存配置管理数据。Derby 是 Apache 基金会旗下的一款非常小巧的嵌入式数据库,可以随 Nacos Server 在本地启动。但从系统的可用性角度考虑,我们需要将 Nacos Server 的数据源迁移到更加稳定的 MySQL 数据库中。
数据源配置
你需要修改三处 Nacos Server 的数据库配置。
- 指定数据源:spring.datasource.platform=mysql 这行配置默认情况下被注释掉了,它用来指定数据源为 mysql,你需要将这行注释放开;
- 指定 DB 实例数:放开 db.num=1 这一行的注释;
- 修改 JDBC 连接串:db.url.0 指定了数据库连接字符串,我指向了 localhost 3306 端口的 nacos 数据库,稍后我将带你对这个数据库做初始化工作;db.user.0 和 db.password.0 分别指定了连接数据库的用户名和密码,我使用了默认的无密码 root 账户。
以下是完整的数据库配置项。
#*************** Config Module Related Configurations ***************#
### 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?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=user
db.password.0=pwd
### Connection pool configuration: hikariCP
db.pool.config.connectionTimeout=30000
db.pool.config.validationTimeout=10000
db.pool.config.maximumPoolSize=20
db.pool.config.minimumIdle=2
修改完数据库配置项之后,接下来需要去 MySQL 中创建 Nacos Server 所需要用到的数据库 Schema 和数据库表。
创建 DB Schema 和 Table
-
创建数据库 nacos
create database nacos;
-
创建数据库表,切换到 nacos 数据库下,在 Navicat 中运行红框中的文件。
-
数据库准备妥当之后,我们还剩最后一项任务:添加集群机器列表。添加成功后就可以完成集群搭建了。
添加集群机器列表
Nacos Server 可以从一个本地配置文件中获取所有的 Server 地址信息,从而实现服务器之间的数据同步。所以现在我们要在 Nacos Server 的 conf 目录下创建 cluster.conf 文件,并将 nacos-cluster1 和 nacos-cluster2 这两台服务器的 IP 地址 + 端口号添加到文件中。下面是我本地的 cluster.conf 文件的内容。
## 注意,这里的IP不能是localhost或者127.0.0.1
192.168.3.136:8848
192.168.3.136:8948
这里需要注意的是,你不能在 cluster.conf 文件中使用 localhost 或者 127.0.0.1 作为服务器 IP,否则各个服务器无法在集群环境下同步服务注册信息。这里的 IP 应该使用你本机分配到的内网 IP 地址。如果你使用的是 mac 或者 linux 系统,可以在命令行使用 ifconfig 命令来获取本机 IP 地址。
en0: flags=8863 mtu 1500
options=400
ether f4:5c:89:ae:99:a7
inet6 fe80::102b:8c4d:cf44:e94a%en0 prefixlen 64 secured scopeid 0x5
inet 192.168.3.136 netmask 0xffffff00 broadcast 192.168.3.255
nd6 options=201
media: autoselect
status: active
启动
单机启动
sh startup.sh -m standalone
以集群方式启动
sh startup.sh
nacos is starting with cluster
nacos is starting,you can check the /Users/banxian/workspace/dev/middleware/nacos-cluster1/logs/start.out
快速停止和启动的命令
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos1/bin/shutdown.sh
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos2/bin/shutdown.sh
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos3/bin/shutdown.sh
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos1/bin/startup.sh
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos2/bin/startup.sh
sh /Users/changcheng/bigdata/SpringCloud/nacos/nacos3/bin/startup.sh
登录 Nacos 控制台
http://127.0.0.1:8848/nacos/#/login
用户名:nacos
密 码:nacos
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于