核心功能
服务注册:Nacos Client会通过发送REST请求的方式向Nacos Server注册自己的服务,提供自身的元数据,比如ip地址、端口等信息。Nacos Server接收到注册请求后,就会把这些元数据信息存储在一个双层的内存Map中。
服务心跳:在服务注册后,Nacos Client会维护一个定时心跳来持续通知Nacos Server,说明服务一直处于可用状态,防止被剔除。默认5s发送一次心跳。
服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。 leader raft
服务发现:服务消费者(Nacos Client)在调用服务提供者的服务时,会发送一个REST请求给Nacos Server,获取上面注册的服务清单,并且缓存在Nacos Client本地,同时会在Nacos Client本地开启一个定时任务定时拉取服务端最新的注册表信息更新到本地缓存
服务健康检查:Nacos Server会开启一个定时任务用来检查注册服务实例的健康情况,对于超过15s没有收到客户端心跳的实例会将它的healthy属性置为false(客户端服务发现时不会发现),如果某个实例超过30秒没有收到心跳,直接剔除该 实例(被剔除的实例如果恢复发送心跳则会重新注册)
安装(前置条件,已安装jdk和MySQL,且这里是安装在了一个虚拟机上)
1,更改服务器名
hostnamectl set-hostname nacosqun
2,更改端口号(名随意,这里端口号第四组随意)
vim /etc/hosts
#写入
192.168.88.190 nacosqun
3,更改静态网络
vim /etc/sysconfig/network-scripts/ifcfg-ens33
4,重启网络
systemctl restart network
5,将nacos安装包上传Linux,然后解压
tar -zxf nacos-server-1.4.2.tar.gz
6,将nginx安装包上传Linux上,解压
tar -zxf nginx-1.8.1.tar.gz
7,移动到文件夹下,并重命名
mv nacos soft/nacos01
mv nginx-1.8.1 soft/nginx181
8, 进入 soft/nacos01/conf 修改配置文件
vim application.properties
server.port=8849
#取消注释
spring.datasource.platform=mysql
#取消注释(代表数据库有几个)
db.num=1
#mysql地址
db.url.0=jdbc:mysql://192.168.88.190:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=abc123
9,复制并重命名cluster.conf.example
cp cluster.conf.example cluster.conf
10,添加内容
vim cluster.conf
192.168.88.190:8849
192.168.88.190:8850
192.168.88.190:8851
11,在soft新建两个文件夹,并将nacos01内容复制到nacos02,nacos03
mkdir nacos02
mkdir nacos03
cp -r nacos01/* nacos02/
cp -r nacos01/* nacos03/
12,将nacos02 nacos03的application.properties端口号改掉
#nacos02对应
server.port=8850
#nacos03对应
server.port=8851
13,进入mysql数据库中
mysql -uroot -pabc123
#数据库名和配置文件中的要保持一致
create database nacos;
use nacos;
source /opt/soft/nacos01/conf/nacos-mysql.sql; 执行脚本
#开启所有用户登录的授权
use mysql;
# 查看系统用户表 (如果有host有%这个东西,则不用执行下面两条命令)
select user,host from user;
# 设置允许任意远程访问
update user set host = '%' where user = 'root';
# 刷新内存中的权限,就不用重启mysql服务了
flush PRIVILEGES;
14,退出mysql,启动nacos
sh /opt/soft/nacos01/bin/startup.sh
sh /opt/soft/nacos02/bin/startup.sh
sh /opt/soft/nacos03/bin/startup.sh
15,进入浏览器,http://192.168.88.190:8849/nacos,http://192.168.88.190:8850/nacos,http://192.168.88.190:8851/nacos分别都能看到nacos服务中心的界面则说明都启动成功,没有问题
./configure
make
make install
17,启动nginx
cd /opt/soft/nginx181/sbin/
./nginx
18,通过浏览器http://192.168.88.190看到welcome to nginx界面则启动成功
19,停止nginx
./nginx -s stop
20,进入nginx/conf/文件,修改配置文件
vim nginx.conf
添加以下内容(要求在http下面,和server平级)
upstream nacoscluster {
server 192.168.88.190:8849;
server 192.168.88.190:8850;
server 192.168.88.190:8851;
}
server {
listen 8847;
server_name localhost;
location /nacos/{
proxy_pass http://nacoscluster/nacos/;
}
}
21,然后再次启动nginx
cd /opt/soft/nginx181/sbin/
./nginx