前言
- Nacos是SpringCloudAlibaba架构中最重要的组件。
- Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。
- 能够无缝对接Springcloud、Spring、Dubbo等流行框架。
- nacos支持a(高可用)p(分区容错)和c(一致性)p的切换默认为ap, eureka仅支持ap,zookeeper仅支持cp
Nacos与eureka比较
安装步骤
1、前提
需要java环境,提前装好jdk,版本>=1.8,未安装可参考文章:
需要一台可连接的mysql数据库,如未搭建可参考文章:
2、下载nacos包并上传至linux机器的/root/nacos目录下
https://github.com/alibaba/nacos/releases/tag/2.1.0
3、解压至/usr/local/nacos下,软件一般都装在/usr/local目录下
# 创建nacos目录
mkdir -p /usr/local/nacos
# 解压
tar -zxvf nacos-server-2.1.0.tar.gz -C /usr/local/nacos
解压后发现有两层nacos目录,可以将里面的一层改个名
mv ./nacos/ ./nacos-2.1.0
4、创建nacos持久化数据库
机器提前安装一台mysq,执行如下操作,如未安装,可参考:
创建nacos数据库
mysql -u root -p -e "create database nacos character set utf8mb4"
连接mysql,创建ncaos用户并授权
# 创建用户
create user 'nacos'@'localhost' identified by 'nacos';
# 授权
grant all on nacos.* to 'nacos'@'localhost';
导入初始化sql脚本
当前目录下执行(输入密码)
mysql -u root -p -D nacos < ./nacos-mysql.sql
进入mysql,查看导入的表结构
5、修改cluster.conf配置文件
cp cluster.conf.example cluster.conf
vim cluster.conf
端口连续会发生端口占用的情况
nacos2.0之后,nacos会占用四个端口,如果伪集群采用的端口是连号方式,会导致端口被占用。
比如,我们端口采用8848/8849/8859,则会出现端口冲突问题。
nacos2.0会占用的4个端口为:
- nacos端口:8848-nacos默认端口;
- raft协议端口:7848-raft port,即raft协议端口;
- grpc协议两个端口:9848-grpc协议端口(nacos端口+1000),9849-grpc协议端口(nacos+1001)
上一个端口号对应的grpc协议的端口之一(+1001)就会和下一个端口号对应的grpc协议(+1000)端口冲突。
6、修改application.properties配置文件
cp ./application.properties.example ./application.properties
vim application.properties
7、将nacos-2.1.0复制3份,分别以端口命名
8、分别修改他们的端口为8848、8850、8852
9、启动集群
./nacos-2.1.0-8848/bin/startup.sh
./nacos-2.1.0-8850/bin/startup.sh
./nacos-2.1.0-8852/bin/startup.sh
10、访问10.10.10.10:8848/nacos,登录
默认账号:nacos/nacos
查看集群状态
nginx反向代理配置
http {
# nacos
upstream nacoscluster {
server 127.0.0.1:8848;
server 127.0.0.1:8850;
server 127.0.0.1:8852;
}
server {
listen 8840;
server_name localhost;
location / {
proxy_pass http://nacoscluster;
}
}
访问10.10.10.10:8840/nacos
关于后续
- 精彩内容请持续关注
- 后续SpringCloud整合nacos实现服务注册与发现会用到本次集群,敬请期待