• SpringCloud Alibaba实战(6:nacos-server服务搭建)


    源码地址:https://gitee.com/fighter3/eshop-project.git

    持续更新中……

    大家好,我是三分恶。

    这一节我们来学习SpringCloud Alibaba体系中一个非常重要的组件——Nacos。

    1、Nacos简介

    Nacos官方网站:https://nacos.io/zh-cn/

    1.1、什么是Nacos

    Nacos是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。

    Nacos英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。

    Nacos 生态图

    Nacos 无缝支持一些主流的开源生态,使用Nacos,可以简化服务发现、配置管理、服务治理及管理。

    如果要把Nacas和SpringCloud Netflix的组件对标的话,那么:

    Nacos = Eureka/Consule + Config + Admin

    1.2、Nacos基本原理

    Nacos作为注册中心分为server与client。

    Naocs Client与Server

    Server采用Java编写,为client提供注册发现服务与配置服务。而client可以用多语言实现,client与微服务嵌套在一起,nacos提供sdk和openApi,如果没有sdk也可以根据openApi手动写服务注册与发现和配置拉取的逻辑。

    1.2.1、注册中心原理

    注册中心原理

    服务注册方法:服务注册的策略的是每5秒向nacos server发送一次心跳,心跳带上了服务名,服务ip,服务端口等信息。同时 nacos server也会向client 主动发起健康检查,支持tcp/http检查。如果15秒内无心跳且健康检查失败则认为实例不健康,如果30秒内健康检查失败则剔除实例。

    1.2.2、配置中心原理

    配置中心原理

    2、Nacos-Server服务部署

    Nacos 依赖 Java 环境来运行。如果是从代码开始构建并运行Nacos,还需要配置 Maven环境。我们直接使用发行版,需要保证JDK版本在1.8以上。

    Nacos Server 有两种运行模式:

    • standalone
    • cluster

    2.1、standalone 模式

    我们使用win10来进行Nacos Server的standalone 模式的部署。

    1. 下载nacos-server

    从https://github.com/alibaba/nacos/releases 下载nacos-server发行版。

    官方推荐的版本是1.4.2或2.0.1。

    官方推荐

    按照官方推荐,我们来尝(踩)鲜(坑)最新的发行版2.0.1,下载压缩包,下载完成后解压

    Nacos下载解压

    1. 启动nacos-server服务

    进入%path% acosin文件夹,执行cmd命令startup.cmd -m standalone,其中-m standalone指定为单机模式,否则以cluster集群模式启动。

    nacos-server启动

    可以看到Nacos Server的地址,访问 http://192.168.31.39:8848/nacos/index.html

    需要登录,初始账号/密码是 nacos/nacos

    Nacos登录

    登录之后可以看到Nacos的控制台。

    Nacos控制台

    Linux下部署Nacos-Server服务也是类似,同样是先解压发行压缩包,然后执行启动脚本启动:

    startup.sh -m standalone
    

    这种默认情况下,我们的数据写入了了嵌入式数据库。不太方便观察数据存储的情况,nacos也提供了支持mysql数据源的能力。

    注意:以下操作我在2.0.1版本失败了,所以以下操作是基于1.4.2版本。

    MySQL数据库版本要求5.5以上。

    1. 创建数据库库,使用初始化文件nacos-mysql.sql初始化

    初始化数据库

    1. 修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),修改mysql数据源的url、用户名和密码。
    spring.datasource.platform=mysql
    
    ### Count of DB:
    db.num=1
    
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=root
    
    ### Connection pool configuration: hikariCP
    db.pool.config.connectionTimeout=30000
    db.pool.config.validationTimeout=10000
    db.pool.config.maximumPoolSize=20
    db.pool.config.minimumIdle=2
    
    1. 使用命令startup.cmd -m standalone启动Nacos Server

    使用MySQL存储Nacos数据示例

    2.2、cluster 模式

    开发和测试,我们直接用standalone 模式,OK,没什么问题。但是生产环境,为了保证Nacos的高可用,我们就得使用 cluster模式。

    cluster 模式必须要用 MySQL,MySQL数据导入和上面一致,然后改两个配置文件:

    conf/cluster.conf
    conf/application.properties
    

    大致如下:

    1. cluster.conf,填入要运行 Nacos Server 机器的 ip
    192.168.100.155
    192.168.100.156
    192.168.100.157    
    
    1. 修改NACOS_PATH/conf/application.properties,加入 MySQL 配置
    db.num=1
    db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=root
    

    Nacos采用的一个Leader节点,多个Follower节点的集群架构,数据一致性算法采用的是Raft。

    nacos集群示意图

    至于实战,由于机器资源资源原因,这里就不再演示。

    穷

    下一节,我们会把服务注册到Nacos注册中心,敬请期待!


    "简单的事情重复做,重复的事情认真做,认真的事情有创造性地做!"——

    我是三分恶,可以叫我老三/三分/三哥/三子,一个能文能武的全栈开发,咱们下期见!



    参考:

    【1】:Nacos 文档

    【2】:什么是Nacos?Nacos注册配置中心介绍

    【3】:Spring Cloud实战 | 第一篇:Windows搭建Nacos服务

    【4】:nacos 实战(史上最全)

    【5】:Nacos部署环境

  • 相关阅读:
    Dispatcher及线程操作
    MVVM中轻松实现Command绑定(三)任意事件的Command
    MVVM Light中的Message
    Prism
    Prism的IEventAggregator事件聚合器, 事件订阅发布, ViewModel之间的通讯
    文件写操作--WriteLog
    【Golang】Debug :decoding dwarf section info at offset 0x0: too short
    【Golang 接口自动化03】 解析接口返回XML
    【Golang 接口自动化02】使用标准库net/http发送Post请求
    【Golang 接口自动化01】使用标准库net/http发送Get请求
  • 原文地址:https://www.cnblogs.com/three-fighter/p/14912597.html
Copyright © 2020-2023  润新知