第一阶段——基础准备

这一部分,看是很简单,却是很关键,微服务的基础概念概念就不讲了,百度很多;

主要涉及springboot、springcloud、springcloud alibaba的版本选择;SpringCloud各组件停更说明及替代方案;父工程、基础服务搭建;

一、springboot、springcloud、springcloud alibaba的版本选择

版本选择很关键,尤其springboot和springcloud官方是有很明确的版本对应表的,当前官方Cloud推荐的稳定版为Hoxton:

1.jpg

https://start.spring.io/actuator/info

这个网站有最新官方推荐的版本对应关系区间,必须严格按照,不然会有很多麻烦;

2.jpg

经过最终对比,我们最终选择的版本对应表如下:

Cloud     Hoxton.SR1 Java     Java8
Boot     2.2.2.Release Maven     3.5及以上
Cloud Alibaba     2.1.0.Release Mysql     5.7及以上

以上三位在项目中的基础依赖如下:

<!-- spring boot 2.2.2 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.2.2.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
<!-- spring cloud Hoxton.SR1 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-dependencies</artifactId>
  <version>Hoxton.SR1</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>
<!-- spring cloud alibaba 2.1.0.RELEASE -->
<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
  <version>2.1.0.RELEASE</version>
  <type>pom</type>
  <scope>import</scope>
</dependency>

二、SpringCloud各组件停更说明及替代方案:

众所周知,springcloud netflex解决方案,已经进入了维护期,停更了;

停更不停用:被动修复bugs,不再接受合并请求,不再发布新版本;

它一停更,引发了大量的“升级惨案”,那么我们既然要用springcloud,那么必然要去寻找对应的替代组件(而且,通过下图,我们还不难发现,Alibaba的Nacos是重中之重):

3.jpg

三、创建父工程、基础服务搭建

1、采用聚合方式创建工程,父工程package为pom;

通过dependencyManagement定义常用依赖的版本号,在之后的子模块中相关模块会自动继承父工程的groupId和版本号;

这些基础创建项目的过程就不多讲了;

只是简单地带一下,创建了哪些工程,便于后面的内容使用;

2、第一个子工程:支付服务提供者 —— cloud-provider-payment8001:

4.jpg

3、第二个子工程:消费者订单服务 —— cloud-consumer-order80:

5.jpg

此 cloud-consumer-order80 服务,暂时使用RestTemplate 的方式,跨服务调用 cloud-provider-payment8001的 api 接口。

4、为了方便多个服务公用相同的实例类、工具类、第三方依赖等,我又将一不分类内容抽离出来,生成了一个公共服务 —— cloud-api-commons:

6.jpg

到这里springcloud微服务解决方案的准备工作算是完成了,到这里正式的微服务还没开始;

下面将会开始正式的微服务,会首先引入 Eureka 服务注册与发现;

个人此项目代码地址(持续更新):

https://github.com/jiguiquan/cloud2020

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