下面是关于“SpringBoot2 整合Nacos组件及环境搭建和入门案例解析”的完整攻略。
SpringBoot2 整合Nacos组件及环境搭建和入门案例解析
1. 环境搭建
Nacos简介
Nacos是阿里巴巴开源的分布式服务发现、配置管理和服务治理平台。Nacos支持几乎所有主流类型的服务,包括Kubernetes、Mesos、Docker等。
下载Nacos Server
首先需要下载Nacos Server。选择适合自己开发环境的版本,下载后解压。
启动Nacos Server
解压Nacos Server后,在bin目录下执行命令:
sh startup.sh -m standalone
此时Nacos Server应该已经启动了,我们可以通过访问http://localhost:8848/nacos
检查一下。
2. SpringBoot整合Nacos
创建SpringBoot项目
使用IDEA或者其他的IDE创建一个SpringBoot项目。
引入依赖
在pom.xml
中,添加如下依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
配置Nacos地址和端口
在application.properties
中,添加如下配置:
# 配置Nacos地址和端口
spring.cloud.nacos.discovery.server-addr=localhost:8848
配置服务名称
在application.properties
中,添加如下配置:
# 配置服务名称
spring.application.name=example-service
创建Controller类
创建一个Controller类,添加如下注解:
@RestController
@RequestMapping("/hello")
@RefreshScope
其中,@RefreshScope
注解是为了支持动态刷新配置。
在Controller类中添加一个方法:
@GetMapping
public String sayHello() {
return "Hello, Nacos!";
}
选择注册中心
选择注册中心是我们接下来要做的一件事情,我们需要决定将服务注册到哪个地方。
在bootstrap.properties
中,添加如下配置:
# 选择注册中心
spring.cloud.nacos.discovery.bootstrap=true
这里选择将服务注册到Nacos中。
运行项目
启动SpringBoot项目,并访问http://localhost:8080/hello
,即可看到返回结果。
3. 示例说明
示例一:配置文件动态刷新
在application.properties
中,添加如下配置:
# 配置文件中添加一个参数,值为'world'
hello = world
此时访问http://localhost:8080/hello
,返回结果为:
Hello, Nacos world!
接下来我们修改一下配置文件:
# 修改配置文件,将hello的值改为'changed'
hello = changed
此时访问http://localhost:8080/hello
,返回结果为:
Hello, Nacos changed!
我们可以看到,程序接收到了新的配置,并生效了。
示例二:服务发现
在application.properties
中,添加如下配置:
# 配置服务名称
spring.application.name=example-service
# 配置端口
server.port=8080
创建一个新的SpringBoot项目,添加如下配置:
# 配置服务名称
spring.application.name=example-service-consumer
# 配置端口
server.port=8081
在新项目中创建一个Controller类,添加如下注解:
@RestController
@RequestMapping("/hello")
在Controller类中添加一个方法:
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping
public String sayHello() {
List<String> serviceNames = discoveryClient.getServices();
return "Hello, " + serviceNames.get(0) + "!";
}
这个方法的作用是在注册中心查询到所有服务的信息,然后返回第一个服务名称。
启动两个项目后,访问http://localhost:8081/hello
,返回结果为:
Hello, example-service!
我们可以看到,新项目通过服务发现获得了另一个项目的信息,并成功调用了Controller方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot2 整合Nacos组件及环境搭建和入门案例解析 - Python技术站