从零开始搭建SpringCloud微服务框架(一)————基础框架搭建

前言:

最近一直在学习SpringCloud微服务框架,公司使用的也是这一套框架,所以想总结一下自己的技术,就当做沉淀吧。

目前的想法是先搭建后台框架,集成GetWay+OpenFeign+Eureka+Hystrix等等...,一步一步拓展吧,写博文也是一件值得坚持的事情。

ps:

  • 对于SpringCloud框架,本人也处于萌芽状态,这里写出来也是想和大家一起交流讨论,有不正确的地方请多指教
  • 面向有一定微服务基础的人
  • 环境请尽量保持一致,以免出现未知的问题
  • 我都是抽的空余时间,也要上班,多多担待,谢谢大家
  • 技术不在多新,在于适用,稳定。

环境准备:

SpringCloud:  Hoxton.SR6

SpringBoot:       2.2.6.RELEASE

Idea:              IntelliJ IDEA 2020.3.1

jdk: 1.8

maven:  3.6.0

搭建出来的效果大致如下:Maven聚合工程

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第1张图片

一:创建父工程

先自己新建一个文件夹,将项目放在这个文件夹下面:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第2张图片

Idea打开这个目录:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第3张图片

右键,新建项目,new,project

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第4张图片

选择Maven项目,java Jdk1.8,一路next(注意:有些人喜欢用Spring Initializr创建,其实两没什么区别,后者无非就是多了一些初始化引用的依赖,Maven更纯净,按需引用)

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第5张图片

然后输入项目相关信息

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第6张图片

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第7张图片

然后我们再新建子工程服务:springcloud_eurekaserver

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第8张图片

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第9张图片

此时,在父工程里面多了一个modules,这里面包含了所有的子项目

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第10张图片

父工程引入相关依赖:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第11张图片

pom.xml具体引入:



    4.0.0

    com.springcloud
    springcloud_parent
    pom
    1.0-SNAPSHOT
    
        springcloud_eurekaserver
        springcloud_auth
    
    
        1.8
        Hoxton.SR6
    


    
        org.springframework.boot
        spring-boot-starter-parent
        2.2.6.RELEASE
        
    

    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
    
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        

        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-hystrix
        

        
        
            cn.hutool
            hutool-all
            5.5.7
        


        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.0.1
        

        
            mysql
            mysql-connector-java
            runtime
        

        
        
            org.projectlombok
            lombok
            1.18.6
            provided
        

        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
            com.github.xiaoymin
            swagger-bootstrap-ui
            1.9.6
        
        

        
        
            org.springframework.boot
            spring-boot-starter-data-redis
        
        
            org.apache.commons
            commons-pool2
            2.7.0
        
        


        
        
            com.github.pagehelper
            pagehelper-spring-boot-starter
            1.2.10
        

        
        
            org.springframework.boot
            spring-boot-starter-aop
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.1
                
                    ${java.version}
                    ${java.version}
                
            
            
                org.apache.maven.plugins
                maven-surefire-plugin
                
                    true 
                
            
        
    

集成Eureka服务注册中心

在刚才的springcloud_eurekaserver子项目中,pom引入Eureka依赖:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第12张图片

  
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        
    

新建包,启动类:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第13张图片

package com.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringCloudApplication
@EnableEurekaServer
//排除此类的autoconfig
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})
public class EurekaServer {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer.class, args);
    }
}

配置文件,配置Eureka相关信息:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第14张图片

server:
  port: 8001
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: localhost
  client:
    ### 实例是否在eureka服务器上注册自己的信息以供其他服务发现,默认为true
    registerWithEureka: false
    ### 此客户端是否获取eureka服务器注册表上的注册信息,默认为true
    fetchRegistry: false
    ### 注册到的注册中心地址
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
  server:
    ### 测试时候关闭自我保护机制,保证不可用服务能及时剔除,生产环境建议开启
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 2000 #间隔2秒剔除一次

启动项目:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第15张图片

查看Eureka服务注册界面:

从零开始搭建SpringCloud微服务框架(一)————基础框架搭建_第16张图片

第一段落到此结束,我们一起搭建了一个聚合工程,引入了SpringCloud相关依赖,且启动了一个Eureka服务注册中心服务,接下来会陆续集成一些其它的服务。

项目地址:

https://gitee.com/bosszddquan/springcloudframe

希望能留下您宝贵的意见

 

 

 

 

 

你可能感兴趣的:(SpringCloud,spring,boot,eureka,maven,springcloud)