服务注册中心NACOS集群部署手册
  yyka2UPIbcp2 2023年11月02日 37 0

1、部署架构图

服务注册中心NACOS集群部署手册_服务器

2、NACOS简介

2.1分布式注册中心、配置中心、管理中心;

2.2动态服务发现,服务配置,服务元数据和流量管理;

2.3以简单、优雅、高效的方式管理配置,实现配置的动态变更,大大降低运维成本;

3、使用场景

3.1数据库连接信息等敏感信息,降低因源码暴露导致数据泄露的风险;

3.2网站运营活动数据利用NACOS做动态配置;

3.3 系统服务参数限制方面,可以用NACOS做动态配置;

4、软件环境

4.1软件版本

组件

版本

JDK

1.8.0_181

NACOS

1.2.0

NGINX

1.16.1

MYSQL

5.7.30

4.2软件部署位置

节点类型

服务器系统

IP地址

部署服务位置

服务器A

centos7.8

192.168.0.7

/home/nacos/

/usr/java/jdk1.8

服务器B

centos7.8

192.168.0.8

/home/nacos/

/usr/java/jdk1.8

服务器C

centos7.8

192.168.0.9

/home/nacos/

/usr/java/jdk1.8

/usr/local/nginx/

/usr/local/mysql/

5、软件部署

5.1上传JDK、NACOS、NGINX、MySQL部署包到服务器;

5.2、配置JDK环境(3台)

使用rpm -qa | grep java 指令查看服务器是否安装过jdk,这里一般用于卸载openjdk,

[root@hudi1 ~]# rpm -qa|grep java

服务注册中心NACOS集群部署手册_服务器_02

5.2.1、openjdk卸载----卸载指令:

[root@hudi1 ~]# rpm -e --nodeps +安装包名 卸载

使用这一行命令也可以卸载

[root@hudi1 java]# rpm -qa | grep jdk

查看openjdk是否卸载干净

当显示为空时则表示系统自带的openjdk卸载干净了

服务注册中心NACOS集群部署手册_mysql_03

5.2.2、在/usr/创建java目录

把jdk-8u181-linux-x64.tar.gz 部署包放到/usr/java/目录下

执行解压指令

tar -xvf jdk-8u181-linux-x64.tar.gz  将jdk部署包解压到该目录下

修改包名 执行

5.2.3、配置JDK环境  vim /etc/profile 

profile文件的最下面添加

#jdk环境配置

export JAVA_HOME=/usr/java/jdk1.8

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

配置完成后执行source /etc/profile/使得配置生效

5.2.4、JDK安装校验

使用java -version 查看jdk环境是否生效,显示如下结果则jdk环境配置成功。

[root@hadoop2 usr]# java -version

服务注册中心NACOS集群部署手册_nginx_04

5.3 MySQL部署(192.168.0.9)

5.3.1、查看系统是否安装了MySQL数据库

如果Linux中安装了mariadb数据库,先卸载掉,因为CentOS 7.6 内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb;

5.3.1.1 查看系统是否安装了mariadb数据库(MySQL开源分支库)

[root@hudi1 ~]# rpm -qa |grep mariadb

服务注册中心NACOS集群部署手册_nginx_05

5.3.1.2 卸载mariadb数据库

[root@hudi1 ~]# rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64

[root@hudi1 ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

5.3.2、解压mysql-5.7.30-linux-glibc2.12-x86_64.tar

执行指令:

[root@hudi3 local]# tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar

解压后生成2个.gz包

1)、mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

2)、mysql-test-5.7.30-linux-glibc2.12-x86_64.tar.gz

[root@hudi3 local]# tar -xvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

修改包名

[root@hudi3 local]#  mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

5.3.3、在/usr/local/mysql目录下创建data目录

[root@hudi1 ~]# mkdir -vp /usr/local/mysql/data (v表示创建新目录都显示信息,p表示递归创建)

添加mysql用户及用户组

groupadd mysql

useradd mysql -g mysql (-g: 是指定用户所在组)

