一、演示环境说明

三台Linux服务器,
IP1:192.168.65.200;IP2:192.168.65.201;IP3:192.168.65.202,
MySql_V5.7.24:192.168.65.201
nacos版本:2.0.3
Nacos 官方文档 https://nacos.io/zh-cn/docs/quick-start.html
Nacos下载页面
https://github.com/alibaba/nacos/releases
百度网盘下载:
https://pan.baidu.com/s/1e23DaCHNkyCR2RSjxLwBoA 提取码:zhan

生产推荐服务配置: 4核以上cpu / 4G以上内存 / 100G+ SATA 磁盘 3台

二、安装准备工作

1.提供yum源,安装基础包。
2.提供时间服务地址,做时间同步设置。
3.提供mysql5.7以上数据库,做nacos数据持久化。
4、安装JDK1.8+,建议普通用户安装,nacos也使用普通用户安装。
5、安装依赖
yum install -y zip unzip libcurl lrzsz expat-devel gcc* cpp binutils glibc* zlib* zlib-devel* make automake autoconf libtool zlib* openssl* pcre pcre-devel* openssl-devel* tree nmap sysstat dos2unix telnet bash-completion bash-completion-extras vim nc lsof net-tools rsync ntp* open-sshclients screen nload sysstat wget kernel-devel xmlto nfs-utils rpcbind ncurses-devel openssl-devel unixODBC-devel m4 libX11-devel libXi-devel libXext-devel mesa*

三、Nacos单机部署

IP1服务器:192.168.65.200
3.1、创建nacos普通用户

[root@CentOS7-0001 /]# useradd -o -u 889 -g 0 nacos
[root@CentOS7-0001 /]# passwd nacos
[root@CentOS7-0001 /]# usermod -a -G root nacos
[root@CentOS7-0001 /]# su - nacos

3.2、 解压nacos到安装目录

[root@CentOS7-0001 /]# cd /srv/nacos/software
[nacos@CentOS7-0001 software]$ tar zxvf nacos-server-2.0.3.tar.gz

3.3 配置mysql数据库
root用户登录MySql,新建nacos用户,并授权。

mysql> create database nacos default character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant SELECT, INSERT, UPDATE, DELETE, ALTER, DROP, CREATE,Show view,Create view,Index on nacos.* to 'nacos'@'%' identified by 'nacos';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>

MySql5.7密码默认策略必须满足:数字、小写字母、大写字母 、特殊字符、长度至少8位,如果想去掉可在/etc/my.cnf配置文件[mysqld]节点下增加validate_password=off配置,重启数据库。

3.4、执行初始化脚本
l切换到nacos数据库初始化表,脚本nacos-mysql.sql(nacos解压目录下/nacos/conf)

mysql> source nacos-mysql.sql;

MySql初始化表信息:

3.5、 修改Nacos的Mysql的数据库配置
l将application.properties中的myql连接注释去掉,改成对应的数据库地址

说明:
修改nacos的access日志不输出(日志很大,建议关闭)
###If turn on the access log
server.tomcat.accesslog.enabled=false
如果需要支持Prometheus,修改如下
###Metrics for prometheus
management.endpoints.web.exposure.include=*

3.6、启动nacos

[nacos@CentOS7-0001 software]$  cd nacos2.0.3/bin
[nacos@CentOS7-0001 bin]$  startup.sh -m standalone

到此单机模式安装完成,默认端口:8848 默认用户密码:nacos/nacos
地址栏输入:http://192.168.65.100:8848/nacos进入到管理中台
关闭直接执行shutdown.sh命令。

四、nacos集群配置

4.1、修改集群配置
修改集群配置/srv/nacos/software/nacos-2.0.3/conf/cluster.conf(如果是单机的可以不用处理)
#打开配置文件所在目录
cd /srv/nacos/software/nacos-2.0.3/conf/
#复制修改集群配置文件名
cp cluster.conf.example cluster.conf
#修改集群配置(以下是3套nacos对应的IP和端口)
vim cluster.conf
172.24.129.200:8848
172.24.129.201:8848
172.24.129.202:8848

4.2、部署其他节点
将已经部署好的IP1服务上nacos拷贝到另外2台机器上
scp -r /srv/nacos/software/nacos-2.0.3 nacos@IP2:/srv/nacos/software/
scp -r /srv/nacos/software/nacos-2.0.3 nacos@IP3:/srv/nacos/software/

4.3、启动服务
无启动/关闭顺序,关闭使用./shutdown.sh,如果是单机启动使用 startup.sh -m standalone

