Nacos高可用集群搭建与使用

一、Nacos 简介

Nacos是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态DNS服务三大功能。是SpringCloudAlibaba架构中最重要的组件,能够无缝对接Springcloud、Spring、Dubbo等流行框架。

Nacos和Eureka功能对比

功能模块NacosEureka功能说明
注册中心服务治理,服务中心化注册
配置中心×Eureka需要配合Springcloud config实现
配置动态刷新×Nacos通过netty保持tcp长链接进行推送,Eureka需要配合mq实现配置动态刷新
可用区az对服务集群划分不同区域,实现区域隔离,并提供灾难级自动切换
分组×Nacos根据不同的业务、环境进行分组管理(namespace,group)
元数据提供服务标签数据(环境、服务标识)
权重×Nacos提供权重设置,调整承载流量压力
健康检查Nacos提供服务端或者客户端发起的健康监测,Eureka是有客户端发起心跳
负载均衡均提供负载均衡策略,Eureka采用ribbon

二、Nacos 能做什么?

①服务注册发现和服务健康监测
  Nacos支持基于DNS和基于RPC的服务发现,服务端可以通过SDK或者Api进行服务注册,相应的服务消费者可以使用DNS或者Http查找的方式获取服务列表。Nacos同时提供对服务的实时健康检查,阻止想不健康的主机或服务发送请求,与Eureka类似Nacos也有友好的控制台界面。
②动态DNS服务
  支持权重路由,更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务。
③动态配置服务
  接触过SpringCloud应该对config有所了解,那么配置中心也就很好理解,Nacos支持动态的配置管理,将服务的配置信息分环境分类别外部管理,并且支持热更新。不过与Config不同Nacos的配置信息存储与数据库中,支持配置信息的监听和版本回滚。
④服务及元数据管理
  Nacos 能让您从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA (服务等级协议)以及最首要的 metrics 统计数据(默认不开启暴露需要修改配置)。可以搭建搭建prometheus采集Nacos metrics数据也可以搭建搭建grafana图形化展示metrics数据。

三、Nacos 安装

3.1 Nacos 环境依赖

Nacos 基于 java 开发的,运行依赖于64 bit JDK 1.8+环境。
前往官网下载JDK: Java Downloads | Oracle

3.2 Nacos 服务端安装

由于Nacos是开源的,可以从github下载源码编译后安装,也可以直接从github下载官方编译好的安装包进行安装,本文直接使用官方编译好的包进行安装,基于目前官方最新release2.0.3版本。请勿使用2.x以下的版本,之前爆出过漏洞。2.x版本相对于1.x版本,性能也提升了10倍。
下载地址:https://github.com/alibaba/nacos/releases
Nacos下载

四、Nacos 单例部署

单实例部署不适合生产环境,单点故障是致命的。
Linux 单实例非集群模式启动/关闭命令:

sh startup.sh -m standalone
sh shutdown.sh

访问 nacos 管理页面,初始化用户名密码均为 nacos
访问地址:http://127.0.0.1:8848/nacos/index.html

五、Nacos集群部署

5.1 集群架构

Nacos集群架构

高可用 Nginx 集群
Nacos 集群(至少三个实例)
高可用数据库集群(取代 Nacos 内嵌数据库

5.2 模拟部署

系统版本机器IP部署应用应用版本
CentOS8.5192.168.230.1Nginx1.18.0
CentOS8.5192.168.230.129Nacos2.0.3
CentOS8.5192.168.230.130Nacos2.0.3
CentOS8.5192.168.230.131Nacos2.0.3
CentOS8.5192.168.230.1MySQL5.7.32

[ps]使用vmware虚拟机模拟以上不同机器环境。

5.3 搭建步骤

1)初始化Nacos数据库

解压下载的安装包nacos-server-2.0.3.tar.gz至/usr/local目录如下图所示:
在这里插入图片描述
在MySQL实例创建nacos库并执行/nacos/conf下的nacos-mysql.sql脚本
创建数据库执行SQL
修改Nacos配置文件,在application.properties中取消注释并修改数据库信息为实际的数据库信息后保存。其他nacos服务实例也需要做同样的修改。
配置文件
为了达到高可用,通常会有多个MySQL数据库实例,nacos的配置文件也需要指定每一个MySQL实例的信息,例如:
多个MySQL数据库

2)集群配置

在/nacos/conf下找到cluster.conf.example文件,将其重命名为cluster.conf
cluster.conf
修改cluster.conf文件,将其中的默认的ip信息删除,将nacos集群中每一台nacos实例的ip添加进去。集群中所有nacos实例都需要做以上集群配置,至此关于 nacos 的配置结束了,可以尝试以集群模式启动三个nacos实例了。
在这里插入图片描述
切换到/nacos/bin目录下,执行./startup.sh & tail -f /usr/local/nacos/logs/start.out
启动nacos,之后通过浏览器访问每个nacos实例的控制台,例如:http://192.168.230.131:8848/nacos

3)Nginx 配置

修改 Nginx 配置文件 nginx.conf如下:

http {
 
    include       mime.types;
 
    default_type  application/octet-stream;
 
    sendfile        on;
 
    keepalive_timeout  65;
 
    #nacos集群负载均衡
    upstream nacos-cluster {
        server 192.168.230.129:8848;
        server 192.168.230.130:8848;
        server 192.168.230.131:8848;
    }
 
    server {
        listen       80;
        server_name  192.168.230.1;
        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://nacos-cluster;
        }
 
        error_page   500 502 503 504  /50x.html;
 
        location = /50x.html {
            root   html;
        }
    }
}
4)访问控制台

在浏览器输入Nginx服务所在宿主机的ip即可访问:
http://192.168.230.1/nacos/#/login
默认用户名/密码:nacos/nacos
Nacos
切换至【集群管理】-【节点列表】,可查看nacos集群节点信息:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值