Nacos管理界面|集群搭建
Naocs的管理界面详细介绍,说明常用的功能介绍
部署Nacos集群模式
文章目录
注意到:上图有一个public 这个是我通过 namespace来设置得到命名空间:
作用:
可以对不同的项目的不同的模块进行更好的分离和管理,
cloud:
nacos:
discovery:
namespace: public # 默认是public 也可以不配置
一、服务列表
左侧是一个功能列表选择区域
,最顶部的TOP区域是Nacos管理页面的导航,最常用的也是文档
用于方便查看文档教程参考。- 中间的main区域是显示了具体的操作:服务列表,搜索功能,创建服务的功能…
服务名:
创建服务是为其定义的名称分组名称:
用于吧各个服务分离出发保护阈值:
用于检测心跳参数,来决定该服务是否已经挂掉没有:false
;挂掉:true
集群数目:
用于搭建Nacos的集群设置。
1.1 创建服务
可以先创建空服务,等待服务的注册
我们可以创建一个空的服务,来等待其他的人员去用这个已经声明好的服务名称去创建真正的服务。
1.2 服务详情
服务名:即项目名,对应配置文件中的
spring:
application:
name: xxx
分组: 作用与命名空间大致相同,不过命名空间一般用于项目之间的区别,分组一般用作各个开发环境的区别
。
永久实例可以通过 ephemeral: false 来设置
,对比临时实例,注册临时实例的服务,如果宕机了,nacos 会删除该服务,永久实例不会。
永久实例:意思就是当服务挂掉也不会过30s将服务从管理界面删除
保护阈值:
雪崩保护:填 0~1 的数字,例如设置 0.6。
spring.cloud.nacos.discovery.ephemeral=false,当服务宕机了也不会从服务列表中剔除。
健康实例|不健康实例:
当健康实例数/总实例数量 < 保护阈值
,依然会使用不健康的实例,防止服务雪崩,后期会结合 sentinel 来对服务进行熔断和降级。
雪崩保护就是对应着我们的保护阈值,雪崩就是所有的服务都不可用
权重
权重越大,为该服务所分配的流量就越大
订阅者列表
订阅者列表里面可以查询服务所在Java进程的详细信息
二、命名空间
创建命名空间
创建namespce命名空间的好处是可以在注册的时候,通过不同的是命名空间来完成对服务的不同的管理
那么我们在注册服务的时候,就可以通过namespce来是实现对不同服务的管理与统一协调。
三、Naocs更多配置
在Nacos里面,我们日常开发过程中,需要知道了解一些常用的配置命令,详细如下所示:
server:
port: 8011
# 应用名称(nacos 会自动将该名称当作服务名称)
spring:
application:
name: stock-server
cloud:
nacos:
server-addr: 127.0.0.1:8848
discovery:
username: xxxxxx
password: xxxxxx
namespace: public # 相同特征的服务进行归类分组管理
ephemeral: false # 永久实例
network-interface: en4 # 当 IP 未配置时,注册的 IP 为此网卡配置的额 IP 地址,如果此项也未配置,默认取第一块网卡的地址
# service: 默认取${spring.application.name},也可以通过该选项配置
# group: 默认 DEFAULT_GROUP,用来做更细的相同特征的服务进行归类分组管理
# weight: 通常要结合 按照 权重的负载均衡策略,权重越高分配流量越高
# ip: 当前服务ip (默认 ip 和 port 都会自动探测到)所以可以不需要设置
# port: 当前服务端口 可以不需要设置
# metadata: version=1 可以结合元数据做拓展 key-value的形式
四、Nacos集群搭建
官网教程:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html
1、预备环境准备
在Linux环境上进行搭建环境:
- Centos7
- JDK1.8
- Maven3.8.x
- 3个或3个以上的Nacos节点才能构建Nacos集群
2、下载Nacos Linux的安装包
通过两种方式来获取到Naocs的linux的安装包
1️⃣从GitHub上下载源码的方式,由于下载速度太慢,所以一般都是去找网盘地址
2️⃣在linux上通过拉去来下载
这里我提供一个Nacos1.4.1的linux安装连接
https://pan.baidu.com/s/1l-HvbHlt3KOPPuF4NApEzg 密码: 5j2o
3️⃣通过xftp上传到linux服务器上的opt目录下,进入到该目录下,解压缩:
# tar -zxvf nacos-server-1.4.1.tar.gz
3、集群搭建
复制三个nacos的解压缩后的文件夹,命三个不同的名字,然后用于区分不同的客户端。
nacos8849;nacos8850;nacos8851
- 1️⃣
修改config里面的application.properties
文件的配置,使用外置的数据源。
#*************** 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=nacos
# db.password.0=nacos
吧把上述截图的datasource;dbnum;dburl;dbusername;dbpassword都注释放开
注意;如果要使用MySQL数据源的话,我们需要注意的是要用到MySQL的5.7+以上的版本
-
2️⃣
修改cluster.conf.example
的文件里面用于配置Naocs集群下的ip地址- 这里的三个端口分别是8849;8850;8851
ip:端口
example-->
192.168.111.123:8849
最后要把nacos的数据库新建出来,然后在将数据文件导入到新创建的MySQL数据库中
- 3️⃣
修改bin目录下的startup.sh文件
,将其启动的方式为cluster模式,以及修改集群模式下的JVM参数(根据虚拟机配置的内存自行决定是否修改)
- 4️⃣
启动Nacos8849
,并查看日志,是否启动成功
sh startup.sh # 回到bin目录下启动nacos
启动后会提示查看日志
根据提示,我们查看日志
tail -f ../logs/start.out
出现以上的截图效果,就表示参数配置的没有问题,nacos其余的从机,复制nacos8849的配置即可
这是我们也可以访问8849端口去查看nacos的管理端
浏览器输入登陆地址:http://192.168.188.129:8849/nacos/index.html
发现是ok的,但是也有的会出现无法登录的情况,这时候,我们需要检查8849的端口号是否放行
[root@centos7 bin]# firewall-cmd --zone=public --add-port=所需放行的端口号/tcp --permanent
success
# 等待出现上述命令出现success回应的时候,在输入下面的命令
[root@centos7 bin]# systemctl restart firewalld.service
- 5️⃣复制nacos8849里面刚才修改过的3个文件
[root@centos7 opt]# cp nacos8849/conf/application.properties ./nacos8850/conf/application.properties
cp:是否覆盖"./nacos8850/conf/application.properties"? y
[root@centos7 opt]# cp nacos8849/conf/application.properties ./nacos8851/conf/application.properties
cp:是否覆盖"./nacos8851/conf/application.properties"? y
[root@centos7 opt]# cp nacos8849/conf/cluster.conf ./nacos8851/conf/cluster.conf
[root@centos7 opt]# cp nacos8849/conf/cluster.conf ./nacos8850/conf/cluster.conf
[root@centos7 opt]# cp nacos8849/bin/startup.sh ./nacos8850/bin/startup.sh
cp:是否覆盖"./nacos8850/bin/startup.sh"? y
[root@centos7 opt]# cp nacos8849/bin/startup.sh ./nacos8851/bin/startup.sh
cp:是否覆盖"./nacos8851/bin/startup.sh"? y
[root@centos7 opt]# vim nacos8850/conf/application.properties
[root@centos7 opt]# vim nacos8851/conf/application.properties
- 6️⃣查看集群是否搭建完毕
4、使用Nginx完成反向代理,负载均衡
前提:事先在linux虚拟机上安装好nginx
1️⃣ 进入到nginx的安装目录下
2️⃣修改nginx.conf文件
upstream nacoscluster {
server 192.168.188.129:8849;
server 192.168.188.129:8850;
server 192.168.188.129:8851;
}
server {
listen 8847;
server_name localhost;
location /nacos/{
proxy_pass http://nacoscluster/nacos/;
}
}
3️⃣然后启动nginx
./nginx
4️⃣访问http://192.168.188.129:8847/nacos
这个时候我们只需要将我们的微服务的address改成nginx的地址即可实现