mapleins

gay

<Spring Cloud>入门一 Eureka Server

1.搭建父工程

  主要是添加版本依赖,此处版本是:

  spring-boot  : 2.0.8.RELEASE

  spring-cloud : Finchley.SR2

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.maple</groupId>
    <artifactId>spring-cloud-learning</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-cloud-learning</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR2</spring-cloud.version>
    </properties>

    <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>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.0.4</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.31</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

2.搭建eureka server

  此处直接搭建集群环境,实现高可用,eureka设计符合AP原则,不同于Zookeeper的CP原则。注重可用性,而不是一直性。

2.1 pom文件

  引入  spring-cloud-starter-netflix-eureka-server 坐标

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>spring-cloud-learning</artifactId>
        <groupId>org.maple</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>eureka-server-8761</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>

2.2 编写application.yml

  单机环境:defaultZone:写自己,例如 http://localhost:8761/eureka/

  集群环境:需要填写所有其他 eureka server 的地址

  在window的host文件配置了两个映射

    * 127.0.0.1 eureka-server01

    * 127.0.0.1 eureka-server02

server:
  port: 8761
eureka:
  client:
    # 是否需要检索服务
    fetch-registry: false
    # 取消服务器自我注册
    register-with-eureka: false
    # Eureka Server 服务URL,用于客户端注册,集群需要配置其他eureka server 的地址
    service-url:
      defaultZone: http://eureka-server02:8762/eureka/
  # 服务注册中心的主机ip
  instance:
    hostname: eureka-server01
  server:
    # 服务注册清理间隔,当一定时间没有上报,那么自动剔除服务(单位毫秒,默认60*1000)
    eviction-interval-timer-in-ms: 60000
    # 如果为true 当服务down不会剔除,依旧会保存服务信息
    # 是否开启自我保护,当服务一定时间没有上报,假设是因为网络因素,而服务并未出现问题,剔除是不可靠的
    # 开发阶段建议设置为false
    enable-self-preservation: false

# eureka server 应用名称
spring:
  application:
    name: eureka-server01

2.3 编写spring boot 启动类

  添加 @EnableEurekaServer 标识该服务是一个 eureka server

package org.maple;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

/**
 * @author mapleins
 * @Date 2019-01-12 17:03
 * @Desc
 **/
@EnableEurekaServer
@SpringBootApplication
public class App_Eureka_Server_8761 {

    public static void main(String[] args) {
        SpringApplication.run(App_Eureka_Server_8761.class,args);
    }
}

2.4 浏览器访问 eureka 界面

  同时 可以看到另一台 eureka-server02,此处 eureka 服务就搭建完毕

 

posted @ 2019-01-03 22:43  mapleins  阅读(385)  评论(0编辑  收藏  举报