栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud:注册中心nacos

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud:注册中心nacos

一、Nacos简介

        Nacos 英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即配置中心,service是指该注册/配置中心都是以服务为核心,是阿里巴巴的产品,相较于Eureka也是SpringCloud中的一个组件,但是比Eureka功能更加丰富 ,国内更受欢迎。同时社区和参考文档更加便捷,上手程度相较于其他注册中心(Eureka、consul)更加容易。

二、下载和启动nacos服务

1. 下载安装nacos

        Nacos下载地址:https://github.com/alibaba/nacos/releases

2.启动nacos

        在安装目录中找到bin下面的startup.cmd

        命令:startup.cmd -m standalone

        注:nacos默认是集群cluster模式,启动时会报错:Caused by: java.net.UnknownHostException: jmenv.tbsite.net;目前使用单机模式启动来做使用学习。

 3.访问nacos管理平台

      http://localhost:8848/nacos 

 默认的账户密码:nacos/nacos

三、引入包和配置

1.在master项目中管理maven依赖

(pom中管理包在)

        在项目master的pom文件中管理了各开源包的pom管理

        2.2.7.RELEASE


	
		com.alibaba.cloud
		spring-cloud-alibaba-dependencies
		${spring-cloud-alibaba.version}
		pom
		import
	

其中springboot版本是2.4.2
springcloud的版本是2020.0.2




	org.springframework.boot
	spring-boot-dependencies
	${spring-boot.version}
	pom
	import



	org.springframework.cloud
	spring-cloud-dependencies
	${spring-cloud.version}
	pom
	import

2.在微服务各个子模块中添加nacos依赖 (引入包在pom中)

discovery依赖是用来服务的注册和发现

# 引用nacos依赖

  com.alibaba.cloud
  spring-cloud-starter-alibaba-nacos-discovery

config依赖是用来配置中心的参数配置


	com.alibaba.cloud
	spring-cloud-starter-alibaba-nacos-config

3.在模块项目中配置nacos

spring:
  cloud:
    nacos:
      discovery:  # 服务注册发现
        server-addr: 127.0.0.1:8848
        group: Cx  # 自定义组
        namespace: a5c6e38b-e973-49a3-92b1-5f1811ca531a # nacos中自定义的命名空间对应id
        username: nacos
        password: nacos
      config:  # 配置中心
        server-addr: ${spring.cloud.nacos.discovery.server-addr}
        group: Cx
        namespace: a5c6e38b-e973-49a3-92b1-5f1811ca531a # nacos中自定义的命名空间对应id
        file-extension: yaml
        username: ${spring.cloud.nacos.discovery.username}
        password: ${spring.cloud.nacos.discovery.password}
        timeout: 3000
        refresh-enabled: true # 开启自动刷新
        max-retry: 10

4.注意事项

        在使用config配置中心的时候需要注意,配置需在bootstrap.yml中。需要引入bootstrap包


	org.springframework.cloud
	spring-cloud-starter-bootstrap
 
四、配置中心的使用

Demo

1.编写访问controller,添加注释@Vaulue

注:由于有些配置没有写在程序的yml配置文件中,仅在nacos配置中有,使用@Value时会出错提示,如name不能解析不存在等问题,所以在name后面加上:符号,表示初始化默认值,避免启动报错。

package com.cx;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/config")
@RefreshScope
public class ConfigController {
	
	@Value("${name:}")
    public String name;
	
	@Value("${gloab:}")
    public String gloab;

	@RequestMapping("/name")
	public String name(){
		return name;
	}
	
	@RequestMapping("/gloab")
	public String gloab(){
		return gloab;
	}
}

2.在nacos中添加配置文件

        在nacos管理后台,添加配置文件,如下图:

 注:Data Id命名:应该与springboot项目中应用名相同(spring.application.name=Cx),且配置多个文件时如-dev、-prod等,用-隔开,原理同springboot中application.yml、application-dev.yml相同。

大家可以注意在启动springboot项目时,控制台会输出:(大家可以留意一下)

Ignore the empty nacos configuration and get it based on dataId[Cx] & group[Cx]
Ignore the empty nacos configuration and get it based on dataId[Cx.yaml] & group[Cx]
Ignore the empty nacos configuration and get it based on dataId[Cx-dev.yaml] & group[Cx]

3. 测试效果

        启动上述demo,并访问ip:port/config/name,获取配置的name查看返回结果,同时也可以试试当nacos配置文件中name值发生改变后,再次访问接口,结果也发生改变。

        注:@RefreshScope这个注解需要加上,刷新缓存配置。

五、服务发现和注册

        在springboot项目中添加了discovery包后,并在配置文件yml或properties中配置了discovery的地址和相关信息。在启动类中加入注解@EnableDiscoveryClient,开始启动。(所述相关配置在上面都有代码)

         服务启动成功后,打开nacos后台查看服务管理-服务列表,则可以查看到注册上去的服务信息了。        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号