SpringCloudSpring Cloud Alibaba 之 Nacos集群和持久化(二十九)

Posted H__D

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloudSpring Cloud Alibaba 之 Nacos集群和持久化(二十九)相关的知识,希望对你有一定的参考价值。

Nacos支持三种部署模式

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

  官网查看:https://nacos.io/zh-cn/docs/deployment.html

单机模式

    启动命令:sh startup.sh -m standalone

单机模式支持mysql

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

  • 1.安装数据库,版本要求:5.6.5+
  • 2.初始化mysql数据库,数据库初始化文件:nacos-mysql.sql(在nacos根目录的conf目录下)
  • 3.修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
1 spring.datasource.platform=mysql
2 
3 db.num=1
4 db.url.0=jdbc:mysql://11.162.196.16:3306/nacos_devtest?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
5 db.user=nacos_devtest
6 db.password=youdontknow

集群模式下运行Nacos

  官网架构图,如下:

  

  可以看到官网也是推荐部署三个Nacos节点,节点前面使用一个VIP(虚拟IP代理),来访问三个节点

  本例Nacos集群结构如下:

  使用nginx(Nginx也可以是高可用模式的,参考:【Web】Keepalived+Nginx 实现高可用集群  )反向代理三个节点,三个节点分别连同一个高可用的MySQL数据库

  

  示例

准备数据库

  1、准备一个MySQL数据库(本例使用5.6版本的,5.8版本的需要更改JDBC驱动,重新编译)

    具体步骤见前面:单机模式支持mysql

搭建Nacos集群

  环境:CentOS 7.4

  本例在同一台机器上搭建三个节点8845、8846、8847,机器局域网ip:192.168.1.4

  1、在git(https://github.com/alibaba/nacos)上下载安装包,nacos-server-1.2.1.tar.gz

  2、解压压缩包,复制三份解压后的文件

  3、在三个节点中,分别复制conf目录中cluster.conf.example文件,命名为:cluster.conf,三个节点内容都是一样的,如下:

1 #it is ip
2 #example
3 # 不能使用127.0.0.1,可能出问题
4 # 必须是Linux命令hostname -i能识别的ip
5 192.168.1.4:8845
6 192.168.1.4:8846
7 192.168.1.4:8847

  4、修改三个节点的 application.properties 配置文件内容,主要修改内容如下:

1 server.port=8845
2 
3 db.num=1
4 
5 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
6 db.user=root
7 db.password=123456

    其他节点文件,只有端口不一样

  5、分别启动三个节点

    启动命令:sh ./bin/startup.sh

   6、测试,使用浏览器访问地址:http://192.168.1.4:8845/nacos

    

Nginx反向代理

  1、安装一个Nginx,参考【Web】Nginx下载与安装

  2、编辑Nginx的配置文件,nginx.conf,内容如下:

upstream nacos-cluster {
    server 192.168.1.4:8845;
    server 192.168.1.4:8846;
    server 192.168.1.4:8847;
}

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        
        proxy_pass      http://nacos-cluster;
    }
}

  3、启动Nginx服务

  4、浏览器使用地址:http://192.168.1.4/nacos,访问nginx,能正常访问

  5、查看Nacos的Web界面-〉集群管理-〉节点列表,可以看到节点信息、节点状态等

    

Nacos客户端测试  

  1、搭建一个Nacos客户端项目,参考:【SpringCloud】Spring Cloud Alibaba 之 Nacos配置中心(二十八)

  2、项目配置如下:

 1 spring:
 2   application:
 3     name: nacos-config-client
 4   cloud:
 5     nacos:
 6       discovery:
 7         server-addr: 192.168.1.4:80
 8       config:
 9         server-addr: 192.168.1.4:80
10         # 配置内容文件的数据格式,默认值:properties
11         file-extension: yaml

  3、在nacos服务中,新增一个配置dataId为:nacos-config-client-dev.yaml

  4、启动项目,查看Nacos的Web界面中,服务是否注册进来

  5、浏览器访问项目,查看是否正确获取的了配置文件内容

多集群模式

Nacos支持NameServer路由请求模式,通过它您可以设计一个有用的映射规则来控制请求转发到相应的集群,在映射规则中您可以按命名空间或租户等分片请求...

以上是关于SpringCloudSpring Cloud Alibaba 之 Nacos集群和持久化(二十九)的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloudSpring Cloud Config 配置中心(二十)

SpringCloudSpring Cloud Config 客户端(二十一)

SpringCloudSpring Cloud Alibaba 及 Nacos介绍(二十六)

SpringCloudSpring Cloud Alibaba 之 Nacos配置中心(二十八)

SpringCloudSpring Cloud Bus 服务总线(二十二)

SpringCloudSpring Cloud Alibaba 之 Sentinel熔断降级(三十一)