eureka 高可用集群配置搭建--配置问题致使运行不成功

近来本地搭建eureka的集群环境遇到诸多问题,为了巩固学的东西,在此记录下这些解决方案,话很少说,上代码。html

1.首先是pom.xml文件,主要是 spring-boot-starter-web ,spring-cloud-starter-netflix-eureka-serverjava

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.gongdafang</groupId>
    <artifactId>serverdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>serverdemo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</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>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
View Code

2.我使用了yaml文件,由于它结构清晰易懂,配置内容字符量比properties文件少,主要仍是由于能够一个文件多个环境配置web

#集群配置 spring: profiles: active: peer3 --- server: port: 8081 spring: profiles: peer1 application: name: z1-eureka eureka: client: serviceUrl: defaultZone: http://peer2:8082/eureka/,http://peer3:8081/eureka/
 instance: hostname: peer1 --- server: port: 8082 spring: profiles: peer2 application: name: z2-eureka eureka: client: serviceUrl: defaultZone: http://peer1:8081/eureka/,http://peer3:8083/eureka/
 instance: hostname: peer2 --- server: port: 8083 spring: profiles: peer3 application: name: z3-eureka eureka: client: serviceUrl: defaultZone: http://peer1:8081/eureka/,http://peer2:8082/eureka/
 instance: hostname: peer3
View Code

3.运行main spring

 

 

 

4.上面的三步骤已经将本地集群设置基本完成了,可是光写完代码,运行有问题那也是很头疼的一件事啦,嘿嘿,如今就总结下我遇到过的问题和解决方案吧apache

1. WARN 2364 --- [nfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_Z2-EUREKA/windows10.microdone.cn:z2-eureka:8082 - registration failed Cannot execute request on any known server编程

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serverwindows

 

2. There was a problem with the instance info replicatorapi

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serverapp

  

① 由于本地设置了多个server端(如peer1,peer2),而instance.hostname是惟一标识 ,此时须要配一下本地的host文件。Windows的host在/etc/host,mac的在/private/etceclipse

我是用windows为例。cmd里敲notepad "%systemroot%/system32/drivers/etc/hosts" 回车

 

 

 ②在idea中屡次启动同一个项目,启动设置修改

③对于idea运行时须要设定指定参数,如图,当运行不一样节点时,须要指定对应节点   --spring.profiles.active=peer1

 

 

 

 

 

 

 5.以上是我用idea出现的问题,注意若是运行非最后一个server端时,服务会启动成功可是仍是报错(以下出错),是由于他注册的某个服务还未启动致使,能够不用管,等全部服务都注册成功后,服务会自动注册成功的,贴上运行成功的页面吧

ERROR 5796 --- [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://peer2:8082/eureka/}

com.sun.jersey.api.client.ClientHandlerException: org.apache.http.NoHttpResponseException: peer2:8082 failed to respond

 

 

6.除了使用编程工具运行项目外,还可采用控制台命令的形式

① 切换目录到你的项目根目录而后运行 mvn install生产jar包

也能够用 idea打包

 

控制台切换到你的jar 包 位置 java -jar 你的jar包 .jar    针对集群环境命令  java -jar 你的jar包 .jar --spring.profiles.active=xxx

 ②第二种方法,能够直接 切换目录到你的项目根目录,而后运行 mvn spring-boot:run

 

以上是我搭建环境时遇到的问题,百度搭建环境的相关步骤,没有一个完整的步骤,有丢丢费脑子,哈哈哈。不过仍是有学习收获的。除了使用idea,使用eclipse的同窗在运行时,是须要配置运行服务端设置的,能够借鉴文档https://www.cnblogs.com/syuf/p/9561798.html,写的仍是挺具体的.

相关文章
相关标签/搜索