1.Eureka是什么
Eureka是一个基于REST的服务,实现中间层服务器的负载平衡和故障转移
- Eureka:服务注册中心,接受提供者发送的服务信息,可以是一个集群
- 提供者:向服务注册中心注册服务
- 消费者:定期拉取服务列表
- 心跳 :提供者定期通过http方式向Eureka刷新自己的状态,服务注册中心判断提供者是否存活
- Eureka是强调高可用,遵守AP原则,可用性和分区容错性(CAP这三个要素最多只能同时实现两点,不可能三者兼顾)
各种注册中心的对比
Consul | Zookeeper | Eureka |
---|---|---|
CA | CP | AP |
2.Eureka Client 搭建
Eureka服务注册中心的搭建参照上一篇文章Eureka服务注册中心的搭建
2.1在聚合工程中创建子工程eureka-client
2.2在eureka客户端pom文件中加入依赖
<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-client</artifactId>
</dependency>
</dependencies>
2.3在配置文件application.properties中加入以下配置
#服务名称
spring.application.name=eureka-client
#端口号
server.port=93
#服务注册中心的配置内容,指定服务注册中心的位置
eureka.client.service-url.defaultZone=http://localhost:92/eureka/
2.4启动类上加入Eureka客户端注解
@EnableEurekaClient
@SpringBootApplication
public class EurekaClientApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientApplication.class,args);
}
}
2.5先启动服务注册中心再启动Eureka客户端
3.Eureka Server 和Eureka Client 集群搭建
3.1 EurekaServer集群
3.1.1在idea中添加多个启动类配置
点击加号选择Spring Boot配置
3.1.2 添加服务注册中心配置文件
3.1.3 application.properties中加入集群的默认配置
#服务名称
spring.application.name=eureka-server
#指定环境变量
spring.profiles.active=node1
#是否检索服务
eureka.client.fetch-registry=true
#是否向服务注册中心注册自己
eureka.client.register-with-eureka=true
#关闭eureka的自我保护
eureka.server.enable-self-preservation=false
3.1.4 appliation-node1.properties中配置
#端口号
server.port=92
eureka.instance.hostname=node1
#服务注册中心的配置内容,指定服务注册中心的位置
eureka.client.service-url.defaultZone=http://node1:92/eureka/,http://node2:93/eureka/,http://node3:94/eureka/
3.1.5 appliation-node2.properties中配置
#端口号
server.port=93
eureka.instance.hostname=node2
#服务注册中心的配置内容,指定服务注册中心的位置
eureka.client.service-url.defaultZone=http://node1:92/eureka/,http://node2:93/eureka/,http://node3:94/eureka/
3.1.6 appliation-node3.properties中配置
#端口号
server.port=94
eureka.instance.hostname=node3
#服务注册中心的配置内容,指定服务注册中心的位置
eureka.client.service-url.defaultZone=http://node1:92/eureka/,http://node2:93/eureka/,http://node3:94/eureka/
3.2 Eureka Client集群配置
3.2.1 和上面server类似,选择客户端的启动类,加入启动参数
3.3 服务注册中心集群搭建及客户端的注册
3.1.1 先启动Eureka Server集群,再启动Eureka Client集群