单节点Nacos集群部署

一、Nacos集群部署

一、环境准备

注意!!!
1.Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

1.64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。

2.64 bit JDK 1.8+;下载 & 配置。https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

3.Maven 3.2.x+;下载 & 配置。
https://maven.apache.org/download.cgi

4.
jdk安装
(1)下载包 解压到/zhou/softwares
(2)创建软链接 ln -s jdk1.8.0_291/ jdk
(3)环境变量
[root@nacos ]# vim /etc/profile.d/jdk.sh 
#!/bin/bash
export JDK_HOME=/zhou/softwares/jdk
export PATH=$PATH:$JDK_HOME/bin

[root@nacos ]#source /etc/profile.d/jdk.sh 

5.maven安装
(1)下载包 解压到/zhou/softwares
(2)创建软链接 ln -s apache-maven-3.8.2/ maven
(3)环境变量
[root@nacos ~]# vim /etc/profile.d/maven.sh 
#!/bin/bash
export  MAVEN_HOME=/zhou/softwares/maven/
export PATH=$PATH:$MAVEN_HOME/bin

[root@nacos ~]#source /etc/profile.d/maven.sh 

二、服务器准备

一.服务器的选型
1.选择4核16G的服务器

2.准备八台服务器分别是:
  两台nginx 三台nacos服务器 三台数据库(一主两从)

三、2.下载源码或者安装包

你可以通过源码和发行包两种方式来获取 Nacos。

三、从 Github 上下载源码方式

git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path

#cd distribution/target/nacos-server-$version/nacos/bin
cd distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/

四、下载编译后压缩包方式

您可以从 最新稳定版本 下载 nacos-server-$version.zip 包。

  unzip nacos-server-$version.zip 或者 tar -xvf nacos-server-$version.tar.gz
  cd nacos/bins
  

五、部署

一、创建目录/mynacos:

mkdir /mynacos
mv nacos /mynacos
mkdir -p /zhou/{softwares,logs,data} 

二、启动:

在/mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/下执行
sh startup.sh 是集群模式启动
sh startup.sh -p 3333 指定端口启动
sh satrtup.sh -m standalone 单机模式启动

三、关闭:

在/mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/bin/下执行
sh shutdown.sh 是关闭

四、访问

http://10.0.0.66:8848/nacos #默认访问8848端口
修改后访问
http://10.0.0.66:3333/nacos
http://10.0.0.66:4444/nacos
http://10.0.0.66:5555/nacos

二、Nacos的集群配置

一、nginx安装以及的配置,使它作为负载均衡器

1.nginx的安装
为了解决nginx的依赖问题需要先下载epel源
yum install epel-release -y

然后修改配置文件
[root@nacos ~]# vim /etc/yum.repos.d/nginx.repo 
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

下载安装稳定版nginx
yum install nginx -y

2.nginx的配置文件
[root@nacos ~]# vim /etc/nginx/conf.d/nacos.conf 
upstream cluster{
server 10.0.0.66:3333;
server 10.0.0.66:4444;
server 10.0.0.66:5555;
}

server {

listen 80;
server_name localhost;


location / {

proxy_pass http://cluster;
}
}

注:三节点都配置安装

二:安装数据库 这里我选的是MySQL5.7

1.创建的目录说明:
        "/zhou/softwares/mysql": 
            存放MySQL应用程序。
        "/zhou/data/mysql":
            存放MySQL数据。
        "/zhou/logs/mysql":
            存放MySQL日志
2.创建运行MySQL服务的用户
useradd -r -s /sbin/nologin -d /zhou/data/mysql -c 'MySQL DataBase Server User' mysql # 创建一个mysql系统用户

创建目录时同时指定属主和属组,若目录已经存在也没有关系,直接修改属主和数组!
install -d /zhou/data/mysql -o mysql -g mysql

3.将数据库包解压到/zhou/softwares/ 创建相应的软连接
tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.31 mysql 
4. 修改环境变量
[root@nacos ~]# cat /etc/profile.d/mysql.sh 
#!/bin/bash
export MYSQL_HOME=/zhou/softwares/mysql
export PATH=$PATH:$MYSQL_HOME/bin

[root@nacos ~]# source /etc/profile.d/mysql.sh
5.修改MySQL运行用户需要的相关目录授权信息
chown -R mysql:mysql /zhou/softwares/mysql/ /zhou/logs/mysql/
 # 仅需修改未授权的目录!

