Nacos 注册中心(服务注册、服务发现)
一、服务注册
1、依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2、yaml
spring: cloud: nacos: serverAddr: 127.0.0.1:8848 #如果用的云上托管版本,输入可访问的Nacos Server地址即可 # config: # import: # - nacos:nacos-config-example.properties?refreshEnabled=true application: name: service-order # 项目名称 server: port: 8000 # 端口号
3、启动springboot项目
4、查看
http://localhost:8848/nacos

二、服务发现
1、开启服务发现
在springboot启动类中添加注解
@EnableDiscoveryClient
2、服务发现api
a、DiscoveryClient 范围更广
测试
package com.wt.order; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import java.util.List; @SpringBootTest public class DiscoveryTest { @Autowired private DiscoveryClient discoveryClient; @Test public void discoveryClientTest(){ //获取所有的微服务 List<String> services = discoveryClient.getServices(); for (String service : services) { System.out.println("service = " + service); // 获取 微服务的 ip + port List<ServiceInstance> instances = discoveryClient.getInstances(service); for (ServiceInstance instance : instances) { System.out.println("ip+port:" + instance.getHost()+":"+ instance.getPort()); } } } }
b、NacosServiceDiscovery
测试
package com.wt.order; import com.alibaba.cloud.nacos.discovery.NacosServiceDiscovery; import com.alibaba.nacos.api.exception.NacosException; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.client.ServiceInstance; import java.util.List; @SpringBootTest public class NacosDiscoveryTest { @Autowired private NacosServiceDiscovery nacosServiceDiscovery; @Test public void nacosDiscovery(){ try { // 获取微服务 List<String> services = nacosServiceDiscovery.getServices(); for (String service : services) { System.out.println("service = " + service); // 获取 ip + port List<ServiceInstance> instances = nacosServiceDiscovery.getInstances(service); for (ServiceInstance instance : instances) { System.out.println("ip+port:"+ instance.getHost()+":"+instance.getPort()); } } } catch (NacosException e) { e.printStackTrace(); } } }

浙公网安备 33010602011771号