SpringCloud Alibaba 环境搭建

一、分布式结构服务之间通讯

在搭建微服务环境之前,先看看基础的分布式架构的搭建以及各个服务之间的通讯方式。

基于SpringBoot 的父 Maven 工程

1、创建父工程

这里我们通过 Spring Initializer 方式创建,通过 Maven 的方式创建也是可以的。

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

2、创建子项目

创建两个子项目,继承父项目,通过 Maven 的方式进行创建

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

项目结构大致如下

SpringCloud Alibaba 环境搭建

OrderController 代码

@RestController
@RequestMapping(value = {"/order"})
public class OrderController {

    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/add")
    public String add() {
        System.out.println("下单成功!");
        String message = restTemplate.getForObject("http://127.0.0.1:8011/stock/reduce", String.class);
        return "Hello World " + message;
    }
}

StockController 代码

@RestController
@RequestMapping("/stock")
public class StockController {
    @RequestMapping("/reduce")
    public String reduce() {
        System.out.println("扣减库存!");
        return "扣减库存";
    }
}

RestTemplateConfig 代码

@Configuration
public class RestTemplateConfig {
    // 可以直接 new RestTemplate(),但是官方建议使用构造器
    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        RestTemplate restTemplate = builder.build();
        return restTemplate;
    }
}

启动项目进行测试

为了方便管理项目,可以让项目以Run DashBoard 显示

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

浏览器输入地址,显示结果,Order 服务调用 Stock 服务成功!

SpringCloud Alibaba 环境搭建

问题

当服务与服务之间接口调用多了之后,难于维护等各种问题

SpringCloud Alibaba 基础搭建

在搭建之前,必须要了解 SpringCloud Alibaba 的版本要求,这里使用的版本如下

Spring Cloud Version:
Hoxton.SR9
Spring Cloud Alibaba Version:2.2.6.RELEASE
Spring Boot Version:2.3.2.RELEASE

SpringCloud Alibaba 环境搭建

版本说明

SpringCloud Alibaba 环境搭建

这里使用到的 Spring Cloud Alibaba 对应的组件的版本如下

SpringCloud Alibaba 环境搭建

在父 Maven 工程中加入配置

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

同样 SpringBoot 的管理方式也可以使用此方式,就可以将 parent去除,以后公司中开发就可以使用 parent 去继承公司自定义的父 maven 项目

SpringCloud Alibaba 环境搭建

整体依赖关系如下

SpringCloud Alibaba 环境搭建

其它创建方式

除了上面进行手动的配置之外,还可以通过阿里官网的方式进行创建

Aliyun Java Initializr

SpringCloud Alibaba 环境搭建

或者配置 Idea 中 SpringBoot 的初始化方式

SpringCloud Alibaba 环境搭建

SpringCloud Alibaba 环境搭建

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!