Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos支持三种部署模式

  • 单机模式 - 用于测试和单机试用。
  • 集群模式 - 用于生产环境,确保高可用。
  • 多集群模式 - 用于多数据中心场景。

一、Nacos下载安装:

nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html

nacos官网下载:https://github.com/alibaba/nacos/releases

1、版本选择:

您可以在Nacos的官网下载(上边连接)中找到每个版本支持的功能的介绍,当前推荐的稳定版本为1.4.1。

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

2、预备环境准备:

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

  1. 64 bit OS,支持 Linux/Unix/Mac/Windows,推荐选用 Linux/Unix/Mac。
  2. 64 bit JDK 1.8+;
  3. Maven 3.2.x+;
  4. 集群需要依赖mysql,单机可不必
  5. 3个或3个以上Nacos节点才能构成集群。

3、下载源码或者安装包:

[root@bogon ~]# mkdir /usr/local/soft/nacos
[root@bogon ~]# cd /usr/local/soft/nacos
[root@bogon nacos]# wget https://github.com/alibaba/nacos/releases/download/1.4.1/nacos-server-1.4.1.tar.gz

解压nacos:

[root@bogon nacos]# tar -zxvf  nacos-server-1.4.1.tar.gz

二、单击模式运行:

1、配置mysql数据库(默认使用的是嵌入式数据库Apache Derby来存储数据,单击模式可不用配置数据库):

(1) 单机模式支持mysql,编辑application.properties文件

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力,具体的操作步骤:

  • 1.安装数据库,版本要求:5.6.5+
  • 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql
  • 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
[root@bogon nacos]# vim /usr/local/soft/nacos/nacos/conf/application.properties

光标下移到spring.datasource.platform=mysql,键盘输入 “i” 进入编辑模式:

放开spring.datasource.platform=mysql前面的#,

放开db.num=1,db.url.0=,db.user.0,db.password.0=,前面的#。

根据自己的数据库和账号、密码进行配置,图下图:

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

 键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。

备注:db.num=1 只有一个数据源,根据自身的数据源个数进行配置。

(2)创建数据库(上图中的数据库名为nacos_config):

mysql创建数据库:nacos_config

打开nacos/conf/nacos-mysql.sql文件,将sql语句拷贝到mysql数据库,执行。

2、运行nacos:

