上面两篇写了如何使用nacos做配置中心,有兴趣的童鞋可以回头看一下,《springboot使用nacos做配置中心》,以及《springboot使用nacos做配置中心(下)》,分别介绍了作为配置中心,数据默认存储方式和数据存储到mysql数据库的方式。当然,nacos另一个特点是可以做注册中心,相对于zookeeper和eureka,nacos有以下特点:
最小依赖原则,只需要引入nacos-discovery-spring-boot-starter即可
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-discovery-spring-boot-starter</artifactId>
<version>${nacos-config-spring-boot.version}</version>
</dependency>
nacos:
discovery:
server-addr: {服务端IP}:8848
spring:
application:
name: service-provider
采用切面的方式,将所有服务注册上去。
@SpringBootApplication
@NacosPropertySource(dataId = "mos", autoRefreshed = true)
public class CoreApplication {
@NacosInjected
private NamingService namingService;
@Value("${spring.application.name}")
private String applicationName;
@Value("${server.port}")
private Integer serverPort;
public static void main(String[] args) {
SpringApplication.run(CoreApplication.class, args);
}
@PostConstruct
public void registerService() throws NacosException {
namingService.registerInstance(applicationName, "127.0.0.1", serverPort);
}
}
写一个测试类,获取当前注册的服务,nacos提供的有对应接口。
@RestController
@RequestMapping("discover")
public class DiscoverController {
@NacosInjected
private NamingService namingService;
@GetMapping("get")
public List<Instance> get(@RequestParam String serviceName) throws NacosException {
return namingService.getAllInstances(serviceName);
}
}
1.服务未开启服务注册,返回一个空数组