Nacos入门案例
Posted 码酱
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos入门案例相关的知识,希望对你有一定的参考价值。
最近新项目中使用到了Nacos,在这里做一个简单的入门分享。
一、它是干嘛的?
官方文档介绍:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
它的两点核心功能就是:动态配置服务,服务发现及管理。
之前我们可能通过springcloud config+git的方式来进行配置的管理,eureka来进行服务的注册与发现。现在可以通过Nacos来进行两者的结合,非常的方便,而且nacos的配置是存储在数据库中的,安全可靠。
二、Nacos搭建
下载压缩包https://github.com/alibaba/nacos/releases,我这里使用的是1.2.0版本。解压进入bin目录下,双击startup.cmd运行。
浏览器访问127.0.0.1:8848/nacos,默认登录账号密码都是nacos,可以改变或设置权限等,具体参考官方手册。
配置相关概念
Namespace:代表不同环境,如开发、测试、生产环境。
Group:代表某项目,如XX医疗项目、XX电商项目。
DataId:每个项目下往往有若干个工程,每个配置集(DataId)是一个工程的主配置文件。
DataId默认格式为:${spring.application.name }-${spring.profiles.active}.yaml
1.新建一个namespace:
我这里就命名为nacos-test
2.在刚刚创建的namespace下添加配置文件
三、服务的注册发现与配置管理实践
1.创建父工程nacos-test,再创建两个子工程分别是nacos-provider,nacos-consumer,结构如下
2.父项目pom文件
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.diku</groupId>
<artifactId>nacos-test</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>nacos-provider</module>
<module>nacos-consumer</module>
</modules>
<packaging>pom</packaging>
<properties>
<spring.cloud.version>Greenwich.RELEASE</spring.cloud.version>
<spring.cloud.alibaba.version>2.1.0.RELEASE</spring.cloud.alibaba.version>
<spring.boot.version>2.1.3.RELEASE</spring.boot.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.nacos-provider子项目pom文件(nacos-consumer与之差不多)
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>nacos-test</artifactId>
<groupId>com.diku</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>nacos-provider</artifactId>
<dependencies>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
</project>
4.nacos-provider的bootstrap.yml文件(nacos-consumer与之差不多)
5.nacos-provider的ProController
6.启动类
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class,args);
}
}
7.nacos-consumer的ConClient
public interface ConClient{
String getConfigName();
}
8.nacos-consumer的ConController
public class ConController {
private String configName;
private ConClient conClient;
public String getAllConfigName(){
return "provider configname : "+conClient.getConfigName()+
"----------->"+"consumer configname : "+ configName;
}
}
9.nacos-provider-dev.yaml的配置(nacos-consumer-dev.yaml类似)
来看看我们的服务列表
10.使用Postman测试
修改nacos-provider-dev.yaml为
再次发送请求
以上是关于Nacos入门案例的主要内容,如果未能解决你的问题,请参考以下文章
springcloud3 Nacos的服务搭建和生产消费案例
springcloud3 Nacos的服务搭建和生产消费案例
SpringCloud Nacos 注册中心 -- Nacos快速入门Nacos服务分级存储模型(集群)集群负载均衡策略 NacosRule