SpringCloud Alibaba Nacos 注册中心和配置中心(一、基础入门)

Nacos简介

为什么叫Nacos

Naming和Configuration的前两个字母,最后的s为service。

Nacos是什么

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

Nacos能干嘛

Nacos就是注册中心+配置中心。

能替代Eureka做注册中心,替代Config做服务配置中心。

安装并运行Nacos

  • 本地jdk和Maven环境
  • 从官网下载Nacos压缩包()
  • 解压安装包,直接运行bin目录下的starup.cmd
  • 运行成功后直接访问:http://localhost:8848/nacos
    在这里插入图片描述

Nacos作为服务注册中心

创建两个支付服务提供者模块
在这里插入图片描述

1.导入依赖

父POM
<!--spring cloud alibaba 2.1.0.RELEASE-->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  <version>2.1.0.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
 
子POM
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

2.配置文件

server:
  port: 9001

spring:
  application:
    name: nacos-payment-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 #配置Nacos地址

management:
  endpoints:
    web:
      exposure:
        include: '*'


 
 

启动类

package com.atguigu.springcloud.alibaba;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@EnableDiscoveryClient //开启服务注册与发现
@SpringBootApplication
public class PaymentMain9001 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain9001.class,args);
    }
}
 
 

业务类

package com.atguigu.springcloud.alibaba.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class PaymentController
{
    @Value("${server.port}")
    private String serverPort;

    @GetMapping(value = "/payment/nacos/{id}")
    public String getPayment(@PathVariable("id") Integer id)
    {
        return "nacos registry, serverPort: "+ serverPort+"\t id"+id;
    }
}
 
 

实例
在这里插入图片描述

Nacos负载均衡

在服务启动多个实例时 ,另一个服务对当前服务进行调用时,nacos支持负载均衡。因为nacos有ribbon的j依赖,默认负载均衡的方式是轮询。
在这里插入图片描述

各大注册中心对比

在这里插入图片描述

Nacos作为配置中心

我们通过创建nacos-config-client模块,并在Nacos页面中添加配置信息来演示下配置管理的功能。

创建nacos-config-client模块

1.在pom.xml中添加相关依赖:

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.添加配置文件application.yml,启用的是dev环境的配置:

spring:
  profiles:
    active: dev

3.添加配置文件bootstrap.yml,主要是对Nacos的作为配置中心的功能进行配置:

server:
  port: 9101

spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
        # Nacos地址
        server-addr: http://localhost:8848
      config:
        # Nacos地址
        server-addr: http://localhost:8848
        # 这里我们获取的yaml格式的配置
        file-extension: yaml

4.创建ConfigClientController,从Nacos配置中心中获取配置信息:

@RestController
@RefreshScope  //nacos支持动态刷新
public class ConfigClientController {

    @Value("${config.info}") //读取nacos配置中心中的配置
    private String info;

    @GetMapping("/config/info")
    public String getInfo(){
        return info;
    }
}

在Nacos中添加配置

我们先来讲下Nacos中的dataid的组成格式及与SpringBoot配置文件中的属性对应关系:

 ${spring.application.name}-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

比如说我们现在要获取应用名称为nacos-config-client的应用在dev环境下的yaml配置,dataid如下:

nacos-config-client-dev.yaml

在这里插入图片描述

按照以上dataid添加如下配置:

config:
  info: "config info for dev"

填写配置示意图:
在这里插入图片描述
启动nacos-config-client,调用接口查看配置信息:http://localhost:9101/config/info

nacos-config,version=123

Nacos的动态刷新配置

我们只要修改下Nacos中的配置信息,再次调用查看配置的接口,就会发现配置已经刷新,Nacos和Consul一样都支持动态刷新配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值