1. 服务发现—nacos部署

服务发现—nacos部署

  • 基础介绍
  • 安装
    • 在CentOS下安装
    • docker安装
    • window安装
    • 集群搭建

基础介绍

Nacos是阿里巴巴推出的开源工具,提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

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

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

1. 服务发现—nacos部署_第2张图片
Nacos相关概念和功能可以参考官网:什么是 Nacos

安装

Nacos提供源码和发行包两种下载安装的方式,这里以编译后的发行包为例。以下示例基于1.4.2或者2.0.4版本。

在CentOS下安装

  1. 在官方github库中选择需要的版本
    github地址:发布 ·阿里巴巴/纳科斯 ·GitHub 1. 服务发现—nacos部署_第3张图片
    需要注意的是,nacos 1.x版本<=1.4.1的版本和2.x版本<=2.0.0-ALPHA.1的版本存在未授权漏洞,选择使用版本的时候需要注意。
    1. 服务发现—nacos部署_第4张图片

  2. 下载压缩包
    在想要安装的目录下,使用以下命令下载压缩包

    wget https://github.com/alibaba/nacos/releases/download/1.4.2/nacos-server-1.4.2.zip
    

    下载完成之后使用unzip进行解压

    unzip nacos-server-1.4.2.zip
    

    加压完成之后可以看到以下文件
    1. 服务发现—nacos部署_第5张图片

  3. 启动
    cd 到nacos/bin文件夹中,可以看到startup.sh文件,这个是启动文件,相对应的还有shutdown.sh停止服务文件
    在这里插入图片描述
    执行以下命令,这里是以单机模式进行启动,仅做学习和测试的情况下,单机启动就足够了,生产环境中根据实际情况判断是否需要搭建集群。

    ./startup.sh -m standalone
    

    1. 服务发现—nacos部署_第6张图片
    nacos的配置文件是conf文件夹中的application.properties,可以通过修改改文件自定义一些配置,如使用独立安装的mysql,或者设置端口等。

    server.contextPath=/nacos
    server.servlet.contextPath=/nacos
    server.port=8848
    
    spring.datasource.platform=mysql
    
    db.num=1
    db.url.0=jdbc:mysql://xx.xx.xx.x:3306/nacos_devtest_prod?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=user
    db.password=pass
    
    
    nacos.cmdb.dumpTaskInterval=3600
    nacos.cmdb.eventTaskInterval=10
    nacos.cmdb.labelTaskInterval=300
    nacos.cmdb.loadDataAtStart=false
    
    management.metrics.export.elastic.enabled=false
    
    management.metrics.export.influx.enabled=false
    
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
    
    nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
    nacos.naming.distro.taskDispatchThreadCount=1
    nacos.naming.distro.taskDispatchPeriod=200
    nacos.naming.distro.batchSyncKeyCount=1000
    nacos.naming.distro.initDataRatio=0.9
    nacos.naming.distro.syncRetryDelay=5000
    nacos.naming.data.warmup=true
    nacos.naming.expireInstance=true
    

    上面讲到的nacos未授权漏洞问题,在1.4.2及以后版本已经解决,可以通过配置文件启动授权认证,配置如下:

    ### 进行安全加固
    ### 开启鉴权
    nacos.core.auth.enabled=true
    ### 关闭使用user-agent判断服务端请求并放行鉴权的功能
    nacos.core.auth.enable.userAgentAuthWhite=false
    ### 配置自定义身份识别的key(不可为空)和value(不可为空)
    nacos.core.auth.server.identity.key=yyl
    nacos.core.auth.server.identity.value=yyl@!12 
    

    需要注意的是所有集群均需要配置相同的server.identity信息,否则可能导致服务端之间数据不一致或无法删除实例等问题。

    启动之后,可以通过浏览器查看nacos管理平台,http://ip:8848/nacos,默认用户名密码是:nacos/nacos
    1. 服务发现—nacos部署_第7张图片

docker安装

  1. 拉取镜像
    docker pull nacos/nacos-server
    
  2. 启动容器
    启动脚本:
    docker  run 
    --name nacos -d 
    -p 8848:8848
    --privileged=true
    --restart=always 
    -e JVM_XMS=256m // 配置jvm启动时分配的内存
    -e JVM_XMX=256m // 配置jvm运行过程中分配的最大内存
    -e MODE=standalone // 以单机模式启动
    -e PREFER_HOST_MODE=hostname 
    -v /home/nacos/logs:/home/nacos/logs // 映射日志文件到本地文件夹
    -v /home/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties // 映射配置文件到本地文件夹
    nacos/nacos-server
    
    这里将配置文件映射到本地文件夹,custome.properties配置会覆盖application.properties

window安装

从github下载压缩包,解压到安装目录
在这里插入图片描述
在bin文件夹中,通过cmd执行以下脚本,注意nacos依赖java环境,windows安装需要先安装java8以上环境

startup.cmd -m standalone

集群搭建

nacos解压后的conf文件夹中不仅有用于当前nacos server的配置,还有一个集群配置文件cluster.conf.example,这里我们需要复制一份文件,并改名为cluster.conf,修改cluster.conf,将里面的ip地址改为我们作为集群机器的ip地址,集群中的nacos server都需要增加一样的cluster.conf配置
1. 服务发现—nacos部署_第8张图片
1. 服务发现—nacos部署_第9张图片
修改application.properties配置文件中的mysql连接信息,集群中的nacos server需要连接到同一个mysql数据库

mysql独立安装的情况下,需要初始化nacos相关的表结构,conf文件夹下有相关的脚本文件,在想要的mysql数据库中执行即可

1. 服务发现—nacos部署_第10张图片
参考文献:

什么是Nacos?Nacos注册配置中心介绍 - 简书 (jianshu.com)
Nacos篇五 - Nacos集群(Linux下standalone模式和cluster模式)

微服务系列文章:
下一篇:服务发现—Asp.net core结合nacos实现服务发现

你可能感兴趣的:(微服务架构学习与实践总结,微服务,.net,软件框架)