zoukankan      html  css  js  c++  java
  • Spring Cloud Eureka(二):Eureka 注册中心体验

    1、Eureka 简述

    本文主要从应用角度体验一下注册中心的搭建和使用,后文会由浅入深学习Spring Cloud Eureka 的各种原理和机制。

    Spring Cloud Eureka 是 Spring Cloud Netflix 组件的一部分,而 Spring Cloud Netflix 又是基于 netflix 的 eureka 封装,所以最终的源码实现在于 eureka 中。废话不多说,先上手体验一下,后文在一步步深入了解。

    2、Eureka Server 服务端搭建

    1、创建项目,添加 maven 依赖

    <modelVersion>4.0.0</modelVersion>
    
        <artifactId>lkf-cloud-eureka</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<packaging>jar</packaging>
    
    	<name>lkf-cloud-eureka</name>
        
     <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.4.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        </properties>
    
    <dependencies>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    		</dependency>
    		<dependency>
    			<groupId>org.springframework.cloud</groupId>
    			<artifactId>spring-cloud-config-server</artifactId>
    		</dependency>
    
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
        
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    

    2、创建启动类,启用注册中心服务 @EnableEurekaServer

    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaApplication {
    
    	public static void main(String[] args) {		SpringApplication.run(EurekaApplication.class, args);
    	}
    }
    
    

    3、添加配置文件 appication

    server.port=8888
    eureka.instance.hostname=localhost
    #由于该应用为注册中心,所以设置为false,代表不向注册中心注册自己
    eureka.client.register-with-eureka=false
    #由于注册中心的职责就是维护服务实例,它并不需要去检索服务,所以也设置为false
    eureka.client.fetch-registry=false
    eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
    eureka.server.wait-time-in-ms-when-sync-empty=0
    #eureka.instance.prefer-ip-address=true
    #eureka.instance.ip-address=127.0.0.1
    
    spring.application.name=lkf-cloud-eureka
    spring.cloud.config.uri=${CONFIG_SERVER_URL:http://localhost:8888}
    

    4、启动 Eureka Server 服务

    启动应用,访问http://localhost:8888/,可以看到 Eureka Server 自带的 UI 管理界面。

    在这里插入图片描述

    3、Eureka Client 客户端搭建

    1、创建项目 lkf-eureka-client,添加maven 依赖

        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>lkf-eureka-client</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>lkf-eureka-client</name>
        
         <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.4.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        
          <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <java.version>1.8</java.version>
            <spring-cloud.version>Finchley.SR1</spring-cloud.version>
        </properties>
        
         <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
        </dependencies>
        
         <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>${spring-cloud.version}</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
        </dependencyManagement>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    

    这里如果没有引用 spring-boot-starter-web 会报以下错误:

    Destroy method on bean with name 'scopedTarget.eurekaClient' threw an exception: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with name 'eurekaInstanceConfigBean': Singleton bean creation not allowed while singletons of this factory are in destruction (Do not request a bean from a BeanFactory in a destroy method implementation!)
    
    

    2、创建启动类,启用 @EnableDiscoveryClient 或 @EnableEurekaClient

    /**
     * @author kaifeng
     */
    @SpringBootApplication
    @EnableDiscoveryClient
    public class EurekaClientApplication {
    
        public static void main(String[] args) {
        SpringApplication.run(EurekaClientApplication.class, args);
        }
    }
    

    3、添加配置文件

    server.port=8001
    spring.application.name=lkf-eureka-client
    eureka.client.serviceUrl.defaultZone=http://localhost:8888/eureka/
    

    4、启动服务,访问注册中心

    在这里插入图片描述

  • 相关阅读:
    性能测试学习笔记目录
    关于多项式的一些东西
    几道有意思的积性函数题
    关于min_25筛的一些理解
    【清华集训2014】主旋律
    清北冬令营训练计划
    # HNOI2012 ~ HNOI2018 题解
    贪心(qwq)习题题解
    导数与积分总结
    仙人掌 && 圆方树 && 虚树 总结
  • 原文地址:https://www.cnblogs.com/liukaifeng/p/10052592.html
Copyright © 2011-2022 走看看