当前位置:   article > 正文

【一】SpringCloud Alibaba之Nacos整合篇(作为注册中心)_springcloudalibaba整合nacos

springcloudalibaba整合nacos

首先,介绍一下:SpringCLoud Alibaba的Nacos相对于SpringCloud而言,实现了Eureka和Config和Ribbon的作用,可以界面化的实现这些功能,简单实用,一站式解决分布式的问题。

针对上面介绍的三种作用,下面进行一一实现。

本章讲解如何实现注册中心的作用(将所有服务注册到Nacos)

qq交流群导航——>231378628

 

目录

一、安装Nacos

二、运行Nacos

三、构建测试项目

四、演示

 

一、安装Nacos

安装时也有坑,要注意,注意安装的nacos版本,1.X或者2.X,我最开始安装的1.X,结果运行项目失败,spring-cloud-starter-alibaba-nacos的依赖版本和安装的nacos客户端版本不一致导致,结果就安装了2.X版本。我使用的spring-cloud-starter-alibaba-nacos依赖版本是2.2.7。

安装地址:Release 2.0.3 (July 28, 2021) · alibaba/nacos · GitHub

官网地址:什么是 Nacos

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

二、运行Nacos

下载之后进入bin目录,如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

进入cmd,

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

执行:startup.cmd  -m standalone(针对Windows系统,单机模式启动,直接执行startup.cmd默认是集群模式,运行项目会报错)

注意:若命令运行错了,要先去任务管理器终止那个进程,再执行startup.cmd  -m standalone命令,否则会报错,运行不起来。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

访问 nacos管理平台地址:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

账号密码都是nacos,进入首页

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

配置管理会在下一章讲到(让项目读取nacos上面的配置)

服务管理可以看到注册到注册中心的所有服务以及实例数等信息

权限控制可以设置负载均衡等

命名空间可以设置各种运行环境的配置,例如(dev,test,prod等,各个命名空间内存的配置和服务互不干预,这样就可以存在服务同名的情况)

三、构建测试项目

nacos客户端运行成功后就需要建立服务去测试他的注册中心作用了(将服务注册到nacos里),先展示一下目录结构:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

1、先新增名为nacosdemo的一个springboot父项目,删除src等多余目录,只留一个pom文件即可,如上图。

 pom文件内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.6.4</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>nacosdemo</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>nacosdemo</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.springframework.boot</groupId>
  26. <artifactId>spring-boot-starter-test</artifactId>
  27. <scope>test</scope>
  28. </dependency>
  29. <!--spring cloud alibaba 2.1.0.RELEASE-->
  30. <dependency>
  31. <groupId>com.alibaba.cloud</groupId>
  32. <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  33. <version>2.1.0.RELEASE</version>
  34. <type>pom</type>
  35. <scope>import</scope>
  36. </dependency>
  37. </dependencies>
  38. <build>
  39. <plugins>
  40. <plugin>
  41. <groupId>org.springframework.boot</groupId>
  42. <artifactId>spring-boot-maven-plugin</artifactId>
  43. </plugin>
  44. </plugins>
  45. </build>
  46. </project>

加入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>

2、新增服务端,名为demo-provider的springboot项目

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

pom文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.3.5.RELEASE</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.example</groupId>
  12. <artifactId>demo-provider</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>demo-provider</name>
  15. <description>Demo project for Spring Boot</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <dependency>
  25. <groupId>org.projectlombok</groupId>
  26. <artifactId>lombok</artifactId>
  27. <optional>true</optional>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-test</artifactId>
  32. <scope>test</scope>
  33. </dependency>
  34. <dependency>
  35. <groupId>com.alibaba.cloud</groupId>
  36. <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
  37. <version>2.2.7.RELEASE</version>
  38. </dependency>
  39. <dependency>
  40. <groupId>com.alibaba.cloud</groupId>
  41. <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  42. <version>2.2.7.RELEASE</version>
  43. </dependency>
  44. <dependency>
  45. <groupId>com.alibaba</groupId>
  46. <artifactId>fastjson</artifactId>
  47. <version>1.2.47</version>
  48. </dependency>
  49. </dependencies>
  50. <build>
  51. <plugins>
  52. <plugin>
  53. <groupId>org.springframework.boot</groupId>
  54. <artifactId>spring-boot-maven-plugin</artifactId>
  55. <configuration>
  56. <excludes>
  57. <exclude>
  58. <groupId>org.projectlombok</groupId>
  59. <artifactId>lombok</artifactId>
  60. </exclude>
  61. </excludes>
  62. </configuration>
  63. </plugin>
  64. </plugins>
  65. </build>
  66. </project>

***此处特别注意一个大坑:springboot和springcloudAlibaba的依赖的版本对应:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

 若导入版本不对应的依赖运行会报错。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 web依赖提供SpringMvc的方法

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.7.RELEASE</version>
</dependency>

discovery依赖是用来注册到nacos客户端的

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>2.2.7.RELEASE</version>
</dependency>

 config依赖是用来完成配置中心功能,(读取nacos上的配置的功能,下一章讲解)

编写配置文件:

指定端口号,指定nacos的地址,定义服务名

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

 修改启动类

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

加上EnableDiscoveryClient注解。

3、新增消费端,名为demo-consumer1的springboot项目

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

pom文件同服务端一致。

也是在启动类加上相同的注解

配置文件:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

就一个简单配置,指定地址,注册到nacos。

四、演示

运行服务端和消费端服务。

注意:若一个服务运行多个配置的实例,修改如下配置:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16 勾选上即可。

然后运行一个启动类之后,修改配置文件的端口号再次运行即可。如下:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

进入nacos管理界面查看:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCPeuKZgA==,size_20,color_FFFFFF,t_70,g_se,x_16

成功注册到nacos。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/498880
推荐阅读
相关标签
  

闽ICP备14008679号