二、Spring Cloud Alibaba环境搭建

news/2024/12/1 18:47:28/

一、依赖环境

SpringCloud Alibaba 依赖 Java 环境来运行。还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用。

  • 64 bit JDK 1.8+;
  • Maven 3.2.x+。

spring-cloud-alibaba相关网址:

地址:https://github.com/alibaba/spring-cloud-alibaba/wiki

地址:https://spring.io/projects/spring-cloud-alibaba#learn

二、版本、组件之间的适配关系

spring Cloud Alibaba版本需和spring Boot版本相互对应。
版本对应地址(github Alibaba网址)
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
在这里插入图片描述

在这里插入图片描述

spring Cloud Alibaba脚手架地址:https://start.aliyun.com/
也可以用该脚手架进行搭建,网页配置进行下载或者用IDEA进行生成。
在这里插入图片描述

三、搭建一个分布式架构进行服务调用

创建一个分布式项目,创建一个主项目springcloud-demo。
再创建两个module(springboot项目,maven使用父级的),分别是order订单和stock库存服务。

1、创建一个父级项目结构-springcloud-demo。采用springboot项目进行创建。

在这里插入图片描述

2、src等删除,留着pom即可,pom文件加入pom配置。

在这里插入图片描述

3、创建order子服务,建议创建maven项目,maven配置由父项目全局使用,IDEA会自动在maven中注册子服务。

在这里插入图片描述
修改maven,新增spring-boot-starter配置,并且自行写OrderApplication启动类,就是一个简答的springboot项目。
在这里插入图片描述

在RestConfig中注入RestTemplate,用于简单调用远端服务

@Component
public class RestConfig {@Bean("RestTemplate")public RestTemplate restTemplate(RestTemplateBuilder builder){return builder.build();}
}

OrderController写一个新增订单接口,调用库存服务。

@RestController
@RequestMapping("/order")
public class OrderController {@AutowiredRestTemplate restTemplate;@RequestMapping("add")public  String add(){System.out.println("新增订单");//调用库存服务String forObject = restTemplate.getForObject("http://localhost:8811/stock/reduce", String.class);return "新增订单,"+forObject;}
}

同样,创建stock子服务,写一个stock/reduce接口(即上面代码进行调用)给order服务调用。
在这里插入图片描述

访问测试:
在这里插入图片描述

该分布式架构之前服务调用关系错综复杂,难以维护。

四、修改为spring cloud alibaba微服务

案例版本选择:
在这里插入图片描述

  • Spring Cloud Alibaba Version:2.2.6.RELEASE。组件版本会根据选择的Spring Cloud Alibaba版本自行依赖,无需手动修改。
  • Spring Boot Version:2.3.2.RELEASE
  • Spring Cloud Version:Spring Cloud Hoxton.SR9

父maven项目中引入spring-cloud-alibaba即可。
如何使用见:
https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/README-zh.md

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2022.0.0.0-RC2</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

我们对之前父级pom进行一下规范化:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><modules><module>order</module><module>stock</module></modules><!--<parent>--><!--<groupId>org.springframework.boot</groupId>--><!--<artifactId>spring-boot-starter-parent</artifactId>--><!--<version>2.3.11.RELEASE</version>--><!--<relativePath/> &lt;!&ndash; lookup parent from repository &ndash;&gt;--><!--</parent>--><groupId>com.tc</groupId><artifactId>springcloud-demo</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud-demo</name><description>springcloud-demo</description><!--    不打包主模块--><packaging>pom</packaging><!-- 版本管理--><properties><java.version>1.8</java.version><spring.cloud.alibaba.version>2.2.6.RELEASE</spring.cloud.alibaba.version><spring.cloud.version>Hoxton.SR9</spring.cloud.version><spring.boot.version>2.3.2.RELEASE</spring.boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></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></dependencies><!-- 需要继承的包都放在这里面--><dependencyManagement><dependencies><!--spring-cloud-alibaba版本管理,通过dependency完成继承--><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><!--spring-cloud版本管理--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring.cloud.version}</version><type>pom</type><scope>import</scope></dependency><!--spring-boot版本管理,其实就是上面的parent移到这来进行管理--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>${spring.boot.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>

http://www.ppmy.cn/news/59831.html

相关文章

网络编程:UDP socket

文章目录 阅读前导 服务端定义日志框架成员属性服务端框架 初始化服务器创建套接字绑定 运行服务端读取数据参数解读 处理数据向客户端发送响应数据关闭文件描述符 客户端定义创建套接字绑定发送数据接收服务器的响应数据关闭文件描述符 测试1本地环回作用 本地测试netstat 指令…

万字长文详解linux内存管理,值得收藏

一、Linux内存管理概述 Linux内存管理是指对系统内存的分配、释放、映射、管理、交换、压缩等一系列操作的管理。在Linux中&#xff0c;内存被划分为多个区域&#xff0c;每个区域有不同的作用&#xff0c;包括内核空间、用户空间、缓存、交换分区等。Linux内存管理的目标是最…

腾讯云轻量应用服务器修改镜像系统有哪些限制?

腾讯云轻量应用服务器镜像可以更换或修改吗&#xff1f;可以&#xff01;镜像可以修改&#xff0c;镜像是指轻量服务器的预装操作系统&#xff0c;轻量服务器创建成功后镜像也是可以更换的。 镜像是轻量服务器的预装操作系统&#xff0c;轻量应用服务器的镜像不仅包含操作系统&…

Redis之五大基本的数据类型:字符串String 散列hashes 列表 lists 集合sets 有序集合sorted sets 基础命令讲解

一&#xff1a;字符串 对字符串的操作 创建字符串&#xff0c;获取键值并判断字符串是否存在&#xff0c;查询键的长度&#xff0c;往指定字符串添加数据 127.0.0.1:6379> set name buxiangshuixiangdemeng //创建一个键&#xff0c;并赋值 OK 127.0.0.1:6379> get…

Filter 过滤器

Filter过滤器介绍 这里我们讲解Filter的执行流程&#xff0c;从下图可以大致了解到&#xff0c;当客户端发送请求的时候&#xff0c;会经过过滤器&#xff0c;然后才能到我们的servlet&#xff0c;当我们的servlet处理完请求之后&#xff0c;我们的response还是先经过过滤器才…

MySQL几种备份方式对比,你用对了吗?

各备份方法对比 备份数据的策略需要根据几种维度考虑 备份能承受最大丢失数据量 备份期间系统可以处于哪种情况&#xff08;不可用&#xff0c;部分可用&#xff0c;完全可用&#xff09; 数据恢复时长 需要恢复全量数据还是增量数据 备份数据的方法 逻辑备份&#xff1a;…

JavaWeb《CSS》

本笔记学习于Acwing平台 目录 1. 样式定义方式 2.1 行内样式表&#xff08;inline style sheet&#xff09; 2.2 内部样式表&#xff08;internal style sheet&#xff09; 2.3 外部样式表&#xff08;external style sheet&#xff09; 2. 选择器 2.1 标签选择器 2.2 …

真题详解(归纳法)-软件设计(六十七)

真题详解(关系模型)-软件设计&#xff08;六十六)https://blog.csdn.net/ke1ying/article/details/130495791 1、2018上半年 将小阶向大阶对奇&#xff0c;尾数右移动 解析&#xff1a; 0.23 * 10的2次方 0.22 *10的3次方 第一步&#xff1a;0.023*10的3次方&#xff0c;…