注册中心-服务发现

流程:

一、IDEA注册,浏览器查看
二、开启服务发现功能->测试服务发现功能

步骤:启动Nacos ,进入Nacos安装包bin目录输入cmd,进入cmd

startup.cmd -m standslone

在这里插入图片描述
创建微服务框架(默认已创建)如图:
在这里插入图片描述
1.创建主程序
在这里插入图片描述
2.创建application.prperties文件,设置name、port、addr三个属性
在这里插入图片描述
3.开启 IDEA服务器,然后浏览器输入网址,进入服务列表,可以看到创建的服务信息,第一步完成。

http://localhost:8848/nacos/

在这里插入图片描述
二、开启服务发现功能->测试服务发现功能

1.引入web依赖,和测试依赖,服务发现依赖
在这里插入图片描述在这里插入图片描述
2.建立Test类,test目录和java目录一一对应
在这里插入图片描述
3.编写代码:

开启服务发现的功能

@EnableDiscoveryClient

在这里插入图片描述
以下附上测试类代码:DiscoveryClient 、NacosServiceDiscovery 两种方式都可以服务发现

package com.atguigu.product;

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 org.springframework.cloud.client.discovery.DiscoveryClient;

import java.util.List;

@SpringBootTest
public class DiscoveryTest {
    @Autowired
    private DiscoveryClient discoveryClient;
    @Autowired
    private NacosServiceDiscovery nacosServiceDiscovery;



    @Test
    void discoveryTest(){
        //打印注册中心所有微服务的名字
        for(String service:discoveryClient.getServices()){
            System.out.println("service = "+service);
            //获取ip+port
            List<ServiceInstance> instances = discoveryClient.getInstances(service);
            for (ServiceInstance instance : instances) {
                System.out.println("ip: "+instance.getHost());
                System.out.println("port:"+instance.getPort());
            }
        }
        System.out.println(discoveryClient.getServices());

    }

    @Test
    void nacosServiceDiscoveryTest() throws NacosException {
        List<String> services = nacosServiceDiscovery.getServices();
        for (String service : services) {
            System.out.println("service"+service);
            for (ServiceInstance instance : nacosServiceDiscovery.getInstances(service)) {
                System.out.println("ip"+instance.getHost());
                System.out.println("port:"+instance.getPort());
            }
        }
    }

}

更多推荐