问题:
使用nacos作为注册中心。
原理:
nacos遵循的是REST API的风格。
核心就是Config Service和 Naming Service
这里主要是用的Naming Service。
通过nacos/v1/ns/instance接口,把服务注册到nacos中指定的目录下去。
namespace(命名空间)-cluster(集群)-dom(服务)-实例。
文档:
nacos官方文档: https://nacos.io/zh-cn/docs/quick-start.html
nacos注册源码分析: https://blog.csdn.net/xc1158840657/article/details/90712631
关于Springboot,SpringCloud,SpringCloudAlibaba对应的版本关系地址:
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
步骤:
1.下载nacos并启动
2.创建SpringBoot项目并添加依赖(2个依赖,SpringCloud和nacos)
3.设置nacos地址和启动注解
4.启动项目并查看是否成功注册
1.下载nacos并启动
根据官网流程来。不管是下载包还是自己拉取代码来编译。都可以。
然后访问 http://localhost:8848/nacos/#/login
账号密码都是 nacos
2.创建SpringBoot项目并添加依赖
<!--注意这里的版本。默认创建的可能已经超过这个版本了,尽量保持一致。-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/>
</parent>
<!-- 添加以下两个依赖 -->
<dependencyManagement>
<dependencies>
<!--F版本-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--SpringCloudAlibaba还没正式归入到cloud版本里面去,所以需要额外添加-->
<!--注意这里的groupId。用的是alibaba 不是springframework.-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.0.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!--nacos 作为注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
注意Springboot的版本,SpringCloud的版本,SpringCloudAlibaba的版本。
3.设置nacos地址和启动注解
配置文件编写naocs地址:
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
设置项目名称(这个就是在nacos上显示的名称)和端口
spring.application.name=nacos-provider
server.port=9870
启动类开启服务发现与注册
@EnableDiscoveryClient
4.启动项目并查看是否成功注册
已经注册成功。
总结:
感觉和使用其他注册中心没啥区别。
都是添加依赖。开启注解就OK了。
需要注意的就是Springboot的版本,SpringCloud的版本,SpringCloudAlibaba的版本之间的对应关系。