一、添加依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 配置中心 -->
<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>
</dependencies>
二、配置Nacos
yml
spring:
application:
#为当前项目起名,这个名字会被Nacos获取记住,由之后的微服务调用
name: nacos_config_test
cloud:
nacos:
discovery:
#配置Nacos的位置,用于提交当前项目的信息
server-addr: localhost:8848
properties
spring.application.name=nacos_config_test
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.group=DEFAULT_GROUP
spring.cloud.nacos.config.name=nacos_config.properties
三、Nacos注册
启动Nacos,浏览器访问
四、调用nacos配置中心配置
@RestController
@RequestMapping("/nacos")
@RefreshScope
public class NacosConfigController {
@Value("${java1234.name}")
private String name;
@Value("${java1234.age}")
private String age;
@GetMapping("/getConfigInfo")
public String getConfigInfo(){
return name+":"+age;
}
}
五、 服务注册与使用
1、将服务全都注册到nacos中
2、在启动类上添加注解 EnableDiscoveryClient 用于服务的注册发现
3.1、在oeder中调用stock模块中的请求
@FeignClient 是 Spring Cloud 提供的一个声明式服务调用注解,用于简化 HTTP API 的调用。
StockFeignService 调用了nacos中名为 nacos-stock 的服务
3.2、在stock中创建被调用的服务nacos-stock
4、测试
在访问OrderController的/test请求中调用stockFeignService.test("牛逼")方法并传递了一个参数,stockFeignService.test中调用了stock服务的/stock/test请求,并返回信息info
public String test(String info){ return "库存模块接收到的信息:"+info; }
六、Nacos心跳机制
·注册到Nacos的模块会遵循这个机制,心跳:周期性的操作,来表明自己是健康的
心跳目的:
1、表示当前微服务的模块运行状态正常的手段
2、是当前微服务模块和Nacos沟通交换信息的机制,默认情况下,服务启动后每5秒向Nacos提交一个心跳包,这个心跳包包含了当前服务的基本信息。接收到会判断是否在注册中,如果没有会注册。
3、连续3次没发送包会标记为不健康状态,6次没有发送,会被踢出,一般服务关闭60秒后,会被关闭。
五、在IDEA中启动Nacos的简便方式
添加启动,在项目启动同一菜单