idea快速搭建spring cloud-注册中心与注册

Posted IT高飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了idea快速搭建spring cloud-注册中心与注册相关的知识,希望对你有一定的参考价值。

spring cloud快速搭建

  Spring Cloud是一个微服务框架,它基于spring boot, Spring Cloud提供的全套的分布式系统解决方案。 

  首先我们使用gradle来创建:

选择JDK以及勾选Java,然后下一步

起包名已经项目名,下一步:

选择我们本地的gradle包,一直下一步,点击build.gradle并添加我们的依赖:

group \'com.gaofei\'
version \'1.0-SNAPSHOT\'

//gradle使用的插件
apply plugin: \'java\'
//gradle使用spring-boot打包更方便
apply plugin: \'spring-boot\'


//jdk的版本号
sourceCompatibility = 1.8


//本项目的
dependencies {
    testCompile group: \'junit\', name: \'junit\', version: \'4.12\'
}

//由于本次创建gradle未出现src,由以下代码来解决
task "create-dirs" << {
    sourceSets*.java.srcDirs*.each {
        it.mkdirs()
    }
    sourcScts*.resources.srcDirs*.each{
        it.midirs()
    }
}


//编译构建时的配置
buildscript {
    ext{
        springBootVersion=\'1.5.10.RELEASE\' //springBootVersion是自己定义的变量 里面写的是springboot插件的版本
    }
    repositories {
        maven{ url \'http://maven.aliyun.com/nexus/content/groups/public/\'}
        jcenter()
        mavenCentral()
        maven{ url "http://repo.spring.io/snapshot" }
        maven{ url "http://repo.spring.io/milestone" }
        maven{ url "http://repo.spring.io/release" }
        maven{ url \'http://repo.spring.io/plugins-snapshot\' }
    }
    dependencies{
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")//指的是springboot的一个插件
    }
}



//统一所有项目的配置 就是对所有的模块进行统一配置 所有以后的模块都不用再配置
allprojects {

    group \'com.gaofei\' //分组
    version \'1.0-SNAPSHOT\' //版本号

    ext{
        springCloudVersion=\'Edgware.SR2\'
    }
    //所有项目都会引用的阿里云里的maven
    repositories {
        maven{ url \'http://maven.aliyun.com/nexus/content/groups/public/\'}
        jcenter()
        mavenCentral()
        maven{ url "http://repo.spring.io/snapshot" }
        maven{ url "http://repo.spring.io/milestone" }
        maven{ url "http://repo.spring.io/release" }
        maven{ url \'http://repo.spring.io/plugins-snapshot\' }
    }
}

//统一所有子项目的配置
subprojects {
    apply plugin: \'java\'
    apply plugin: \'idea\'
    apply plugin: \'spring-boot\'

    dependencies {
        compile(\'org.springframework.boot:spring-boot-starter-web\'){
            //使用undertow来代替tomacat
            exclude module:"spring-boot-starter-tomcat"
        }
        //替代tomcat
        compile \'org.springframework.boot:spring-boot-starter-undertow\'
        //健康检查
        compile \'org.springframework.boot:spring-boot-starter-actuator\'
        dependencies {
            testCompile group: \'junit\', name: \'junit\', version: \'4.12\'
        }
    }
    //版本控制插件
    dependencyManagement{
        imports{
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    }

}

通过注释可以看到各个代码块的作用,这里我们是用阿里云的仓库

接下来我们开始建eureka注册中心,通过new->Module再建gradle项目来创建

在build中添加eureka-server依赖

//表示自己是一个服务器
    compile \'org.springframework.cloud:spring-cloud-starter-eureka-server\'

接下来在application.yml中配置

server:
  port: 8000
spring:
  application:
    name: register-center #起个名字
eureka:
  client:
    register-with-eureka: false #启动时不注册表明自己是一个注册中心
    fetch-registry: false

启动类

@SpringBootApplication
@EnableEurekaServer//表明自己是注册中心
public class RegisterCenterProvider {
    public static void main(String[] args) {

        SpringApplication.run(RegisterCenterProvider.class,args);
    }
}

启动:

这就表示注册中心启动成功

下面创建服务注册到服务中心

创建一个gradle module 项目 

在build.gradle中添加thymeleaf组件,eureka客户端组件的依赖

   //thymeleaf组件
    compile  \'org.springframework.boot:spring-boot-starter-thymeleaf\'
    //eureka客户端组件
    compile \'org.springframework.cloud:spring-cloud-starter-eureka\'

在application.yml中配置:

server:
  port: 8001 
spring:
  application:
    name: project-shopping-mall #注册在注册中心的名字,它会进行键值对映射url
  thymeleaf:
    cache: false #关闭缓存
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8000/eureka/ #注册到注册中心
  instance:
    prefer-ip-address: true #用两种方式进行注册,一种是使用主机名注册,一种是使用ip地址进行注册,这里使用ip地址进行注册

启动类:

@SpringBootApplication
@EnableDiscoveryClient //表示eureka客户端
public class ShoppingMallProvider {
    public static void main(String[] args) {
        SpringApplication.run(ShoppingMallProvider.class,args);
    }
}

启动:

成功!

下几篇会说一下spring cloud中使用的组件

以上是关于idea快速搭建spring cloud-注册中心与注册的主要内容,如果未能解决你的问题,请参考以下文章

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

Spring Cloud之注册中心搭建

几张图搞定Spring Cloud Allibaba注册中心的架构原理

spring cloud 快速搭建

Spring-cloud Hystrix入门

spring cloud 搭建(注册中心)