SpringCloud简单搭建

在微服务的架构体系中,SpringBoot只能用于应用开发,而想要实现完整的微服务架构,还需要实现架构中的服务注册与发现,API网关和负载均衡等功能。接下来通过SpringCloud来实现架构中的这些功能。
在创建项目之前,需要了解的是SpringCloud与SpringBoot的版本号区别是:
SpringBoot是通过数字来区分版本号的,而SpringCloud是根据英文字母的顺序,采用伦敦的"地名+版本号"的方式来命名的。例如:Angel SR6,Brixton SR7,Camden SR7,Dalston SR3.其中Angel, Brixton,Camden,Dalston是地名,SR是Service Releases的编写。,后面的数字是版本号。
要求:

jdk:1.8
开发工具:IDEA
注:需要了解springcloud

创建基于web的Maven项目(Spring Cloud)

一、创建父级。在springcloud项目中创建SpringBoot项目:

1、new -> project 选择spring initializr
在这里插入图片描述
2、创建自己的包名,类名。
在这里插入图片描述
3、这一步与创建springboot有区别,画重点了,注意下面的两个红框框

在这里插入图片描述
4、输入项目名,选择项目存储路径
在这里插入图片描述
5、导入maven
在这里插入图片描述
6、删除src包
在这里插入图片描述
在这里插入图片描述

当我们决定升级SpringCloud的时候,首先要考虑的第一个问题是什么?
自然不用说,那肯定是SpringCloud的主版本的问题,是要升级到什么版本,是F版还是G版本。
这里给几点建议(亲采坑经验)
企业开发用Finchley.SR2(稳定版本),个人开发随意。
升级的时候用的是Greenwish M3 pre最新版本(需要配置maven地址配成Spring提供的仓库地址,暂时没有提交到其他仓库)可是遇到了很多问题,最要命的是bug不好找解决方案。不到半天的时间就降为了F稳定版本。

SpringCloud 版本说明
下图是在官网一个关于SpringCloud版本的说明(截至2018年12月 12日)希望能帮助您
在这里插入图片描述

  • cloud版本 SNAPSHOT: 快照版本,随时可能修改 ;
  • M:MileStone;M1表示第1个里程碑版本,一般同时标注PRE,表示预览版版;
  • SR: Service Release,SR1表示第1个正式版本,一般同时标注
  • GA:(GenerallyAvailable),表示稳定版本
  • 所以企业开发选择稳定版本吧即可,无需犹豫(特殊情况除外)

7、修改pom.xml文件
0

二、创建注册中心eureka

1、在父级项目上新建Module(模块)
在这里插入图片描述
2、选择Spring initializr 设置jdk版本,点击下一步
在这里插入图片描述
3、编写自己的模块名,这里我起名为eureka
在这里插入图片描述
4、选择eureka服务
在这里插入图片描述
5、创建子级模块完成
在这里插入图片描述
6、修改子级的父类配置指向该父级
在这里插入图片描述
7、修改父类的pom文件,添加该子模块
在这里插入图片描述
8、因为只是做为注册中心可以只保留圈住的部分,其余的会继承父类公用
在这里插入图片描述
把application.properties文件改为application.yml文件
在这里插入图片描述
编写application.yml文件

server:
  port: 8901  #端口号

spring:
  application:
    name: discovery-eureka    #名称

eureka:
  instance:
    hostname: localhost   #host地址(名称)
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:   #服务路径
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

EurekaApplication启动类中添加@EnableEurekaServer
在这里插入图片描述
访问http://localhost:8901/可以看到
在这里插入图片描述

三、创建服务子模块

在这里插入图片描述
编写子模块的名称
在这里插入图片描述
选择web类型
在这里插入图片描述
创建完成

修改子级的父类配置指向该父级
在这里插入图片描述
清空所有引用,初期全继承父级公共,后期使用什么引用什么
在这里插入图片描述
把application.properties文件改为application.yml文件,并创建本地、测试、生产对应配置的yml文件(可根据自己需求创建)
在这里插入图片描述
编写application.yml文件

#引用注册中心
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8901/eureka/

#服务端口号
server:
  port: 8902

spring:
  #升级 boot 2.0 后返回日期类型指定为时间戳,实体中jsonFormat自由设置格式
  jackson:
    serialization:
      write-dates-as-timestamps: true
  profiles:
    active: local   #启动默认local的yml配置
  application:
    name: application-provider  #该模块的名字
    #文件上传设置大小限制
  servlet:
    multipart:
      enabled: true
      max-file-size: 10MB
      max-request-size: 10MB

application下的测试包中添加测试启动类
在这里插入图片描述

package com.example.application;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)  //添加测试启动类
@SpringBootTest  
class ApplicationTests {

    @Test
    void contextLoads() {
    }
}

搭建完成

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