1. 服务发现—nacos部署

基础介绍

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

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

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

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

在这里插入图片描述
Nacos相关概念和功能可以参考官网:什么是 Nacos

安装

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

在CentOS下安装

  1. 在官方github库中选择需要的版本
    github地址:发布 ·阿里巴巴/纳科斯 ·GitHub 在这里插入图片描述
    需要注意的是,nacos 1.x版本<=1.4.1的版本和2.x版本<=2.0.0-ALPHA.1的版本存在未授权漏洞,选择使用版本的时候需要注意。
    在这里插入图片描述

  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
    

    加压完成之后可以看到以下文件
    在这里插入图片描述

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

    ./startup.sh -m standalone
    

    在这里插入图片描述
    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
    在这里插入图片描述

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配置
在这里插入图片描述
在这里插入图片描述
修改application.properties配置文件中的mysql连接信息,集群中的nacos server需要连接到同一个mysql数据库

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

在这里插入图片描述
参考文献:

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Cloud 2021.0.1是Spring Cloud框架的一个版本,而Nacos是一个用于动态服务发现和配置管理的开源平台。这两者可以一起使用,以构建可靠和弹性的微服务架构。 Spring Cloud 2021.0.1是Spring Cloud框架的最新版本,它提供了一套开发工具和组件,用于构建分布式系统中常见的微服务模式。这个版本包含了很多重要的更新和改进,以提高开发者的生产力和性能。 而Nacos是一个为云原生应用提供服务发现、配置管理和动态DNS服务的平台。它提供了一种简单而强大的方式,让开发人员可以轻松地实现服务的注册和发现,并管理配置信息。通过使用Nacos,开发者可以集中管理系统中的各种配置,动态地更新和推送配置,从而实现系统的动态性和可靠性。 Spring Cloud 2021.0.1与Nacos的结合可以提供更好的微服务架构支持。使用Nacos作为注册中心,开发者可以方便地注册和发现微服务,实现服务之间的通信和协调。同时,Nacos还提供了配置管理的功能,可以帮助开发者集中管理系统中的各种配置信息,使得系统的配置更加灵活和可控。 总之,Spring Cloud 2021.0.1与Nacos是一对强大的组合,可以帮助开发者构建高效、弹性和可靠的微服务架构。它们的结合提供了丰富的功能和工具,使得开发者可以更加轻松地实现微服务的开发和管理。 ### 回答2: Spring Cloud是一个用于构建分布式系统的开发工具包,而Nacos是一个可用于服务注册、配置管理和服务发现的动态服务发现和配置管理平台。在Spring Cloud 2021.0.1版本中,Nacos被用作服务注册和配置管理的解决方案。 Spring Cloud Nacos提供了一种集中式的服务注册和发现机制,它允许开发者将微服务注册到Nacos Server,并且可以通过Nacos Server来实现服务发现。通过Nacos,开发者可以实现动态的服务发现,使得服务之间可以更加灵活地协同工作。 除了服务注册和发现Nacos还可以用于配置管理。开发者可以将配置信息存储在Nacos Server中,并且可以通过Nacos来动态管理这些配置信息。当配置信息发生变化时,Nacos会通知相关的微服务,使得微服务能够及时地获取最新的配置信息,从而实现配置的动态更新。 使用Spring Cloud和Nacos可以大大简化微服务架构的开发和管理。开发者可以使用Spring Cloud提供的各种组件和工具来构建微服务架构,并且可以利用Nacos实现服务注册、发现和配置管理。这样,在开发和运维过程中,开发者可以更加专注于业务逻辑的实现,而无需过多关注底层的技术细节。 总之,Spring Cloud 2021.0.1版本中的Nacos是一个功能强大的动态服务发现和配置管理平台,它与Spring Cloud相结合可以帮助开发者构建高效、可靠的分布式系统。 ### 回答3: Spring Cloud 2021.0.1 是一个微服务框架,用于构建分布式系统应用程序。它为开发人员提供了一套丰富的工具,用于构建、部署和管理微服务应用。而Nacos是一个动态服务发现、配置管理和服务管理平台。 Nacos可以用于注册和发现微服务,它提供了一个统一的服务注册和发现中心,以帮助微服务之间进行通信。通过Nacos,开发人员可以轻松地注册和发现其他微服务,并进行负载均衡和容错处理。 此外,Nacos还提供了配置管理功能,可以帮助开发人员集中管理应用程序的配置。开发人员可以使用Nacos来动态更改应用程序的配置,无需重启应用程序,也无需重新构建和部署应用程序。这使得开发人员可以实时管理应用程序的配置,提高了配置的灵活性和可维护性。 Spring Cloud与Nacos的结合可以帮助开发人员构建可扩展、可靠和高性能的微服务应用。开发人员可以使用Spring Cloud来构建微服务应用程序的各个组件,例如服务网关、负载均衡器和熔断器等。然后,使用Nacos进行服务注册和发现,并使用Nacos的配置管理功能来管理应用程序的配置。这种结合可以大大简化微服务应用的开发和部署流程,提供更好的可伸缩性和可维护性。 总之,Spring Cloud与Nacos的结合可以帮助开发人员构建完善的微服务应用。Spring Cloud提供了丰富的工具和组件,可以帮助开发人员构建各种微服务应用程序,而Nacos提供了服务注册、发现和配置管理功能,可以帮助开发人员实现微服务应用程序的通信和配置管理。这种结合为开发人员提供了更好的开发和部署体验,提高了微服务应用的可伸缩性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值