美文网首页全栈程序猿的成长SpringBoot
springboot使用nacos做注册中心

springboot使用nacos做注册中心

作者: 小尘哥 | 来源:发表于2021-04-09 14:58 被阅读0次

    上面两篇写了如何使用nacos做配置中心,有兴趣的童鞋可以回头看一下,《springboot使用nacos做配置中心》,以及《springboot使用nacos做配置中心(下)》,分别介绍了作为配置中心,数据默认存储方式和数据存储到mysql数据库的方式。
    当然,nacos另一个特点是可以做注册中心,相对于zookeeper和eureka,nacos有以下特点:

    1. 他同时支持AP和CP模式,他根据服务注册选择临时和永久来决定走AP模式还是CP模式
    2. 自带分布式配置中心
    3. 选主节点效率更高,相对于zookeeper的30-60秒,提升到4-5秒。

    一、引入配置

    最小依赖原则,只需要引入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.服务未开启服务注册,返回一个空数组

    1. 开启服务注册后,会返回服务信息数组,如下图


      image.png

    相关文章

      网友评论

        本文标题:springboot使用nacos做注册中心

        本文链接:https://www.haomeiwen.com/subject/ileikltx.html