SpringCloudAlibaba集成Nacos

先看目录中遇到过的问题再看文章


目录

官网地址

快速简介

前提准备

项目实战

注意事项

添加nacos-config依赖

添加nacos-discovery依赖

Config配置文件

Nacos-Config配置

discovery配置文件

整体配置文件

遇到过的问题


官网地址

Nacos 快速开始

快速简介

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

  • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。
  • 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。

前提准备

您需要先下载 Nacos 并启动 Nacos server。步骤如下:注本文用的服务器是Centos7

下载源码

https://github.com/alibaba/nacos/releases/tag/2.0.4,打开链接拉到最下边下载源码,图中的版本是本篇文章目前最新的

上传解压

上传到服务器目录/usr/local/,解压到当前目录

解压命令:unzip nacos-server-2.0.4.zip

启动服务

进入nacos目录下的bin目录,命令:cd /nacos/bin

centos启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

windows启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone

我是centos7系统用的是第一句命令,执行完如下,提示去/usr/local/nacos/logs/start.out查看日志

找到start.out日志文件,看下内容,日志如下则启动成功

访问地址 

http://IP地址:8848/nacos,8848是默认的端口,默认的账号密码是nacos/nacos

关闭服务

linux关闭命令

sh shutdown.sh

Windows关闭命令

bin目录下双击shutdown.cmd

项目实战

注意事项

        此文章是接着上一篇文章继续的,上篇文章地址如下

SpringCloudAlibaba微服务介绍与搭建_ZhAoYaJ的博客-CSDN博客springcloudalibaba基础知识,搭建基础框架https://blog.csdn.net/ZhAoYaJ/article/details/122585851?spm=1001.2014.3001.5501

添加nacos-config依赖

	<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
			<version>2.2.7.RELEASE</version>
		</dependency>

添加nacos-discovery依赖

<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.2.7.RELEASE</version>
		</dependency>

Config配置文件

修改配置文件名称:application.properties改为bootstrap.properties,bootstrap先于application被加载,用于读取远程配置文件,所以改为bootstrap.properties。 

配置文件和nacos配置连接语法:

    ${prefix}-${spring.profiles.active}.${file-extension}

  • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。
  • spring.profiles.active 即为当前环境对应的 profile, 注意:当 spring.profiles.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 ${prefix}.${file-extension}
  • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。

在配置文件中配置nacos地址和应用名

#Nacos Server地址
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#Nacos Server后缀
spring.cloud.nacos.config.file-extension=yaml
#Nacos Server应用名
spring.cloud.nacos.config.prefix=user

Nacos-Config配置

 点击右侧加号,新增配置

 写好配置保存就可以了,我的配置如下

 nacos-config就配置完成。剩下的配置可按照自己的需求添加

discovery配置文件

添加服务发现注册地址和服务名称


通过 Spring Cloud 原生注解 @EnableDiscoveryClient 开启服务注册发现功能

启动类上添加注解 @EnableDiscoveryClient 

 启动项目即可

nacos-discovery配置列表查看,出现如下图即为成功

整体配置文件

#Nacos-Config Server地址
spring.cloud.nacos.config.server-addr=ip:8848
#Nacos-discovery Server地址
spring.cloud.nacos.discovery.server-addr=ip:8848
#Nacos Server后缀
spring.cloud.nacos.config.file-extension=yaml
#Nacos Server应用名
spring.cloud.nacos.config.prefix=user
#服务名
spring.application.name=user

美食模块和用户模块一样的配置即可,服务名和配置文件中的prefix不要一致,我写的是food

遇到过的问题

1.版本冲突的问题,springboot版本2.6.2,springcloudalibaba版本2.2.7.RELEASE

解决方法:修改springboot版本为2.3.12.RELEASE即可,其他版本参照官网,官网给出了每个版本对应的方案https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8Ehttps://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

启动报错,摘取了部分日志。

Failed to introspect Class [org.springframework.cloud.context.properties.ConfigurationPropertiesBeans] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

 2.nacos客户端版本过高的问题,使用的是2.0.4的客户端,注册发现没有配置就启动,也报错如下

版本解决方法,停止nacos运行,下载nacos2.0.3的版本,其他版本参照官网,官网给出了每个版本对应的方案。

配置解决方法,配置注册与发现,或者注释掉注册发现的依赖

启动报错,摘取了部分日志。

com.alibaba.nacos.api.exception.NacosException: Request nacos server failed: 

Caused by: com.alibaba.nacos.api.exception.NacosException: Client not connected,current status:STARTING

新年快乐,新年第一篇文章

版权声明:本文为ZhAoYaJ原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。