[nacos@CentOS7-0001 software]$ cd /srv/nacos/software/nacos-2.0.3/bin
[nacos@CentOS7-0001 bin]$ ./startup.sh

4.4、至此集群版nacos配置完成
nacos端口 8848 初始账号/密码 nacos/nacos
Chrom或者火狐浏览器访问 http://192.168.65.200:8848/nacos
默认端口:

4.5、微服务调用nacos环境变量配置
所有需要调用nacos的服务器,添加环境变量。标红的地方具体请根据实际nacos信息调整,需要是开发不需要配置,直接加到微服务配置中即可,/home/nacos/.bashrc添加参考如下:

export SPRING_PROFILES_ACTIVE=dev export
SPRING_CLOUD_CONFIG_GROUP=ave_1.1.2 export
SPRING_CLOUD_CONFIG_USERNAME=nacos export
SPRING_CLOUD_CONFIG_PASSWORD=nacos1009 export
SPRING_CLOUD_CONFIG_URI=192.168.65.200:8848192.168.65.201:8848,192.168.65.202:8848 export JASYPT_ENCRYPTOR_PASSWORD=nacos

让环境变量生效 source /home/nacos/.bashrc

五、Nacos服务验证

服务注册 curl -X POST
‘http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080’
服务发现 curl -X GET
‘http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName’
发布配置 curl -X POST
“http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld”
获取配置 curl -X GET
“http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test”

六、Nacos集群原理说明
6.1、Nacos原理
Nacos 集群采用 Raft 算法实现,用于选举出 Nacos 集群中最重要的 Leader(领导)节点,
每个节点都拥有以下三种角色中的一种,最少三个节点才能组成一个有效的集群。
Leader:领导者,集群中最重要的角色,用于向其他节点下达指令。
Candidate:参选者,参与竞选 Leader 的节点。
Follower:跟随者,用于接收来自 Leader 或者 Candidate 的请求并进行处理。

6.2、Nacos 集群中选举过程
1、当最开始的时候,所有 Nacos 节点都没有启动。角色默认都为 Follower(跟随者)
2. 当第一个节点(192.168.65.200)启动后,节点角色会变为 Candidate(参选者),200 节点征求自己能否成为 Leader(领导者)节点。只有算上自己获得超过半数的选票,这个 Candidate 才能转正为 Leader。因为 200 发起选举投票,但 201/202 两个节点不在线,尽管 200 会投自己一票,但在总 3 票中未过半数,因此无法成为 Leader。因为第一次选举没有产生 Leader,过段时间200同时会再次向其他节点发起投票请求争取其他节点同意,直到同意票过半。
3. 在 Raft 算法中,成为 Leader 的必要条件是某个 Candidate 获得过半选票,如果 201 节点上线,遇到200 再次发起投票。201 投票给 200 节点,201 获得两票超过半数就会成为 Leader,202 节点自动成为 Follower(跟随者)。之后 202 节点上线,因为集群中已有 Leader,因此自动成为 Follower。
5. 当 Leader 节点宕机或停止服务,会在剩余 2 个 Nacos 节点中产生新的 Leader。如下所示202获得两票成为 Leader,201 成为 Follower,200已经下线但角色暂时仍为 Leader。
之后 200 恢复上线,但此时 Nacos 集群已有 Leader 存在,200 自动变为 Follower

说明:对于 Nacos 集群来说,只要 UP 状态节点不少于"1+N/2",集群就能正常运行。但少于“1+N/2”,集群仍然可以提供基本服务,但已无法保证 Nacos 各节点数据一致性。

6.3、Nacos 节点间的数据同步过程

在 Raft 算法中,只有 Leader 才拥有数据处理与信息分发的权利。因此当微服务启动时,假如注册中心指定为 Follower 节点,则步骤如下:
第一步,Follower 会自动将注册心跳包转给 Leader 节点;
第二步,Leader 节点完成实质的注册登记工作;
第三步,完成注册后向其他 Follower 节点发起“同步注册日志”的指令;
第四步,所有可用的 Follower 在收到指令后进行“ack应答”,通知 Leader 消息已收到;
第五步,当 Leader 接收过半数 Follower 节点的 “ack 应答”后,返回给微服务“注册成功”的响应信息。
此外,对于其他无效的 Follower 节点,Leader 仍会不断重新发送,直到所有 Follower 的状态与 Leader 保持同步。
以上便是 Nacos 节点间的数据同步主体流程

