Springboot+nacos搭建服务注册和发现和配置中心

Springboot+nacos搭建服务注册和发现和配置中心

1.nacos介绍

英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民。那么nacos可以做的事情有哪些,如下图。更详细的介绍可以看官方文档:https://nacos.io/zh-cn/docs/what-is-nacos.html
Springboot+nacos搭建服务注册和发现和配置中心_第1张图片

2.nacos的安装部署

首先需要去下载nacos的源码,下载地址:https://github.com/alibaba/nacos
下载那个版本都可以,用来做可视化和管理。
下载完之后找到里面的Springboot+nacos搭建服务注册和发现和配置中心_第2张图片

去启动,启动成功后,访问网址http://10.2.31.54:8848/nacos/index.html,就可以看到登录的页面
Springboot+nacos搭建服务注册和发现和配置中心_第3张图片

登录的账号和密码都是nacos。
登录成功后就可以使用了。
遇到的问题:
1.下载完源码直接找启动的启动部分是找不到的,需要先用maven下载依赖包,下载完成后会出现,路径为:nacos-2.0.3\distribution\target\nacos-server-2.0.3\nacos\bin
2.maven的问题,检查maven仓库是否为私有仓库,私有仓库有可能少包所以编译不过。
Springboot+nacos搭建服务注册和发现和配置中心_第4张图片

3.这个仓库是公有仓库,一般的包都可以在这里找到,但是下载的速度会比较慢,建议配置镜像会快很多。配置镜像代码如下
Springboot+nacos搭建服务注册和发现和配置中心_第5张图片

3.nacos作为服务注册和发现中心
1.springboot集成nacos实现自动注册(自动注册和手动注册,我用的是自动注册)
springboot集成nacos实现服务的注册和发现很简单,只要引入依赖
Springboot+nacos搭建服务注册和发现和配置中心_第6张图片

之后在项目入口处加上开启的注释来开启自动注册,这个时候还不能自动注册,因为并没有配置要去注册的地址。
Springboot+nacos搭建服务注册和发现和配置中心_第7张图片

最后在配置文件里面配置上属性就可以自动注册了,配置属性支持yml和properties文件,我用的是peoperties,注意格式一定要正确,否则会出现一些错误。
Springboot+nacos搭建服务注册和发现和配置中心_第8张图片

圈红的是一定要配置的,服务器地址和这个服务的名字。到这里自动注册就已经实现了。
自动注入NamingService的坑比较多。
1.使用AutoWired自动注入为null,调用之间空指针崩溃。
原因是因为自动注入找不到他的生成方法,需要集成一个依赖。
Springboot+nacos搭建服务注册和发现和配置中心_第9张图片

2.NamingService这玩意自动注册的注解和springboot默认的不同,引入上述依赖后NamingService可以通过@NacosInjected注入进来,但是很可能会遇到
Springboot+nacos搭建服务注册和发现和配置中心_第10张图片

这个错误,跟源码去看所有都是默认值,所有配置不生效
Springboot+nacos搭建服务注册和发现和配置中心_第11张图片

原因是因为版本不对,nacos对版本要求非常严格,看匹配版本可以上网站https://github.com/spring-cloud-incubator/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E找一下匹配版本。那个starter的依赖自己没看到对应版本,可以自己尝试,0.2.1—0.2.4总有一个合适。
3.想了解自动注入可以看自动配置类NacosDiscoveryAutoConfiguration
3.想看更多自动注册原理可以看源码register的接口,其实就是把实例注册到服务。
4.自动注册去修改传输properity的时候可以使用RestTemplate,简单方便的传输方式,更加稳定。
2.springboot集成nacos实现自己配置元数据
大多数情况下,默认的元数据并不能满足我们的需要,默认元数据可以看
Springboot+nacos搭建服务注册和发现和配置中心_第12张图片

这个文件里面有默认的属性。我们要添加需要在自动注册之前把它截获,添加配置。
在这里插入图片描述

用这个可以在nocosServingName自动注册之前把它属性重新设置。

3.springboot集成nacos后接口的使用

到这一步就是nacos集成之后使用接口了,比较常用的就是注册、删除、获取实例等等。
这些接口两种方式,第一种就是直接使用API调用网站接口去返回,另一种就是通过NamingService去调用,可以在调用中使用自己的负载均衡方法,最简单的负载均衡:所有健康实例,用随机数取返回实例。
到这里为止,服务注册中心就搭建好了。启动后成功界面就可以看到服务列表里面的服务了。

你可能感兴趣的:(spring,boot,java,spring)