[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin
[root@bogon bin]# sh startup.sh -m standalone

备注:startup.sh是linux系统的启动执行文件,windows下使用startup.cmd。-m 表示:启动模式。standalone 表示单机模式。 后边不带-m standalone 参数时默认使用集群模式启动。

3、防火墙开放端口(默认的是8848):

[root@bogon bin]# firewall-cmd --zone=public --add-port=8848/tcp --permanent

防火墙重起:

[root@bogon bin]# firewall-cmd --reload

4、通过ui查看是否部署成功:

浏览器输入:http://ip:8848/nacos/   账号:nacos   密码:nacos

三、集群模式运行 --- 生产模式:

准备三台服务器,都下载nacos的安装包,且都进行以下1和2的配置(可先配置好一台,其他的进行直接拷贝即可)

1、配置集群配置文件:

在nacos的解压目录nacos/的conf目录下,有配置文件cluster.conf.example,这是官网给的模板文件,重建cluster.conf文件或者直接更换模板文件的名称,删除.example即可。请每行配置成ip:port。(请配置3个或3个以上节点):

[root@bogon bin]# cd /usr/local/soft/nacos/nacos/conf
[root@bogon conf]# cp cluster.conf.example cluster.conf

编辑cluster.conf文件:

[root@bogon conf]# vim /usr/local/soft/nacos/nacos/conf/cluster.conf

光标下移,键盘输入 “i” 进入编辑模式:

把三个默认的ip和端口进行修改,修改为自己的三个nacos服务ip以及端口,建议三台nacos服务都在不同的服务器上,这样才能真正达到集群高可用。

如下图所示:

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

备注:由于我只有一台服务器,暂且用不同的端口来实现吧,生产环境不建议。

键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。

2、配置mysql数据库:

和单机模式的数据源配置相同(上边单机模式的第一步),这里不再重复。

3、再拷贝2个nacos服务(当前是在同一台机器上,生产环境不建议):

[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8847
[root@bogon ~]# cp -a /usr/local/soft/nacos/nacos /usr/local/soft/nacos/nacos8849

备注:当前是在同一台服务器上,使用不用的端口号来区分,所以需要修改相应地端口号,配置文件在nacos/conf/的application.properties文件,此处修改省略。

4、启动服务(三个服务都启动):

[root@bogon nacos]# cd /usr/local/soft/nacos/nacos/bin

使用内置数据源(没有配置自己的mysql数据源)

[root@bogon bin]# sh startup.sh -p embedded 

使用已配置的mysql数据源,集群模式启动(无-m standaone参数,默认是集群模式)

[root@bogon bin]# sh startup.sh

备注:参照以上的启动方式,启动另外两个nacos服务。

5、查询nacos启动日志:

可通过查看/conf/nacos.log(详细日志)或/conf/start.out(启动记录)查看nacos的启动情况以及运行情况(三个nacos服务的查询方式相同):

[root@bogon bin]# tail -n 200 /usr/local/soft/nacos/nacos/logs/start.out

如下图所示:

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

 Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

 上边的信息说明集群模式启动成功。

6、防火墙开放端口:

三台机器都要防火墙开放端口,此处和单机的模式相同,此处省略。

7、访问nacos:

通过浏览器访问三台nacos:

http://192.168.30.110:8847/nacos

http://192.168.30.110:8848/nacos

http://192.168.30.110:8849/nacos

登录账号:nacos  密码:nacos

三个页面显示如下:

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

 登录以后,查看集群信息:

Centos7安装Nacos单机模式以及集群模式(包含nignx安装以及实现集群)的相关配置-LMLPHP

 8、生产者、消费者连接nacos:

(1)直连ip模式:

项目中的bootstrap.yml文件,添加一下内容:

spring:
  application:
    name: test-producer
  cloud:
    nacos:
      discovery:
        server-addr: http://192.168.30.110:8847,http://192.168.30.110:8848,http://192.168.30.110:8849  # 直连ip模式
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        file-extension: yaml

 以上的模式,实质不是真正的集群模式,客户端需要指向所有nacos的ip,如果其中由同一台nacos宕机,那么生产者或消费者就一直在报连接超时问题(虽然不影响使用)。

(2)使用nginx配置真正的集群(nginx起到负载均衡的效果,推荐使用):

  •  下载nginx:    
[root@bogon bin]# mkdir /usr/local/soft/nginx
[root@bogon bin]# cd /usr/local/soft/nginx
[root@bogon nginx]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
  • 安装nginx以及所需依赖:
[root@bogon nginx]# yum install gcc-c++    # 编译依赖 gcc 环境  可使用 gcc -v 命令查询系统是否安装了gcc,如果已安装,这里可省略
[root@bogon nginx]# yum install -y pcre pcre-devel  # 安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码
[root@bogon nginx]# yum install -y zlib zlib-devel # zlib库提供了压缩算法,在nginx的各种模块中需要使用gzip压缩
[root@bogon nginx]# yum install -y openssl openssl-devel  # nginx支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了https,需要安装 OpenSSL 库
[root@bogon nginx]# tar -zxvf nginx-1.18.0.tar.gz   # 解压nginx安装包
[root@bogon nginx]# cd nginx-1.18.0     # 进入nginx-1.18.0目录
[root@bogon nginx-1.18.0]# ./configure # 使用默认配置
[root@bogon nginx-1.18.0]# make         # 当前目录进行编译,观察是否有报错,如有报错,查看上边的依赖是否安装成功
[root@bogon nginx-1.18.0]# make install   # 编译安装

执行完以上操作,/usr/local/下回多一个nginx文件夹,这是默认的安装路径。

  • nginx配置代理转发规则:

进入nginx的安装目录,编辑nginx.conf文件:

[root@bogon nginx-1.18.0]# vim /usr/local/nginx/conf/nginx.conf

光标下移,键盘输入 “i” 进入编辑模式,找到server位置,替换一下内容:

upstream nacos_server { # 这里负载均衡,默认的分发策略是线性轮询
      server 192.168.30.110:8847;   # 三个nacos服务器的ip和端口
      server 192.168.30.110:8848;
      server 192.168.30.110:8849;
    }
    server {
        listen       8846;     # 修改nginx监听的端口为8846
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://nacos_server;    # 这个是代理的地址,名字和上边定义的upstream 后边的名字匹配
       proxy_set_header Host $host; # 避免http请求中丢失Host头部的情况下Host不被重写的失误,此处很重要,一开始没有此配置时,一直连接不上,同时nginx也打不开。

        # root html;
        # index index.html index.htm;

 }

键盘 ESC 键 退出编辑模式,键盘输入“:wq” 保存并退出。

  • 启动nginx:
[root@bogon nginx-1.18.0]# cd /usr/local/nginx/sbin
[root@bogon sbin]# ./nginx
  • nginx常用命令:
   启动nginx:
    cd /usr/local/nginx/sbin
    ./nginx

    关闭nginx:
    cd /usr/local/nginx/sbin
    ./nginx -s quit  或者 ./nginx -s stop

    重启nginx:
    cd /usr/local/nginx/sbin
    ./nginx -s reload

    查看nginx运行状态:
    ps aux|grep nginx

    查看nginx服务器日志:
    tail -fn 200 /usr/local/nginx/logs/access.log
  • 防火墙开放端口:

[root@bogon sbin]# firewall-cmd --zone=public --add-port=8846/tcp --permanent

防火墙重起:

[root@bogon sbin]# firewall-cmd --reload

浏览器访问nginx:http://192.168.30.110:8846/nacos

  • 生产者、消费者项目中的bootstrap.yml文件,添加一下内容:
spring:
  application:
    name: test-producer
  cloud:
    nacos:
      discovery:
        server-addr: http://192.168.30.110:8846  # 直接连接nginx,通过nginx实现集群的代理
      config:
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        file-extension: yaml
  • 启动生产者或消费者,

浏览器访问nginx :   http://192.168.30.110:8846/nacos

浏览器访问nacos-8847:    http://192.168.30.139:8847/nacos

浏览器访问nacos-8848:     http://192.168.30.139:8848/nacos

浏览器访问nacos-8849:     http://192.168.30.139:8849/nacos

观察 服务管理 --》服务列表  都存在了微服务的注册信息。

至此 nacos的安装以及集群配置到此结束!

03-31 01:38