eureka基本使用
Eureka组件
Eureka采用CS(Client/Server)架构,所以它包含以下两个组件,分别是服务端和客户端,在CAP原理中遵循AP原则(丢弃了数据的强一致性)
Eureka Server
Eureka Server也就是Eureka的注册中心,主要用于提供对Eureka Client的服务注册功能,它维护了一个可用服务的列表,存储了所有注册到Eureka Server的可用服务的信息,服务列表可以在Eureka Server的管理页面中看到,在默认情况下,Eureka Server在启动后也会自己注册自己,但是在Eureka Server单机部署时,自己注册自己是无意义的。
Eureka Client
Eureka的客户端,也就是微服务系统中一个一个的微服务,启动时会向Eureka Server注册自己,并且在每隔一段时间(默认30秒)会向Eureka Server发送心跳信息(证明自己的存活状态),若它所注册的Eureka Server在多个心跳周期(默认90秒)没有接受到来自Eureka Client的心跳,Eureka Server就会考虑剔除该Eureka Client。
Eureka的服务注册与发现

- 服务注册中心:它就是Eureka Server,用于提供服务的注册与发现功能。
- 服务提供方:它是一个Eureka Client,用于提供服务,它会向服务注册中心注册自己,以供被服务消费方发现并消费服务。
- 服务消费方:它也是一个Eureka Client,用于消费服务,它会从服务注册中心拉取服务列表,来调用需要的服务。
所以在整个微服务系统中,服务注册中心的重要性非常高,它是服务消费方与服务提供方交流的桥梁,服务提供方需要向服务注册中心注册自己,才能被服务消费方发现,而服务消费方需要从服务注册中心获取服务列表,才能调用服务。
Eureka基本使用
Eureka Server端搭建
引入依赖
1
2
3
4<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>开启Eureka Server服务
1
2
3
4
5
6
7
8
//启用Eureka Server注解
public class EurekaServerAApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerAApplication.class, args);
}
}
Eureka Client端搭建
引入依赖
Eureka Client需要引入web,否则程序运行会停止
1
2
3
4
5
6
7
8<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>开启Eureka Client服务
1
2
3
4
5
6
7
8
//启用Eureka Client注解
public class EurekaClientAApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaClientAApplication.class, args);
}
}
Eureka常用配置
Eureka配置主要分为三类,分别是Eureka instance,Eureka Client和Eureka Server
Eureka instance常用配置
1 | eureka: |
Eureka Client常用配置
1 | eureka: |
Eureka Server常用配置
根据实际需要使用选择需要的配置
1 | eureka: |
Eureka Dashboard配置
1 | eureka: |
Eureka Server集群
三台Eureka Server的application.yml配置文件为
1 | server: |
1 | server: |
1 | server: |
每台Eureka Server都注册到其他两台服务注册中心上去,且在上面的配置中,可以看到主机的实例名称并不是主机的IP地址,这是因为我们在本地搭建Eureka Server集群服务,所以无法使用不同的IP,此时我们需要修改本地主机的hosts文件,windows的hosts文件位置为C:/Windows/System/drivers/etc/hosts,Mac和Linux的hosts文件位置为**/etc/hosts**,在该文件末尾加上:
1 | 127.0.0.1 eureka-server-a |
启动三台Eureka Server端口,查看任何一台Eureka Server的仪表盘,可以看到其他两台副本,当有一个客户端注册到其中一台服务器上时,Eureka Server会通过数据同步的方式,让客户端也注册到其他的服务注册中心
