首页 > 编程 > Java > 正文

详解spring cloud eureka注册中心

2019-11-26 09:48:36
字体:
来源:转载
供稿:网友

注册中心呢 就是springcloud的一个核心组件 所有微服务的基石 微服务的核心思想就是分布式 所有的服务分开管理 但这些服务分开后该如何协同呢 就需要注册中心的介入

怎么使用注册中心

首先在gradle引入它的依赖

compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'

这里再讲一下 springcloud会分布很多模块 很难管理 所以在整个项目的build.gradle中可以对所有模块的build.gradle进行管理

//插件apply plugin: 'java' apply plugin: 'spring-boot'//jdk版本sourceCompatibility = 1.8dependencies {  testCompile group: 'junit', name: 'junit', version: '4.12' //项目版本}//在编译构建时的配置 自动维护版本号buildscript {  ext{    springBootVersion='1.5.10.RELEASE' //ext中可以定义变量 里面写的是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}")  }}//统一所有项目的配置 就是对所有的模块进行统一配置 所有以后的模块都不用再配置allprojects {  group 'com.indi.wk' //分组  version '1.0-SNAPSHOT' //版本号   ext{    springCloudVersion='Edgware.SR2'  }  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'){      //移除tomcat 因为springboot嫌tomcat运行慢 就使用undertow来代替      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}"    }  }}

看下配置文件

server: port: 8888 #端口号spring: application:  name: register-center #项目名eureka: client:  register-with-eureka: false #启动时不向注册中心注册自己 意思也就是证明自己是一个注册中心  fetch-registry: false #启动时是否检索服务 不检索 含义同上

还有一个

eureka.server.enable-self-preservation:

是否开启自我保护模式,默认为true 会在下一篇博客详细说明[/code]

需要在启动类上加上两个注解

@SpringBootApplication //启动项目@EnableEurekaServer // 定义自己是一个注册中心public class RegisterCenterProvider {  public static void main(String[] args) {    SpringApplication.run(RegisterCenterProvider.class,args);  }}

这时候就可以尝试将一个服务加入注册中心

先建一个新模块

一、加入依赖

compile 'org.springframework.cloud:spring-cloud-starter-eureka-server'

二、配置文件 几乎一样 唯一不同是加入如下两点

eureka: client:  service-url:   defaultZone: http://localhost:8888/eureka/ #注册进那个注册中心 注册中心的地址 instance:  prefer-ip-address: true #是否用ip地址注册进注册中心

三、在启动类上加入注解

@EnableDiscoveryClient

之后启动注册中心的启动类 再启动服务端的启动类 看看什么效果

一定要先启动注册中心 再启动服务端 否则服务端找不到可以注册的注册中心就会报错

这样就是已经注册成功

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表