nacos注册中心和配置中心

安装

官网

启动nacos

在nacos/bin目录中,输入命令启动Nacos:

sh startup.sh -m standalone

注册中心

使用nacos注册中心

1.在父工程里面添加spring-cloud-alibaba的管理依赖

 <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>2.2.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
 </dependency>

2. 注释掉order-service 和 user-service中原有的eureka依赖

3.添加nacos的客户端依赖:

		<!-- nacos客户端依赖包-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

4.修改user-service&order-service中的application.yml文件,注释掉eureka地址,添加nacos地址:

	spring:
		cloud:
			nacos:
				server-addr: localhost:8848	#nacos 服务端地址

5.启动并测试

集群配置

配置服务所在的集群位置

1.配置yml,集群名称

spring:
	cloud:
	    nacos:
	      server-addr: localhost:8848
	      discovery:
	        cluster-name: HZ		#集群名称 杭州

2.配置yml,负载均衡

NacosRule负载均衡策略
优先选择同集群服务实例列表
本地集群找不到提供者,才去其他集群寻找,并且会报警
确定了可用实力列表后,再采用随机负载均衡挑选实例

userservice:  #要做配置的微服务名称
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

权重配置

可以直接在nacos控制台里面找到实例编辑

在这里插入图片描述

通过配置权重,可以在线关闭服务,可以平滑升级

隔离环境

1通过namespace配置命名空间的方式做环境隔离
2.每个namespace都有唯一id
3.不同namespace下的服务不可见

在服务的yml里面配置命名空间

  spring:
	  cloud:
	    nacos:
	      discovery:
	        namespace: edebec8d-2ae2-4fa0-9490-4db7b808872a	#dev环境 命名空间的id 

nacos注册中心和eureka的区别

nacos会把实例区分为临时实例和非临时实例

服务提供者:
	临时实例如果挂了,会被nacos剔除。(干儿子)
	非临时实例挂了不会被踢出。(亲儿子)
服务消费者:
	nacos会主动推送消息给消费者,服务列表缓存

配置临时实例和非临时实例 (对服务器压力比较大)

spring:
  cloud:
    nacos:
      discovery:
        ephemeral: false #是否 是临时实例

统一配置管理

将配置交给nacos管理的步骤

1.在nacos中添加配置

dataid : 服务名称-环境.yaml
需要热更新的配置放到这里
在这里插入图片描述

2.进入nacos的配置管理客户端依赖:

	<!--nacos的配置管理依赖-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>

3.在微服务中添加bootstrap.yml文件

配置nacos地址、当前环境、服务名称、文件后缀名

spring:
  application:
    name: userservice	#服务名称
  profiles:
    active: dev # 环境
  cloud:
    nacos:
      server-addr: localhost:8848 # nacos地址
      config:
        file-extension: yaml #文件后缀名

4.通过@value注解可以读取到配置

@value("${pattern.dateformat}")

配置热更新

方式一:在@value注入的变量所在类上添加注解@RefreshScope

方式二:使用@ConfigurationProperties注解

写一个配置类

package cn.itcast.user.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Data
@Component
@ConfigurationProperties(prefix = "pattern")
public class PatternProperties {
    private String dateformat;
    private String envSharedValue;
}

直接注入这个类就可以使用:

 @Autowired
private PatternProperties properties;

 @GetMapping("prop")
public PatternProperties properties(){
    return properties;
}

多环境配置

在nacos控制台里面添加新的配置,dataid格式是:
微服务名称.yaml
例如:userservice.yaml 中间就不写环境了(userservice-dev.yaml)
这样所有环境下,都会加载uservice.yaml的配置,从而实现多环境配置
在这里插入图片描述

注意,配置文件优先级顺序:

(远端配置 服务名+环境)服务名-profile.yaml > 	(远端配置 服务名)服务名.yaml > 本地配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值