SpringCloudNetflix(3)注册中心

2020-04-16

在这里,我们需要用的组件是 Spring Cloud Netflix 的 Eureka,Eureka 是一个服务注册和发现模块

创建服务注册中心

pom.xml 文件配置如下:

<?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">
    <!--POM文件的模型版本是4.0.0-->
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>top.misterzhang</groupId>
        <!--继承谁的依赖-->
        <artifactId>dependencies</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <!--父级依赖的相对路径-->
        <relativePath>../dependencies/pom.xml</relativePath>
    </parent>

    <!--最好和项目名一样-->
    <artifactId>eureka-server</artifactId>
    <!--打包方式-->
    <packaging>jar</packaging>
    <dependencies>
        <!-- 测试场景启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- netflix公司的eureka服务端场景启动器 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--启动类的包下目录-->
                    <mainClass>top.misterzhang.eureka.server.EurekaServerApplication</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Application

启动一个服务注册中心,只需要一个注解 @EnableEurekaServer

package top.misterzhang.eureka.server;

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

/**
 * @author zhangfan
 * @date 2020/4/15
 * @SpringBootApplication   SpringBoot程序注解,表明是Spring Boot项目
 * @EnableEurekaServer      开启eureka服务端
 */

@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {

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

application.yml

Eureka 是一个高可用的组件,它没有后端缓存,每一个实例注册之后需要向注册中心发送心跳(因此可以在内存中完成),在默认情况下 Erureka Server 也是一个 Eureka Client ,必须要指定一个 Server。

spring:
  application:
  #给项目起名
    name:  eureka-server

server:
#端口号
  port:  8761

eureka:
  instance:
  #eureka服务器的地址
    hostname:  localhost
  client:
  #eureka服务端模式,指定为服务端
    registerWithEureka:  false
    fetchRegistry:  false
    serviceUrl:
    #配置eureka地址
      defaultZone:  http://${eureka.instance.hostname}:${server.port}/eureka/

通过 eureka.client.registerWithEureka:falsefetchRegistry:false 来表明自己是一个 Eureka Server.

操作界面

http://localhost:8761
Lusifer201805292246001.png


标题:SpringCloudNetflix(3)注册中心
作者:张范
地址:http://misterzhang.top/articles/2020/04/08/1586354384115.html