Spring Cloud 的Eureka Server:
前言:
Eureka是NetFlix开源的服务发现组件,本身是基于REST的服务。包含Server和Client两部分。
一、Eureka:
Eureka 架构图:
Eureka Server: 发现服务,各个微服务启动时,会向Eureka Server注册自己的信息(例如IP,端口,服务名称等),Eureka Server会储存这些信息
Eureka Client: 是一个Java客户端,简化与Eureka Server的交互。Eureka Client 会周期性(30s)向服务端发送心跳,如果服务端在90秒内没有接受到心跳信息,会删除服务器注册表中的信息
Eureka 自我保护机制:自我保护模式是一种针对网络异常波动的安全保护措施,使用自我保护模式能使Eureka集群更加的健壮、稳定的运行。
二、将微服务注册到Eureka Server:
- 单部署:
1.1 Eureka Server:
单服务配置文件
启动类:
/**
* 注册中心
*/
@SpringBootApplication
@EnableEurekaServer//添加该依赖,是一个标识,一个开关。表明是Eureka Server
public class EurekaserverApplication {
public static void main(String[] args) {SpringApplication.run(EurekaserverApplication.class, args);
}
}
1.2 微服务(microserver-provider-user)
配置文件:
server:
port: 8763
spring:
application:
name: microserver-provider-user
devtools:
restart:
enable: true
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#将自己的ip注册到Eureka Server
instance:
prefer-ip-address: true
pom.xml文件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
1.3 启动微服务和Eureka Server,然后地址栏访问,如下图:
表明成功将微服务注册到Eureka Server上。
- 集群部署
集群Server配置文件,主要是要把几个Server之间要互相注册,服务注册时只要在其中一个Server上注册,其他Server会自动同步:
三、Eureka Server 的高可用:
1.通过命令可以启动2个服务:
java -jar provider-0.0.1-SNAPSHOT.jar --server.port=8762
java -jar provider-0.0.1-SNAPSHOT.jar --server.port=8764