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>
<code> <groupid>org.springframework.cloud/<groupid> <artifactid>spring-cloud-starter-alibaba-nacos-config/<artifactid> <version>0.2.0.RELEASE/<version>/<code>
在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,内部业务代码不变,不影响外层。
閱讀更多 李越Java 的文章