持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情
一、Spring Cloud Alibaba的搭建
1-1、基本环境
SpringCloud Alibaba 依赖 Java 环境来运行。还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:
如果jdk和maven还未配置,可以根据上面的教程进行配置,我这边jdk使用:1.8.0_211;maven使用:3.8.4
1-2、创建分布式服务
下面来通过两个简单的子项目来实现最原始使用的分布式架构,主要分为两步:
-
基于SpringBoot的父maven项目
-
创建2个服务(订单服务和库存服务)
这样就形成了一个父项目下有两个服务
1-2-1、创建spring父项目
1、填写父项目相关信息
2、不需要选任何插件,直接finish
3、因为是父项目,因此把多余的文件删掉
4、最终父项目下就只有pom.xml
5、修改package方式为pom,这样打包的时候就不会打成jar包了
1-2-2、在父项目下创建两个module
1-2-2-1、创建订单服务
1、在父项目右键,创建module
2、通过maven或者spring initializr创建模块,maven可以自动继承父项目,spring initilalizr不会自动继承,我这边使用maven
3、填写服务名称,首先创建订单服务
4、可以看到pom中已经自动继承父项目,这样父项目中的依赖在子项目中就可以使用了
1-2-2-2、创建库存服务
根据上面创建订单服务的过程,再创建库存服务,最终创建完的目录结构如下:
1-2-3、给两个子项目填写相关配置
1、因为订单和库存两个服务要互相调用,因此首先引入web场景启动器
2、创建springboot启动器
3、配置端口,设置order:8081;stock:8082
1-2-4、创建各自服务
1-2-4-1、创建订单服务
创建一个简单的调用,完成下单服务
1-2-4-2、创建库存服务
创建一个简单的减库存服务
1-2-5、完成服务之间调用
现在两个服务已经完成创建,剩下的就是两个服务之间的调用,一般可以使用httpClient或者webService,我这边使用RestTemplate来进行调用,RestTemplate之前也有介绍,如果有疑问可以去看下juejin.cn/post/710293…
1-2-5-1、创建RestTemplate Bean
为了方便就直接在启动类中,添加RestTemplate Bean
1-2-5-2、通过RestTemplate调用库存服务
通过restTemplate调用服务的远程接口地址就可以获得数据了
浏览器调用下单接口,可以看到下单和库存服务都完成调用了
通过以上就可以完成分布式服务之间的调用了,但是在调用服务的时候写了服务的固定域名/ip,万一后面域名或者IP会有改动,那就带来一些工作量,这样显然不是我们想要的。而且随着项目的扩大,各种服务的研发,各个服务之间的调用也变的错综复杂,要是以目前的方式来处理,无疑是非常麻烦的。这样就需要用到注册中心来处理了。