SpringCloud搭建Eureka集群(一)

参考文章:

   https://www.cnblogs.com/hfultrastrong/p/8549590.html

  http://www.cnblogs.com/lovefendi/p/9817740.html

Step1:新建工程,引入依赖

a. idea创建项目结构(使用SpringBoot 1.5.10)

SpringCloud搭建Eureka集群(一)_第1张图片

SpringCloud搭建Eureka集群(一)_第2张图片

b.依赖文件pom.xml如下:



    4.0.0

    com.cloud
    euruka-server
    0.0.1-SNAPSHOT
    jar

    eureka-server
    EurekaServer

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

    
        UTF-8
        UTF-8
        1.8
        Finchley.SR2
    

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

        
            org.springframework.boot
            spring-boot-starter-test
            test
            
        

        
        
            org.springframework
            springloaded
            1.2.8.RELEASE
        
        
            org.springframework.boot
            spring-boot-devtools
            
        
    

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

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                    true
                    true
                
            

            
            
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            

            
                org.apache.maven.plugins
                maven-jar-plugin
                
                    
                        
                            true
                            lib/
                            com.yame.Application
                            false
                        
                        
                            ./
                        
                    
                
            
        
    

    
        
            spring-snapshots
            Spring Snapshots
            https://repo.spring.io/snapshot
            
                true
            
        
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
    

Step2:在启动程序类头部加入注解

package com.lx.helloworld.eureka.server;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
 
@EnableEurekaServer
@SpringBootApplication
public class EurekaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServerApplication.class, args);
    }
}

Step3:在Step2程中添加多实例的配置文件

application.yml配置详情如下:

    其中, registerWithEureka: false和fetchRegistry: false表明自己是一个eureka server.

---
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer1
server:
  port: 8000
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/
  server: 
    #注意:更改Eureka更新频率将打破服务器的自我保护功能,生产环境下不建议自定义这些配置。
    eviction-interval-timer-in-ms: 4000  # 清理间隔(单位毫秒,默认是60*1000)
    #关闭注册中心的保护机制, 默认false, 不推荐关闭
    #eureka.server.enable-self-preservation: false
---
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer2
server:
  port: 8001
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/
---
spring:
  application:
    name: spring-cloud-eureka
  profiles: peer3
server:
  port: 8002
eureka:
  instance:
    hostname: peer3
    #Eureka client 默认 30秒会向 Server 端发送一次心跳;  
    #Server端 默认是90秒对没有接收到 client 端的续租请求会认为client挂机
    #lease-renewal-interval-in-seconds: 10  
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
    fetch-registry: true
    register-with-eureka: true

说明:
  1、fetch-registry: 表示是否从eureka server获取注册信息, 如果是单一节点,  
      不需要同步其他eureka server节点, 则可以设置为false, 但此处为集群, 应该设置为true, 
      默认为true, 可不设置。
  2、register-with-eureka: 表示是否将自己注册到eureka server, 
      构建集群环境时, 需要将自己注册到及群众, 所以应该开启。
      默认为true,可不显式设置。

Step4:修改hosts文件:

127.0.0.1       peer1
127.0.0.1       peer2
127.0.0.1       peer3

Step5:启动各个eureka注册中心

有两种启动方法:

a. IDEA 启动

SpringCloud搭建Eureka集群(一)_第3张图片

SpringCloud搭建Eureka集群(一)_第4张图片

配置启动文件:

方法一:

 --spring.profiles.active=peer1

SpringCloud搭建Eureka集群(一)_第5张图片

方法二:

SpringCloud搭建Eureka集群(一)_第6张图片

 按照这个步骤添加三个启动节点,注意: program arguments 参数依次更改为 peer2 、peer3,与配置文件中的 spring.application.files 参数值对应。

SpringCloud搭建Eureka集群(一)_第7张图片

之后全部启动。 


b. 打包成jar之后,使用 java -jar命令启动

java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
java -jar spring-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3

注:启动过程会报如下错误, 但是是正常现象:

SpringCloud搭建Eureka集群(一)_第8张图片

Step6:查看集群效果

http://peer1:8000/

SpringCloud搭建Eureka集群(一)_第9张图片

Step7:集群理解

SpringCloud搭建Eureka集群(一)_第10张图片

你可能感兴趣的:(springCloud)