09 | 集成 Nacos:如何将服务提供者注册到 Nacos 服务器?
添加 Nacos 依赖项
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何使用Nacos进行服务注册的方法。首先,通过引入Nacos的依赖项和配置,实现了服务注册的功能。作者详细解释了Nacos的自动装配原理,通过自动装配器实现了Nacos核心功能的初始化任务,包括服务发现、服务注册等。文章还介绍了Nacos的核心配置项,如服务注册地址、心跳间隔、命名空间等,并解释了它们的使用场景。接着,文章指导读者验证Nacos的服务注册功能,包括开启Nacos服务器、创建命名空间以及启动服务并检查注册情况。最后,作者鼓励读者通过阅读Nacos源码,深入了解Nacos的底层业务。整体而言,本文内容详实,适合想要了解如何使用Nacos进行服务注册的读者。文章还强调了学习框架时需要深入了解其工作原理,建议读者通过阅读源码锻炼自己的技术能力。
《Spring Cloud 微服务项目实战》,新⼈⾸单¥59
全部留言(31)
- 最新
- 精选
- 别拽我的红领巾为什么我会优先读取application的nacos配置文件而不是boostrap呢?是不是有什么配置需要修改?
作者回复: 同学用的是新版本的spring boot/cloud,因此要手工引入下面这个依赖,才能保证优先读取boostrap文件。这是新版和老版之间的一个区别 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
2022-03-1112 - so long老师你好,nacos服务注册顺藤摸瓜如下,主要靠实现 ApplicationListener<WebServerInitializedEvent>,服务启动初始化完成后进行服务注册。 NacosServiceRegistryAutoConfiguration->NacosAutoServiceRegistration->AbstractAutoServiceRegistration.onApplicationEvent(WebServerInitializedEvent event)->NacosServiceRegistry.register(Registration registration)->NacosNamingService.registerInstance(String serviceName, String groupName, Instance instance)->NamingProxy.registerService(String serviceName, String groupName, Instance instance)
作者回复: 棒棒哒,so long同学是瓜王
2022-01-053 - 你的笑忘书Spring Cloud Alibaba 2021.1 适配的 Nacos 版本是 1.4.1
作者回复: 服务端可以无缝升级2.0版,官方也给出了升级指南 https://nacos.io/zh-cn/docs/2.0.0-upgrading.html
2022-03-202 - 来来public class NacosDiscoveryAutoConfiguration { // 读取Nacos所有配置项并封装到NacosDiscoveryProperties中 @Bean @ConditionalOnMissingBean public NacosDiscoveryProperties nacosProperties() { return new NacosDiscoveryProperties(); } 上面例子中的这个return new NacosDiscoveryProperties(); 直接new的写法有疑问,为什么不是spring的注入或者查找,直接new出来配置怎么加载的?
作者回复: 同学可以点击进去NacosDiscoveryProperties,在这个类上有个ConfigurationProperties注解类起了关键作用,指定读取了特定前缀的配置项。你可以在本地用同样方法new一个类试试看,也会达到同样的效果
2022-01-0432 - 大碗nacos具有环境隔离的功能,可以区分生产环境、预发环境和开发环境,请问老师正常生产环境中,只需要一套naocs注册中心就可以么?需不需要有一套测试的nacos注册中心,专门用于注册测试环境的服务
作者回复: 同学这个问题非常好,我建议生产环境使用单独的nacos服务器,把测试和生产隔离开来以保证线上环境稳定性,并且在线上nacos portal里设置更为严格的登录用户权限控制。
2021-12-311 - Geek_3100bd我本地配置的远程注册地址,但一直读取本地文件,currentServerAddr:http://localhost:8848, err : connect timed out
作者回复: 看error是localhost:8848连不上。同学有没有用虚拟机跑应用?或者是虚机起docker镜像,如果是的话,那就不好用localhost了
2023-07-03归属地:贵州 - silent姚老师,我这边有个疑问啊,为什么我2个服务注册到nacos 会出现,IP1 下存在一个IP2 下存在一个,而不是每一个IP 下都展示2个服务那?
作者回复: 同学有截图参考吗?如果这两个应用是在本地以不同端口启动,那么在nacos的注册信息应该是IP相同但端口不一样
2023-03-01归属地:江苏 - ¯\_(ツ)_╱¯老师 pom,xml文件中<relativePath>的作用是什么 为什么有的pom文件中有配置为../pom.xml 有的文件中没有呀
作者回复: 这里有一个默认的行为,就是当没有配置上级父目录的时候,只写了< relativePath />的时候,会默认自动往../pom.xml这个位置寻找pom文件
2022-10-24归属地:贵州 - Geek_277281nacos在集群模式下,template可以注册,calculate注册失败;在-m standalone时,两个都可以成功```不明白为什么
作者回复: 集群模式下是calculate永远是不幸的那个,还是两个交替不幸?
2022-09-05归属地:上海2 - Geek_277281老师你好,我试图在我的机器上运行您提供的源码,更改设置后,template-serv可以正常注册,但cauculation-serv不行,错误发生在cauculation-serv的启动过程中, com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance after all servers([localhost:8948]) tried: ErrCode:400, ErrMsg:<html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Mon Sep 05 10:13:11 UTC 2022</div><div>There was an unexpected error (type=Bad Request, status=400).</div></body></html>
作者回复: 从报错里我猜想应该是集群模式下失败了,同学你检查下cluster文件里添加的IP是不是真实IP,而不是127.0.xxx之类的所谓本机IP
2022-09-05归属地:上海