控制台 退出登录

application配置。


[TOC]

pom.xml中添加Nacos的spring-cloud-alibaba-nacos-discovery依赖,同时去掉Eureka的spring-cloud-starter-netflix-eureka-client依赖。

<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-alibaba-nacos-discovery -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
    <version>0.2.1.RELEASE</version>
</dependency>

application配置。

修改application配置application.properties。

nacos.discovery.server-addr=127.0.0.1:8848
#有人说不生效,就试下下面的
#spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

如果是application.yml,请试下下面的配置:

nacos:
    discovery:
      server-addr: 127.0.0.1:8848
#建议先用上面的
spring:
    cloud:
      nacos:
        discovery:
          server-addr: 127.0.0.1:8848

@EnableDiscoveryClient注解

更换EnableEurekaClient 注解。如果在你的应用启动程序启动类加了@EnableEurekaClient ,请修改为@EnableDiscoveryClient 。

@PostConstruct服务注册

被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Serclet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。也就是运行程序之后就注册到nacos上去。

@SpringBootApplication
@RestController
public class Springboot2NacosDiscoveryApplication {

	@NacosInjected
	private NamingService namingService;

	@Value("${server.port}")
	private int serverPort;

	@Value("${spring.application.name}")
	private String applicationName;

	@PostConstruct
	public void registerInstance() throws NacosException{
		namingService.registerInstance(applicationName,"127.0.0.1",serverPort);
	}

	@GetMapping( "/getInstance")
	public List<Instance> getInstance(@RequestParam String serviceName) throws NacosException {
		return namingService.getAllInstances(serviceName);
	}

	public static void main(String[] args) {
		SpringApplication.run(Springboot2NacosDiscoveryApplication.class, args);
	}
}
  • registerInstance:注册实例,有多个方法,本文使用的方法需要传入三个参数,分别是:服务名,ip和端口号。
  • getAllInstances:获取实例,传入服务名。

本文采用 CC BY-NC-SA 4.0 协议发布

相关文章

None

None

None

None

SpringCloud(9)

SpringCloud(9)

SpringCloud(8)