6.删除遗留的其它MySQL分支(比如mariadb的依赖环境和配置文件等)
[root@nacos ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@nacos ~]#
[root@nacos ~]# yum -y remove mariadb-libs
[root@nacos ~]# rpm -qa | grep mariadb
[root@nacos ~]#
[root@nacos ~]# rm -rf /etc/my.cnf*
[root@nacos ~]#
7.初始化数据库并设置管理员密码
(1)生成数据库的初始数据
[root@nacos ~]#mysqld --initialize-insecure --user=mysql --basedir=/zhou/softwares/mysql --datadir=/zhou/data/mysql
温馨提示:
    我们使用mysqld命令有很多选项,常用的选项如下所示:
        --initialize-insecure:
            初始化一个数据库实例。
        --user:
            指定将来运行数据库实例的用户。
        --basedir:
            指定数据库实例程序的安装位置。
        --datadir:
            指定数据库实例的数据存放位置。

(2)准备MySQL的启动脚本
[root@nacos ~]#cp /zhou/softwares/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@nacos ~]#chkconfig --add mysqld  # 设置开机自启动脚本
(3)在MySQL的脚本文件中指定MySQL数据的自定义安装路径:
[root@nacos ~]#cp /etc/init.d/mysqld /etc/init.d/mysqld-`date +%F`
(4)修改配置文件
[root@nacos ~]#vim /etc/init.d/mysqld 

basedir=/zhou/softwares/mysql
datadir=/zhou/data/mysql
注:需要重启一下数据库
systemctl restart mysql
(5)准备配置文件
[root@nacos ~]#cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/zhou/softwares/mysql
datadir=/zhou/data/mysql
socket=/tmp/mysql.sock

[mysql]
socket=/tmp/mysql.sock
(6)必须创建这个文件
touch /zhou/logs/mysql/mysql.err  # 该文件必须创建,否则在下面执行启动数据库时会报错哟~
chown mysql:mysql /zhou/logs/mysql/mysql.err


温馨提示:
    以下是上述配置中参数概述:
        [mysqld]  # 配置MySQL守护进程的相关配置
        user=mysql  # 指定守护进程的用户名是mysql
        basedir=/zhou/softwares/mysql  # 指定数据库实例的程序存储位置
        datadir=/zhou/data/mysql  # 指定数据库实例的数据存储路径
        socket=/tmp/mysql.sock  # 指定数据库实例的本地的套接字文件
        
        [mysql]  # 配置MySQL客户端的相关配置
        socket=/tmp/mysql.sock  # 指定数据库实例的本地套接字文件,通常和mysqld中的套接字路径一致,因为DBA管理数据库实例时常用的工具就是字符终端的mysql客户端工具。
(7)启动数据库
[root@nacos ~]#systemctl start mysqld
[root@nacos ~]#systemctl stop mysqld
(8)测试mysql是否可以正常连接
[root@nacos ~]#mysql  # 很明显,默认情况下是没有密码的!
(9)设定管理员密码
mysqladmin -uroot -p password 123456

三、将MySQL配置文件nacos-mysql.sql导入数据库

1.先在mysql中创建库
create database nacos_config;
2.use nacos_config;
3.将数据导入source /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/nacos-mysql.sql

四、application.properties配置

3333:
[root@nacos ~]# cat /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:

server.port=3333    (指定此节点端口)

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66  (指定此节点ip)

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql



spring.datasource.platform=mysql
db.num=1  (连接数 这是一台数据库 如果MySQL一主两从则写3 )
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

(nacos_config:这是库名 db.user:用户 db.password:密码) 




4444:
[root@nacos ~]# cat /mynacos/nacos2/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties
#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:

server.port=4444

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456




5555:
cat /mynacos/nacos3/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/application.properties

#*************** Spring Boot Related Configurations ***************#
### Default web context path:
server.servlet.contextPath=/nacos
### Default web server port:

server.port=5555

#*************** Network Related Configurations ***************#
### If prefer hostname over ip for Nacos server addresses in cluster.conf:
# nacos.inetutils.prefer-hostname-over-ip=false

### Specify local server's IP:
# nacos.inetutils.ip-address=
nacos.inetutils.ip-address=10.0.0.66

#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
# spring.datasource.platform=mysql

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456


五、linux服务器上nacos的集群配置cluster.conf

[root@nacos ~]# cat /mynacos/nacos/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555


[root@nacos ~]# cat /mynacos/nacos2/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555


[root@nacos ~]# cat /mynacos/nacos3/distribution/target/nacos-server-2.1.0-SNAPSHOT/nacos/conf/cluster.conf
#2021-08-21T19:49:58.097
10.0.0.66:3333
10.0.0.66:4444
10.0.0.66:5555
注:三台节点都要配置

六、编辑Nacos的启动脚本startup.sh,使它能够接受不同的启动端口

##现在的最新版本无需编辑启动脚本

这里我们使用的一台服务器 10.0.0.66 那cos集群启动的端口号为 3333 4444 5555
1.需要我们在startup.sh中修改脚本,在执行start.sh -p 3333 (传入那个端口启动那个端口)

七、截止到此处,一个nginx+3个nacos注册中心+1个MySQL

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值