nacos的安装和使用

本文介绍Nacos作为服务发现、配置管理和治理的综合解决方案。包括Nacos的安装与启动、作为注册中心和服务提供者的工作原理,以及如何与Spring Cloud集成进行服务发现。此外还介绍了Nacos配置中心的功能及配置流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是Nacos?

Nacos是阿里的一个开源产品,是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。(用来实现配置中心和服务注册中心

官网:https://nacos.io/zh-cn/docs/what-is-nacos.html

二、nacos安装和启动

1.下载

nacos安装包:https://github.com/alibaba/nacos/tags

 解压安装包:

[root@localhost ~]# cd /usr/upload
[root@localhost upload]# tar -zxvf nacos-server-1.4.1.tar.gz -C /usr/local	

2.启动和关闭

  • 启动: [root@localhost bin]# ./startup.sh -m standalone #非集群模式启动
  • 关闭: [root@localhost bin]# ./shutdown.sh

3.测试

访问 http://192.168.145.129:8848/nacos

默认用户名/密码为: nacos/nacos   默认的端口号为:8848

 

三、nacos注册中心(存服务的ip和port)

1.什么是Nacos注册中心

注册中心由以下三部分组成:

  •  Nacos-Server:注册中心

提供服务的注册和发现。

  •  Nacos-Provider:服务提供方

把自身的服务实例注册到 Nacos Server 中。

  •  Nacos-Consumer:服务调用方

通过 Nacos Server 获取服务列表,消费服务。

 四、Nacos注册中心连合springCloud测试

1.依赖加入pom

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

2.设置application.yml中的nacos配置

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.145.129:8848 #nacos地址
  application:
    name: nacos-consumer #注册名

3.在启动类上增加开启注册中心服务的注解

@SpringBootApplication
@EnableDiscoveryClient
public class OrderApp {
    public static void main(String[] args) {
        SpringApplication.run(OrderApp.class, args);
    }
}

4.config

在config添加spring自带的转发工具 RestTemplate


@Configuration
public class BeanConfig {
    @Bean
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

5.controller

在controler中加入nacos的获取配置信息类 DiscoveryClient 

@RestController
@RequestMapping(value = "/consumer")
public class ConsumerController {
	
	@Autowired
	private RestTemplate restTemplate;

	@Autowired
	private DiscoveryClient discoveryClient;

	@RequestMapping(value="/getUserById/{id}")
	public User getUserById(@PathVariable Integer id){
		//获取nacos中注册的所有服务信息
		List<String> serviceList = discoveryClient.getServices();
		for (String service : serviceList) {
			System.out.println(service);
		}
		//获取nacos中注册的指定服务信息
		ServiceInstance instance = discoveryClient.getInstances("nacos-provider").get(0);
		String serviceUrl = instance.getHost() + ":" + instance.getPort();

		String url = "http://"+serviceUrl+"/provider/getUserById/"+id;
		return restTemplate.getForObject(url, User.class);
	}
}

最后启动就会注册到注册中心了

五、Nacos的配置中心

1.优点

Ncos可以作为配置中心有以下优点:

  1. 首先把项目中各种配置全部都放到一个集中的地方进行统一管理。

  2. 当各个服务需要获取配置的时候,就来配置中心的接口拉取自己的配置。

  3. 当配置中心中的各种参数有更新的时候,也能通知到各个服务实时的过来同步最新的信息,使之动态更新。

2.通过idea添加配置

1.pom依赖

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

2.配置文件

注意:配置中心的配置为 bootstrap.yml

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.204.129:8848
        file-extension: yaml #后缀名,只支持 properties 和 yaml 类型
        prefix: nacos-config #文件名,如果没有配置则默认为 ${spring.appliction.name}

3.启动项

@SpringBootApplication
@EnableDiscoveryClient
public class NacosConfigApp {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApp.class);
    }
}

3.直接在浏览器添加配置

 

4.config的隔离级别 

1.隔离结构

由以下三种组成:

  • Namespace: 代表不同的环境的配置隔离, 如: 开发、测试, 生产等

  • Group: 可以代表某个项目, 如XX医疗项目, XX电商项目

  • DataId: 每个项目下往往有若干个工程, 每个配置集(DataId)是一个工程的主配置文件 

 

2. Namespace、Group、DataId的新建

 

 

  

5.读取配置中心配置 

通过yml读取

spring:
  cloud:
    nacos:
      config:
        server-addr: 192.168.204.129:8848
        file-extension: yaml
        prefix: nacos-config
        namespace: a66ca122-fb24-46ba-bde0-58508c2d6689
        group: NACOS_GROUP #nacos项目

六、Ncos的持久化(MySQL)

1.修改conf/application.properties文件

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://192.168.31.19:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=1111

2.创建Nacos数据库

创建nacos数据库并把sql文件注入nacos数据库 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值