• spring cloud eureka注册中心


    注册中心呢  就是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.8
    
    dependencies {
        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 会在下一篇博客详细说明

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

    @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

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

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

    这样就是已经注册成功 下一篇讲微服务之间的调用

  • 相关阅读:
    Ubuntu 20.04 国内下载eclipse 网速慢解决方案
    Ubuntu20.04+GeForce RTX 2080 SUPER+cuda11.1+cudnn8.0.4+openCV4.4.0编译
    计算机专业考研复试面试----计算机组成原理
    计算机专业考研复试面试----操作系统
    Gabor滤波(个人学习)
    局部保留投影算法(个人学习)
    【转载】matlab常用函数
    latex常见的错误(自己经常出现的)
    latex常用的宏包(转载)
    C语言基础知识
  • 原文地址:https://www.cnblogs.com/wangkee/p/9304161.html
Copyright © 2020-2023  润新知