spring集成Nacos

nacos的优势和能做什么
  1. 阿里组件,维护的很好

  2. nacos集成了ribbon,自带负载均衡

  3. Nacos=Eureka+Config+Bus:替代Eureka作服务注册中心,替代Config作服务配置中心

nacos资料

nacos中文文档(文档中有nacos下载地址):https://nacos.io/zh-cn/docs/quick-start.html

Nacos官网:https://nacos.io/en-us/

nacos github地址:https://github.com/alibaba/nacos

spring关于alibaba组件的官方文档:https://spring.io/projects/spring-cloud-alibaba/

本地Nacos目录:/Users/chen/MyWorkProgram/nacos/bin

进入bin目录运行命令:startup.sh -m standalone

运行后访问:http://localhost:8848/nacos 账号/密码 nacos/nacos

小提示:报:LifecycleException: Protocol handler start failed异常,端口8848被占用,我把配置文件的application.properties中server.port改成了8849

Nacos代替zookeeper作为服务注册中心

引入依赖:

<!-- nacos注册中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

application.yml配置修改:

server: 
	port: 9001
spring:
 cloud:
 	nacos:
 	 discovery:
 	 	server-addr: localhost:8849
 	 	
management:
	endpoints:
		web:
			exposure:
				include: '*'

主启动类添加nacos启动注解:

@springbootApplication
@EnableDiscoveryclient //nacos
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class EnableDiscoveryclient {
		public static void main(String[] args){
      springApplication.run(EnableDiscoveryclient.class,args);
    }
}
Nacos作为服务配置中心

使用Nacos作为配置中心的微服务依赖引入

<!-- nacos配置中心-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
基础配置

Nacos和springcloud config一样,在项目初始化的时候,要保证现在配置中心拉取配置,拉取配置之后,才能保证项目的正常启动。

bootstrap.yml配置首先拉取配置,然后再用application.yml做个性化配置

bootstrap.yml配置

server:
	port: 3377
	
spring:
	applicaiton:
		name: nacos-config-client
	cloud:
		discovery:
			server-addr: localhost:8849 #naco作为服务注册中心地址
		config:
		server-addr: localhost:8849 #nacos作为服务配置中心
		file-extension: yaml #指定为yaml格式的配置

application.yml:

spring:
	profiles:
		active: dev #表示开发环境

controller层:

通过spring cloud原生注解@RefreshScope,实现配置自动更新

@RestController
@RefreshScope  //支持nacos的动态刷新功能
public class ConfigClientController{
		@Value("${config.info}")
		private configInfo;
		
		@GetMapping("/config/info")
		public String getConfigInfo(){
			return configInfo;
	}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值