IEDA搭建Spring Cloud微服务项目架构(包含服务目录结构)详解_基础篇

IEDA搭建Spring Cloud微服务项目架构(包含服务目录结构)详解_基础篇




前言

为什么学习微服务架构?学习微服务架构需要那些技术储备?
1、在我们刚接触的项目当中大部分都是单体架构(除了一线互联网公司),单体结构的特点就是以满足业务需求是第一位,技术实现其次所以业务量不是跟大比如一些公司的内部使用系统。设想如果用户量、业务量很大呢单体架构很难支撑,所以我们要采用微服务架构解决高并发的问题。
2、技术储备首先要学习Spring Boot框架(可查看我的文章SpringBoot篇),因为Spring Cloud架构是在Spring Boot就框架的基础上进行开发和搭建,也可以理解为多个Spring Boot项目放在一起就是一个分布式Spring Cloud项目

这只是创建项目结构也可实现,具体实现细节可详见我的文章分布式微服务Spring Cloud框架搭建详细流程_中等篇


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建项目目录结构(项目服务总架构)

点击 + Create New Project 创建新的项目
在这里插入图片描述
点击 Maven 然后 Next
在这里插入图片描述
Groupld:定义了项目属于哪个组,举个例子,如果你的公司是com,有一个项目为zhx,那么groupId就应该是com.zhx
Artifactld:项目名称(总架构项目的名称)
点击 Next
在这里插入图片描述
检查项目名称及工作空间目录路径 没问题点击 Finish
在这里插入图片描述
在这里插入图片描述

1.项目配置Maven

点击 File ----> Settings
在这里插入图片描述
配置Maven:File —> Settings —> Build, Execution, Deployment —> Build Tools —> Maven
User settings file:你maven服务的conf文件夹的settings.xml文件
Local repository:本地仓库的路径(存放从中央仓库、阿里云镜像下载的Jar包)
在这里插入图片描述

二、项目服务总架构基础上创建分支服务项

1.创建eureka-service服务

方式一、创建eureka-service服务(选其中一个方式就行)

选中项目点击右键 New---->Module
在这里插入图片描述
选中1、Spring Initializr 2、 钩住Default
然后点击 Next
在这里插入图片描述
Group:项目坐标
Artifact: 注册中心服务的项目名称
然后点击 Next
在这里插入图片描述
选中 Spring Cloud Discovery -------> Eureka Server
然后点击 Next
在这里插入图片描述
然后点击 Finish
在这里插入图片描述
在总架构的基础上已创建注册中心服务
在这里插入图片描述
pom.xml添加依赖(如果你是按照以上步骤操作,都是自动添加的依赖)

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

配置文件在resource文件夹下创建application.yml配置文件

server:
  port: 10000   #端口号
spring:
  application:
    name: eureka-service    #服务名
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10000/eureka
    register-with-eureka: false #不注册自己,列表当中看不到自己
    fetch-registry: false #不注册自己

方式二、创建eureka-service服务(选其中一个方式就行)

选中项目点击右键 New---->Module
在这里插入图片描述
选中Maven 点击 Next
在这里插入图片描述
点击 Next
在这里插入图片描述
点击 Finish在这里插入图片描述
在总架构的基础上已创建注册中心服务
在这里插入图片描述

2.创建producer-service服务(生产者)

选中项目点击右键 New---->Module
在这里插入图片描述
选中Maven 点击 Next
在这里插入图片描述

点击 Next
在这里插入图片描述
点击 Finish
在这里插入图片描述
在总架构的基础上已创建生产者服务
在这里插入图片描述
pom.xml添加依赖

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- mysql驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--添加jsp的依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--添加mysql数据库-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>

配置文件在resource文件夹下创建application.yml配置文件

spring:
  application:
    name: producer-service   #服务名称
    datasource:    
      username: root    ##数据库用户,改成自己的
      password: root   ##数据库密码,改成自己的
      url: jdbc:mysql://localhost:MySql/MySql?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
      driver-class-name: com.mysql.jdbc.Driver
server:
  port: 8083    #服端口号
eureka:
  client:
    service-url: # EurekaServer地址
      defaultZone: http://127.0.0.1:10000/eureka
  instance:
    prefer-ip-address: true # 当调用getHostname获取实例的,返回ip而不是host名称
    ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找

3.创建consuming-service服务(消费者)

选中项目点击右键 New---->Module
在这里插入图片描述
选中Maven 点击 Next
在这里插入图片描述
点击 Next
在这里插入图片描述
点击 Finish
在这里插入图片描述
在总架构的基础上已创建消费者服务
在这里插入图片描述
pom.xml添加依赖

     <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-feign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

配置文件在resource文件夹下创建application.yml配置文件

spring:
  application:
    name: consuming-service    #服务名称
server:
  port: 8082     #端口号
eureka:
  client:
    service-url: # EurekaServer地址
      defaultZone: http://127.0.0.1:10000/eureka
  instance:
    prefer-ip-address: true # 当调用getHostname获取实例的,返回ip而不是host名称
    ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找

4.创建Zuul-service服务(网关服务微服务请求入口)

选中项目点击右键 New---->Module
在这里插入图片描述
选中Maven 点击 Next
在这里插入图片描述
点击 Next
在这里插入图片描述
点击 Finish
在这里插入图片描述
在总架构的基础上已创建网关服务服务
在这里插入图片描述
pom.xml添加依赖

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-zuul -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
</dependencies>

配置文件在resource文件夹下创建application.yml配置文件

spring:
  application:
    name: zuul-server   ##服务名称
server:
  port: 10088     ##端口号
eureka:
  client:
    service-url: # EurekaServer地址
      defaultZone: http://127.0.0.1:10000/eureka
    instance:
      prefer-ip-address: true # 当调用getHostname获取实例的,返回ip而不是host名称
      ip-address: 127.0.0.1 # 指定自己的ip信息,不指定的话会自己寻找
      #instance-id: zuul.com
zuul:
  #ignored-services:
  prefix: /api         #请求前缀
  routes:
    producer-service: /aa/**     #通过http://localhost:10088/api/aa/hello
    consuming-service: /bb/**        #通过http://localhost:10088/api/bb/xhello访问

备注:SpringCloud组件,以及版本号要对应上,否则会出现版本不一致的情况
在这里插入图片描述
1、项目当中要是想根据技术选型实现业务需求,在项目总结构当中根据以上步骤创建服务项即可(组件说明见上边图片Component)
2、结合下面这个图来看,能够清晰每个组件是干什么用的
在这里插入图片描述


总结

提示:当然这只是阐述一下微服务项目开发的一个基本的流程,一个微服务的项目服务会有跟多,可以引用相关组件来实现业务需求,但是如果服务比较多接口定义一定要规范并且要汇总接口调用基线,可参考我的文章:分布式微服务Spring Cloud框架搭建详细流程_中等篇

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灰太狼RD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值