SpringCloudAlibaba+Nacos搭建微服务架构
1. Spring Cloud Alibaba 简介
Spring Cloud Alibaba是阿⾥巴巴为提供的,能够更⽅便快捷地搭建分布式平台,nacos拥有着替换eureka server ,spring cloud config等组件的⽬标和意图,旨在能够更简便快速地去管理服务、注册服务、管理配置。
2. Spring Cloud Alibaba +Nacos搭建微服务架构
集成nacos
1. 启动nacos server
nacos 官⽅学习⽂档: nacos.io/zh-cn/docs/quick-start.html
下载nacos: github/alibaba/nacos/releases
也可以使⽤如下命令安装并编译项⽬:
git clone github/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -st.skip=true clean install -U
项⽬构建完毕后,会在\nacos\distribution\target\ ⽬录下⽣成对应的包:
进⼊到/nacos/bin ⽬录下 D:\Program Files\nacos\distribution\target\nacos-server-1.4.2-SNAPSHOT\nacos\bin:
执⾏命令 d -m standalone, 以单例模式启动:
cd D:\Program Files\nacos\distribution\target\nacos-server-1.4.2-SNAPSHOT\nacos\bin
d:
启动成功后,会出现如下logo:
访问: 192.168.31.166:8848/nacos/index.html, ⽤户名和密码都是,登录成功后,就可以看到如下的nacos⾸页:
2. 微服务客户端集成spring cloud alibaba +nacos server
⾃⼰建的项⽬相当于⼀个微服务客户端,在本例中就是⼀个,要想将服务注册到nacos server中,我们需要做三件事1)在l⽂件中添加依赖
nacos客户端依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId&am.springcloud</groupId>
<artifactId>spring-cloud-alibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-cloud-alibaba</name>
<description>project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring.cloud.alibaba.version>2.2.1.RELEASE</spring.cloud.alibaba.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>springcloud和springboot
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--引⼊nacos client依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
</dependencies>
<!--引⼊spring cloud alibaba 的下载地址-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring.cloud.alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2)在application.l| l(选⼀即可)添加nacos客户端配置
在项⽬中添加properties配置,各配置的作⽤和含义类似于eureka的配置,如下作出解释:
#指定微服务服务名称
spring.application.name= user
#指定nacos服务地址
spring.cloud.nacos.server-addr=localhost:8848
#指定注册中⼼地址
spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr}
#暴露所有web端点
3) 开启服务发现注册
在应⽤的启动类上添加注解 @EnableDiscoveryClient
通过以上步骤添加好配置后,接下来启动服务,如果注册成功了,会在控制板上看到新建的user服务已经注册到上去。
再次查看nacos服务列表,可以看到user服务已经注册到nacos 注册中⼼上去。
如果还有其他服务,那么采⽤相同的⽅式进⾏注册即可。
3. 的使⽤
由于Spring Cloud Alibaba是基于Spring boot进⾏集成的,服务间的调⽤仍然可以使⽤RestTemplate+ri
bbon进⾏调⽤,或者使⽤Feigin组件来实现服务间的调⽤, 以下⽂章能够帮助理解服务发现、服务注册⼀级服务调⽤。
⽂章列表:
Eureka服务发现注册详解
使⽤Ribbon+RestTemplate来实现微服务间的调⽤
从零开始搭建Feign客户端
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论