Hello Spring Cloud Alibaba(四)之接入nacos
nacos介绍
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
官网地址:https://nacos.io/zh-cn/index.html
启动配置管理与服务发现
nacos官方文档:https://nacos.io/zh-cn/docs/quick-start-spring-cloud.html。已经很完善地介绍了spring-cloud应用如何接入。本项目只会用到nacos的配置管理与服务发现,服务调用由dubbo完成。
以hello-alibaba-provider为例:
- 引入依赖
主要引入spring-cloud-alibaba-nacos-config、spring-cloud-alibaba-nacos-discovery等依赖。如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>top.musuixin</groupId>
<artifactId>hello-alibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>top.musuixin</groupId>
<artifactId>hello-alibaba-provider</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello-alibaba-provider</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 表明这是一个spring-cloud应用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
- 添加配置
修改原来的配置文件,改名为:bootstrap.yml:
添加内容:
spring:
cloud:
nacos:
config:
server-addr: 192.168.0.100:8848
file-extension: yaml
discovery:
server-addr: 192.168.0.100:8848
application:
name: hello-alibaba-provider
- 添加远程配置文件
- 新建包类
包类结构如下:
ConfigController.java:
package top.musuixin.provider.controller;
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;
import static org.springframework.web.bind.annotation.RequestMethod.GET;
@RestController
@RequestMapping("config")
@RefreshScope
public class ConfigController {
@Value("${user.name}")
private String name;
@RequestMapping(value = "/get", method = GET)
public String get() {
return name;
}
}
运行
运行HelloAlibabaProviderApplication
- 查nacos服务列表
- 访问接口
- 修改配置后再次访问