简介:
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能。
Eureka分为两个组件:server(服务端)和client(客户端)
注册中心节点默认时间:Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。
eureka server 优点: 通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。
本章实例为eureka注册中心的发现
eureka版本:1.5
工具:idea
工程:maven
环境:jdk1.8
实例流程如下
一:建一个以maven为依赖的父项目用来管理多个子项目
然后下一个窗口:Projectname表示项目名称 Projectlocation表示项目存储的电脑路径 Finish即可完成
二:新建springboot项目作为eurekaserver(注册中心)
在刚刚创建好的父工程名称右键:New~Model
打开作为注册中心的子工程项目
在resources下重命名application.properties ~~~~改名为application.yml
配置如下:
##端口号
server:
port: 8889
##服务ip
eureka:
instance:
hostname: 127.0.0.1
client:
#表示本身不被eureka注册中心发现与注册
register-with-eureka: false
fetch-registry: false
#建立eureka-server注册中心的地址方便其它服务发现并注册
service-url:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
##服务名称
spring:
application:
name: eureka-server
启动类如下:(idea一般都会自动生成一个启动类如果没有就新建一个)
package com.itxwl.eureka;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
//启动类必须的注解
@SpringBootApplication
//表示这是一个注册中心
@EnableEurekaServer
public class EurekaApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaApplication.class, args);
}
}
pom.xml核心依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.18.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.itxwl</groupId>
<artifactId>eureka</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eureka</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Edgware.SR5</spring-cloud.version>
</properties>
<!--eureka核心依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-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>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
启动类~~启动之后打开浏览器
如下所示即为成功