SpringCloud Alibaba 环境搭建
一、分布式结构服务之间通讯
在搭建微服务环境之前,先看看基础的分布式架构的搭建以及各个服务之间的通讯方式。
基于SpringBoot 的父 Maven 工程
1、创建父工程
这里我们通过 Spring Initializer 方式创建,通过 Maven 的方式创建也是可以的。
2、创建子项目
创建两个子项目,继承父项目,通过 Maven 的方式进行创建
项目结构大致如下
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 显示
浏览器输入地址,显示结果,Order 服务调用 Stock 服务成功!
问题
当服务与服务之间接口调用多了之后,难于维护等各种问题
SpringCloud Alibaba 基础搭建
在搭建之前,必须要了解 SpringCloud Alibaba 的版本要求,这里使用的版本如下
Spring Cloud Version:
Hoxton.SR9
Spring Cloud Alibaba Version:2.2.6.RELEASE
Spring Boot Version:2.3.2.RELEASE
这里使用到的 Spring Cloud Alibaba 对应的组件的版本如下
在父 Maven 工程中加入配置
同样 SpringBoot 的管理方式也可以使用此方式,就可以将 parent
去除,以后公司中开发就可以使用 parent 去继承公司自定义的父 maven 项目
整体依赖关系如下
其它创建方式
除了上面进行手动的配置之外,还可以通过阿里官网的方式进行创建
或者配置 Idea 中 SpringBoot 的初始化方式
本作品采用《CC 协议》,转载必须注明作者和本文链接