优秀的编程知识分享平台

网站首页 > 技术文章 正文

Spring Cloud Alibaba Nacos示例说明

nanyue 2024-11-24 19:44:19 技术文章 1 ℃

Spring Cloud Alibaba Nacos示例说明

一、Nacos简介

Nacos是采用基于DNS和基于RPC的服务发现(可作为Dubbo、SpringCloud的注册中心)、动态配置服务(配置Config中心)、动态DNS服务。

Nacos可用来进行发现、配置和管理微服务,提供了一些简单易用的特性集,帮助我们实现动态服务发现、服务配置管理、服务及流量管理。

Nacos可以更敏捷和容易的构建、交付和管理微服务平台。Nacos是构建以“服务”为中心的现代应用架构的服务基础设施。

1.1nacos作为注册中心

先在官网上下载nacos中间件,下面教程有启动步骤

https://nacos.io/zh-cn/docs/quick-start.html

程序启动默认占用的端口是8848(珠穆朗玛峰的高度),我们可以对端口进行修改,用编辑器打开bin目录下的startup.cmd文件 添加一行代码

set "JAVA_OPT=%JAVA_OPT% --server.port=9090

端口号就改成9090了。

还可以在conf文件下的application.properties中添加

server.port=9090

启动



启动成功之后在浏览器输入:http://127.0.0.1:8848/nacos

查看



表示启动成功。

这个配置管理项便是nacos的注册中心服务端了,下面还有一个服务管理,是nacos注册中心 图形化界面的服务端,以后做介绍。启动成功后我们就可以开始写我们的java代码了。

先新建一个springboot项目,添加如下依赖

<dependency>

  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  <version>0.2.0.RELEASE</version>
</dependency>

在resource目录下加入 bootstrap.properties文件 并添加配置中心相关信息
bootstrap.properties:

#服务名

spring.application.name=nacos-config-example

# 配置中心url

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

相应的application.properties的内容写到配置中心里面去



配置详情:



在项目启动时就会去配置中心去读取配置信息(本地的配置文件application.properties还能用,但优先级低于配置中心的配置)

1.2基本概念

Nacos中的概念:



这张图很重要。表述了namespace、group和service/dataId的包含关系。

NACOS给的最佳实践表明,最外层的namespace是可以用于区分部署环境的,比如test,uat,product等。同时,也有一个商业利用价值:多租户。以namespace为单位,给用户开辟使用空间。

其它两个领域模型不用多解释了,见名知意。其目的也非常明显,就是为了能够逻辑上区分两个目标对象。

默认情况下,namespace=public,group=DEFAULT_GROUP。

明白了这个数据模型后,可以稍微玩转一下Console了,比如新建若干个namespace:



namespace顺利创建成功后,会在每个一级页面看到由namespace组成的TAB,可以任意切换namespace,对其下的数据进行操作。比如下图的配置列表:



接下来会创建一个Demo工程,用于构建基于NACOS的config server和discovery server。

二、代码示例

2.1构建Nacos服务提供者

代码结构如下:



其nacos-discovery-server的Maven pom.xml配置文件




application.properties配置如下



主实体类



启动成功之后Nacos控制台查看:



2.2构建RestTemplate服务

构建RestTemplate工程



其Maven pom如下:




配置文件application.properties



启动的RestTemplate服务如下:



RestTemplate服务请求url。运行起来查看Nacos控制台:



访问http://localhost:9002/test 查看RestTemplate调用



控制台打印情况



服务提供者日志如下:



Nacos服务RestTemplate调用成功

2.3Nacos Feign调用

构建Feign项目如图:



Maven pom.xml如下:




其配置文件application.properties如下:



Feign客户端指定



Feign调用示例如下:



启动成功之后



调用Feign示例



查看控制台



表示Feign调用成功

2.4 WebClient DIscovery调用

WebClient工程结构如图:



其pom.xml如图:




配置文件application.properties如下:



调用WebClient示例:



启动成功之后关系如图:



然后调用http://localhost:9003/test



WebClient调用成功

查看控制台



三、总结

Nacos只是作为注册中心。并不影响实际业务代码的功能。这就是Spring Cloud的强大之处,注册中心并不仅限于Nacos、Eureka,内部业务代码不变,不影响外层。


最近发表
标签列表