5.3.4、初始化MySQL数据库

切换到/usr/local/mysql/bin目录下执行:根据自己的MySQL目录修改成对应的目录

[root@hudi1 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

服务注册中心NACOS集群部署手册_服务器_06

5.3.5、记住初始化密码,或者重新开启一个终端,使用初始化密码登录mysql

登录进入mysql,在/usr/local/mysql/bin目录下执行命令:

[root@hudi1 bin]# ./mysql -uroot -p

服务注册中心NACOS集群部署手册_nginx_07

修改数据库初始化密码

mysql> alter user 'root'@'localhost' identified by '123456'; (修改密码自行定义遵循密码设置规则包含大小写数字及特殊字符)

服务注册中心NACOS集群部署手册_mysql_08

查看数据库

mysql> show databases;

服务注册中心NACOS集群部署手册_mysql_09

切换至mysql数据库

mysql> use mysql

服务注册中心NACOS集群部署手册_mysql_10

mysql> select host,user,authentication_string,plugin from user;

服务注册中心NACOS集群部署手册_nginx_11

5.3.6、设置mysql.server

[root@hudi1 bin]# cd ../support-files

[root@hudi1 support-files]# cp mysql.server /etc/init.d/mysqld

[root@hudi1 support-files]# vim /etc/init.d/mysqld

修改以下内容:

服务注册中心NACOS集群部署手册_nginx_12

5.3.7、更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

[root@hudi1 local]# chown -R mysql:mysql /usr/local/mysql

[root@hudi1 local]# chmod -R 755 /usr/local/mysql

服务注册中心NACOS集群部署手册_nginx_13

5.3.8、在mysql/data 目录下创建my.cnf文件

使用命令:

[root@hudi1 data]# vim my.cnf

[client]

port = 3306

socket = /tmp/mysql.sock

default-character-set=utf8

[mysqld]

port = 3306

socket = /tmp/mysql.sock

datadir = /usr/local/mysql/data

#开启binlog

#server-id=1

#log-bin=/usr/local/mysql/data/mysql-bin

#binlog_format = ROW

log-error = /usr/local/mysql/data/hudi3.err

pid-file = /usr/local/mysql/data/hudi3.pid

character-set-server =utf8

#是否忽略大小写,unix下lower_case_table_names默认值为 0 .Windows下默认值是 1(名称比较对大小写不敏感) .Mac OS X下默认值是 2 .

lower_case_table_names = 1

#是否自动提交 0表示不自动提交 1表示自动提交,mysql事务支持的引擎是InnoDB,默认情况下autocommit的值为1

autocommit = 1

服务注册中心NACOS集群部署手册_服务器_14

至此MySQL安装完成;

5.3.9、MySQL常用命令

[root@hudi1 bin]# /etc/init.d/mysqld start #MySQL启动

[root@hudi1 bin]# /etc/init.d/mysqld stop #MySQL停止

[root@hudi1 bin]# /etc/init.d/mysqld restart #MySQL重启

5.3.10 设置Mysql开机自启

5.3.10.1.将服务文件拷贝到init.d下,并重命名为mysqld

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

5.3.10.2.赋予可执行权限

[root@hudi3 data]# chmod +x /etc/init.d/mysqld 

5.3.10.3.添加服务

[root@hudi3 data]# chkconfig --add mysqld

5.3.10.4.显示服务列表

[root@hudi3 data]# chkconfig --list

服务注册中心NACOS集群部署手册_mysql_15

注:如果看到mysql的服务,并且3,4,5都是开的话则成功,如果是关,则

chkconfig --level 345 mysqld on

5.4 NACOS集群部署

5.4.1 解压安装包

[root@hudi3 opt]# tar -zxf nacos-server-1.2.0.tar.gz #解压安装包

[root@hudi3 opt]# ll

服务注册中心NACOS集群部署手册_mysql_16

5.4.2 初始化nacos数据库

将/nacos/conf/nacos-mysql.sql导入MySQL中

5.4.3 配置数据库连接

找到

# 表明用MySQL作为后端存储

pring.datasource.platform=mysql

#数据库实例数量

db.num=1

#数据库实例链接地址

db.url.0=jdbc:mysql://192.168.0.9:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true

db.user=root                #数据库用户名

db.password=123456             #数据库密码

服务注册中心NACOS集群部署手册_nginx_17

5.4.4 主机规划

节点

端口

192.168.0.7

8860

192.168.0.8

8850

192.168.0.9

8848

5.4.4.1将安装包分发到3台服务器/home/目录下(多台服务器可以选择默认不做这一步)

将/home/nacos/conf/application.properties 中的server.port分别修改成

server.port=8860        #192.168.0.7服务器

server.port=8850        #192.168.0.8服务器

server.port=8848        #192.168.0.9服务器

5.4.5 集群搭建

5.4.5.1集群配置文件修改

将/home/nacos/conf/cluster.conf.example 拷贝一份出来

[root@hudi3 conf]# cp cluster.conf.example cluster.conf

服务注册中心NACOS集群部署手册_mysql_18

在该文件下添加如下内容:(可以修改一份数据后使用scp命令将该文件分发到/home/nacos/conf目录下)

192.168.0.7:8860

192.168.0.8:8850

192.168.0.9:8848

服务注册中心NACOS集群部署手册_nginx_19

5.4.5.2修改启动脚本

修改bin目录下的startup.sh文件,有四处地方需要修改。

5.4.5.2.1、修改前(添加端口启动配置):

服务注册中心NACOS集群部署手册_服务器_20

修改后:

服务注册中心NACOS集群部署手册_mysql_21

5.4.5.2.2、修改前:

服务注册中心NACOS集群部署手册_nginx_22

修改后:

服务注册中心NACOS集群部署手册_nginx_23

5.4.5.2.3、修改前:(最下面添加倒数第二行添加-Dserver.port=${PORT}):

服务注册中心NACOS集群部署手册_mysql_24

修改后:

服务注册中心NACOS集群部署手册_服务器_25

5.4.5.2.4、修改启动内存大小,这里默认是2g2g1g,我们启动的时候可能会报内存不足异常(根据实际需要做调整,本次没做修改)

服务注册中心NACOS集群部署手册_服务器_26

全部改为256m:

服务注册中心NACOS集群部署手册_nginx_27

其他两台做同样修改配置

5.4.6集群启动

分别在各服务器/home/nacos/bin目录下执行

[root@hudi3 bin]# ./startup.sh -p 8848

[root@hudi1 bin]# ./startup.sh -p 8860

[root@hudi2 bin]# ./startup.sh -p 8850

服务注册中心NACOS集群部署手册_mysql_28

5.4.7 Web页面访问验证

http://192.168.0.9:8848/nacos/

服务注册中心NACOS集群部署手册_nginx_29

http://192.168.0.8:8850/nacos/

服务注册中心NACOS集群部署手册_服务器_30

http://192.168.0.7:8860/nacos/

服务注册中心NACOS集群部署手册_mysql_31

5.4.7.1 集群管理

可以查看到192.168.0.8服务器状态为leader

服务注册中心NACOS集群部署手册_mysql_32

现在我们先停止leader服务器的NACOS查看该集群是否会重新选举出新的leader

[root@hudi2 bin]# ./shutdown.sh

服务注册中心NACOS集群部署手册_服务器_33

我们可以在集群管理中看到该集群中192.168.0.8服务器的NACOS已经没有了,该集群重新选择了leader管理集群。

服务注册中心NACOS集群部署手册_服务器_34

重启192.168.0.8服务器的NACOS服务

服务注册中心NACOS集群部署手册_nginx_35

我们可以查看到192.168.0.8服务器的NACOS服务已经重新回到了集群监控中。

服务注册中心NACOS集群部署手册_服务器_36

5.5 NGINX安装

NGINX安装实现NACOS服务的负载均衡

5.5.1、使用SCP工具上传nginx-1.16.1.tar.gz安装包到/usr/local/目录

服务注册中心NACOS集群部署手册_nginx_37

5.5.2安装 (该步骤在有网络的条件下可以执行,离线安装可以配置yum源后安装或下载安装包上传安装)

5.5.3安装依赖

[root@hudi3  ~]# yum  -y  install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

5.5.4解压安装包

[root@hudi3 local]# tar zxvf nginx-1.16.1.tar.gz

服务注册中心NACOS集群部署手册_mysql_38

切换到解压后nginx-1.16.1目录下

[root@hudi3 local]# cd nginx-1.16.1

5.5.4.1编译

切换到解压后nginx-1.16.1目录下

[root@hudi3 local]# cd nginx-1.16.1

[root@hudi3 nginx-1.16.1]# ./configure --prefix=/usr/local/nginx

指令说明./configure  --prefix=PATH:指定nginx的安装目录。默认 /usr/local/nginx  

5.5.4.2 编译安装

[root@hudi3 nginx-1.16.1]# make && make install

服务注册中心NACOS集群部署手册_mysql_39

当编译完成后看到nginx目录下已经有了sbin目录基本上nginx已经编译安装成功了 

服务注册中心NACOS集群部署手册_nginx_40

5.5.4.3编辑配置文件 nginx.cnf

在/usr/local/nginx/conf目录下

[root@hudi3 conf]# vim nginx.cnf 

nginx.cnf内容如下:配置只需按照如下文件加粗标红修改成服务器对应内容

#user  nobody;

worker_processes  1;

#error_log  logs/error.log;

#error_log  logs/error.log  notice;

#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #nacos集群负载均衡

    upstream nacos-cluster {

        server 192.168.0.9:8848;

        server 192.168.0.8:8850;

        server 192.168.0.7:8860;

     }

    server {

        listen       8648;

        server_name  localhost;

        location / {

           proxy_pass http://nacos-cluster;

           index index.html index.htm;

  }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

服务注册中心NACOS集群部署手册_服务器_41

5.5.4.4 查看nginx.conf配置文件是否配置正确

[root@hudi3 sbin]# ./nginx -t

服务注册中心NACOS集群部署手册_mysql_42

5.5.4.5 启动nginx

[root@hudi3 sbin]# ./nginx

5.5.4.6查看nginx版本----必须使用完整路径

[root@hudi3 sbin]# ./nginx -V

服务注册中心NACOS集群部署手册_服务器_43

5.5.4.7验证是否安装成功

[root@hudi3 sbin]# netstat -naltp | grep nginx

服务注册中心NACOS集群部署手册_mysql_44

5.5.4.8关闭防火墙

[root@hudi3 sbin]# systemctl stop firewalld.service

打开浏览器-->域名栏中输入自己ip地址 安装成功会显示:

服务注册中心NACOS集群部署手册_服务器_45

5.5.4.9nginx服务启动、停止、重启命令

//启动nginx服务

[root@hudi3 sbin]# ./nginx

//停止nginx服务

[root@hudi3 sbin]# ./nginx -s  stop

//重启nginx服务

[root@hudi3 sbin]# ./nginx -s  reload

//也可用systemctl对nginx启动关闭

现在我们可以通过访问链接:http://192.168.0.9:8648/nacos/

来访问nacos服务注册中心了。

服务注册中心NACOS集群部署手册_nginx_46

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 运维经验总结 下一篇: Cisco GRE
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月10日   28   0   0 mysqlsqlUser
  jnZtF7Co41Wg   2023年12月11日   29   0   0 nginx客户端服务端
  stLBpDewCLT1   2023年12月08日   28   0   0 nginx
  Yoru5qB4TSKM   2023年12月10日   39   0   0 服务器重启IP
  jnZtF7Co41Wg   2023年12月10日   22   0   0 nginx客户端服务端NFS
  9JCEeX0Eg8g4   2023年12月11日   25   0   0 mysql配置文件