1.关于springcloud的理解
个人觉得springcloud里面的springboot模块类似于springboot项目中的不同的模块。
2.开始创建maven项目,直接点击下一步(先创建父工程,子工程需要那个就再去添加)
创建项目的名字,点击完成
创建完成之后,需要配置maven的路径(文件->设置,输入maven),如果配置好了的就不需要这一步
最终springcloud的父工程雏形(可以删除src的目录)
3.关于nacos与eureka的区别与现在使用情况
使用情况:springcloud分为springcloud 原生版本和springcloud alibaba版本,springcloud 原生版本服务注册组件就是用的eureka,现在eureka已经没有开源了,所以可能会出现一些问题,自己无法太好的解决。而nacos的话,一直在社区比较活跃(开源),就是有问题都可以解决,无需掉头发的解决某些疑难杂症。
nacos与eureka的区别
1)nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
2)临时实例心跳不正常会被剔除,非临时实例则不会被剔除
3)nacos支持服务列表变更的消息推送模式,服务列表更新更及时
4)nacos集群默认采用AP(高可用,分区容错性)方式,当集群中存在非临时实例时,采用CP(一致性,分区容错性)模式;Eureka采用AP(高可用,分区容错性)方式
4.springcloud整合nacos
先去下载nacos,地址为:https://github.com/alibaba/nacos/releases 分为window与linux压缩包,我先是在本地配置与使用
2.下载完成之后,解压到文件夹,然后通过window+R输入cmd,进入nacos的bin目录,通过命令启动nacos。(你也可以通过conf文件夹里面的application.properties修改账号和密码)
3.浏览器启动nacos,输入密码登录进去(默认账号和密码都是nacos)
4.springcloud开始配置nacos
先配置父工程里面的pom.xml的jar包版本(直接复制,放在里面就行了)
<dependencyManagement>
<dependencies>
<!--spring-boot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- spring-cloud-alibaba -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
2.创建子模块nacos的provider模块(也是创建一个maven项目就行了)
3.创建nacos的consumer模块(跟第2步一样的操作,只是模块名字不一样),最终如图下
4.开始配置provider模块的pom文件与配置
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--nacos注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--Nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在resources创建一个bootstrap.properties的文件,里面的配置信息如下
spring.application.name=nacos-provider
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.file-extension=properties
server.port=1128
在main下的java包下新建软件包,添加一个启动类,启动成功如下
最后启动成功之后在nacos服务管理是否有nacos-provider的这个服务
5.开始配置consumer模块的pom文件与配置
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--注册中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--Nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在resources创建一个bootstrap.properties的文件,里面的配置信息如下
spring.application.name=nacos-comsumer
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
#可以加载同一个namespace下面的不同group的多个配置文件
spring.cloud.nacos.config.ext-config[0].data-id=database.properties
spring.cloud.nacos.config.ext-config[0].group=GROUP_A
spring.cloud.nacos.config.ext-config[0].refresh=true
spring.cloud.nacos.config.ext-config[1].data-id=log.properties
spring.cloud.nacos.config.ext-config[1].group=GROUP_A
spring.cloud.nacos.config.ext-config[1].refresh=true
#可以加载当前group下面的多个配置文件
#spring.cloud.nacos.config.file-extension=properties
#spring.cloud.nacos.config.shared-dataids=database.properties
#spring.cloud.nacos.config.refreshable-dataids=database.properties
server.port=1121
在main下的java包下新建软件包,添加一个启动类,启动成功如下
最后启动成功之后在nacos服务管理是否有nacos-consumer的这个服务
6.测试nacos是否成功运行
首先在provider下面创建一个类,进行代码的编写,编写完需要重启该服务
在consumer里面调用服务,看是否拿到输出的语句,写完之后也需要重启
最后测试