使用 IDEA 从 0 开始搭建 Spring Cloud 微服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 IDEA 从 0 开始搭建 Spring Cloud 微服务相关的知识,希望对你有一定的参考价值。

参考技术A 以下内容均来源于一个微服务初学者的实践,仅供参考。

首先启动 Spring Cloud Eureka 注册中心,其他部分都作为服务注册到 Eureka ,并通过注册的服务名互相访问。Spring Cloud Config 提供统一的配置信息,供其他服务读取。Provider 生产者服务不直接对外暴露,仅供 Consumer 消费者服务调用。用户通过 Spring Cloud Gateway 统一访问消费者服务。

首先创建一个空 Maven 项目,然后右键项目 -> New Module ,选择继续创建空 Maven 模块或者使用 Spring Initializr 构建 Spring Cloud 模块。common模块用于存放公共的 lib ,如 dao 、model 、util 等。config-dev 存放配置文件,上传到 git 之后供 Spring Cloud Config 读取。

除了少数像 Spring Cloud Config 、Spring Cloud Gateway 这种独立应用,大部分非空模块都需要添加 spring-boot-starter-web 构建 Web 应用。下图是使用 IDEA 的 Spring Initializr 快速构建新模块。

下面贴上详细的配置文件和注解,bootstrap.yml 具有高优先级,会提前加载并且不会被 application.yml 覆盖,spring.cloud.config 需要配置在 bootstrap.yml 中,否则不能正常从配置中心获取配置信息。

application.yml

HobbyEurekaApplication.java

application.yml

application-dev.yml

HobbyConfigApplication.java

bootstrap.yml

config-dev/gateway.yml

HobbyGatewayApplication.java

在 Spring Cloud Gateway 的配置中已经展示过如何从 config-dev 配置仓库中读取配置文件。spring.cloud.config 和 eureka.client 都已经在 bootstrap.yml 中配置过,接下来不做赘述。多模块项目中扫描其他模块的 mybatis 文件需要做额外的配置。
application.yml

HobbyProviderTestApplication.java

消费者调用生产者可以使用 Feign 声明式服务调用。
HobbyConsumerTestApplication.java

TestFeignService.java

TestServiceImpl.java

Spring Cloud Eureka >> Spring Cloud Config >> Spring Cloud Gateway >> 其他服务

微服务架构能够将各种服务解耦,单独部署,配合 devops 才能展现出真正的威力,否则运维的工作会苦不堪言。gitlab 目前已经集成了 devops 功能,只要在项目中添加 .gitlab-ci.yml ,push 到 Gitlab 之后就会自动执行配置的命令,这里简单介绍一下 gitlab 的安装部署。
CentOS7 自带的 Git 版本号是 1.8.3.1 ,需要更新,否则 Gitlab Runner 在进行自动构建的时候会报错 fatal: git fetch-pack: expected shallow list ,更新步骤如下:

Gitlab 安装官方文档
Gitlab Runner 安装官方文档

配置文件的地址 /etc/gitlab/gitlab.rb
修改配置文件的操作:

常用配置:

以上是关于使用 IDEA 从 0 开始搭建 Spring Cloud 微服务的主要内容,如果未能解决你的问题,请参考以下文章

Java EE 学习:IDEA + maven + spring 搭建 web

从0开始使用IDEA搭建java REST api架构

Spring基础入门

Spring基础入门

IDEA下从零开始搭建SpringBoot工程

Spring源码阅读:使用IDEA搭建Spring5.0.x源码阅读环境