前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot使用nacos做注册中心

springboot使用nacos做注册中心

作者头像
小尘哥
发布2021-04-26 15:12:13
1.3K0
发布2021-04-26 15:12:13
举报
文章被收录于专栏:小尘哥的专栏小尘哥的专栏

上面两篇写了如何使用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即可

代码语言:javascript
复制
<dependency>
            <groupId>com.alibaba.boot</groupId>
            <artifactId>nacos-discovery-spring-boot-starter</artifactId>
            <version>${nacos-config-spring-boot.version}</version>
        </dependency>

二、添加配置项

代码语言:javascript
复制
nacos:
  discovery:
    server-addr: {服务端IP}:8848
spring:
  application:
    name: service-provider

三、开启服务发现

采用切面的方式,将所有服务注册上去。

代码语言:javascript
复制
@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提供的有对应接口。

代码语言:javascript
复制
@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. 开启服务注册后,会返回服务信息数组,如下图
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-04-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌与尘埃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、引入配置
  • 二、添加配置项
  • 三、开启服务发现
  • 四、测试
  • 五、测试结果
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档