Linux(CentOS7)治理组件nacos(2.0.3版本)单机/集群安装部署详细图解相关推荐

  1. redis5.0.5版本搭建集群

                                         redis5.0.5版本搭建集群 安装redis5.0.5版本 将redis5.0.5解压 sudo tar -zxcf re ...

  2. 记一次 Centos7.x Hadoop3.x集群安装部署 Pig 0.17.0

    基本信息 官网 http://pig.apache.org/ 下载地址 http://www.apache.org/dyn/closer.cgi/pig https://mirror.bit.edu. ...

  3. centos7 下google Kubernetes(k8s)集群安装部署

    centos7 下google Kubernetes(k8s)集群安装部署 简介 安装环境 安装前准备 ECTD集群配置 命令含义: master节点配置 1.安装kubernetes和etcd 2. ...

  4. OpenDesktop 1.0开放桌面操作系统光盘启动安装过程详细图解

    OpenDesktop 1.0开放桌面操作系统光盘启动安装过程详细图解 前提∶你的光盘能直接启动,推荐使用光盘启动安装,刻录光盘要特别注意,使用支持64个字母长文件名的刻录软件. 一.准备工作:   ...

  5. aix7.1.4上安装12.1.0.2版本RAC集群时遇到的bug无法创建mgmt库

    1.具体故障表现: 在AIX 7100-04-03-1642版本操作系统上安装ORACLE 12.1.0.2版本GRID集群软件时,运行root.sh脚本正常构建集群: 之后图形界面脚本之后的操作,在 ...

  6. linux下,redis 3.2.1双节点集群安装部署

    为什么80%的码农都做不了架构师?>>>    一.环境准备 1.JDK环境准备,需卸载掉自带JDK (1)检查服务器是否自带jdk环境 [root@redis1 /]# rpm - ...

  7. rocketmq集群安装部署过程(4.0.0版本)、安装中的常见问题举例

    本篇博文参考:http://www.cnblogs.com/quchunhui/p/7126868.html,然后按照自己的环境进行重新编写 准备工作: 下载rocketmq-all-4.0.0-in ...

  8. Kafka3.2.0 + kraft集群安装部署说明

    1.安装环境说明 麒麟操作系统10 Kafka 版本:3.2.0 采用4节点部署 JDK版本:建议安装JDK11或JDK17.本次部署采用:jdk-11.0.16.1 服务器角色如下表: 主机名称 主 ...

  9. 在Centos7上进行Trino 377的集群安装部署

    目录 1. 集群规划 2. 安装依赖 3. 下载解压 4. 配置文件 4.1 服务器配置etc/config.properties 4.2 节点配置etc/node.properties 4.3 JV ...

最新文章

  1. 绘制多边形_XDGE_RayMarchine 1- 利用Frag Shader绘制图形
  2. 阿里Java岗P5-P7成长笔记【3283页PDF文档】
  3. Machine Learning week 7 quiz: Unsupervised Learning
  4. China Daily | 技术不是拦路虎:在线音乐教学可完美还原线下场景
  5. 超声波测距的数据应该如何显示到七针oled上_一文读懂京东方、TCL华星、三星显示和LGD之间的复杂关系...
  6. python定义一个字典、存储雇员号和姓名_【一点资讯】python后端开发工程师考证试题...
  7. Python查找Word文件中红色和加粗的文字(附元宵节送书活动中奖名单)
  8. 如何将js加入到HTML中
  9. 用三维Demo看懂各种优化算法,还有C++程序员福音
  10. 吸收塔如何提高吸收率_缺钙了该如何补钙?饮食补钙更健康
  11. 3DSMAX制作超时空未来动画场景-3D建模场景模型教程
  12. 微信公众号支付失败的各种原因
  13. 老子【道德经】全文翻译(全81章)
  14. Shapley算法总结
  15. 基金交易席位的制度沿袭
  16. 基于微信小程序音乐播放器的设计与实现毕业设计源码271156
  17. 学生个人网页制作成品
  18. 编程之禅 (小赵译版)(2)
  19. e会学计算机课后作业答案,大学语文网课答案e会学
  20. 基于SpringBoot的个人博客系统设计与实现

热门文章

  1. 小时“数感”好,长大才能数学好
  2. 由哪个log先输出引出的event loop思考
  3. vue项目中如何使用字体图标,简单清晰明了!
  4. 内观训练的好处及作用[为本教育]
  5. 支付宝获取敬业福套路,成功率高达99%
  6. 如何将手机中的照片制作成视频?想不到方法这么简单,涨知识了
  7. 2020年网络游戏实名认证,走出合规发展之路
  8. 鸿蒙oak是什么意思啊,Oak[奥克]的中文翻译及英文名意思
  9. excel导出设置分隔符_使用管道(或其他)定界符而不是逗号导出或保存Excel文件...
  10. JavaScript【事件委托实现排他思想】