Spring Cloud Eureka
1、概述
1.1、服务治理
Spring Cloud
封装了 Netflix
公司开发的 Eureka
模块来实现服务治理
在传统的 rpc
远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间的依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
1.2、服务注册与发现
Eureka
采用了 C/S
的设计架构,Eureka Server
作为服务注册功能的服务器,他是服务注册中心。而系统中的其他服务,使用 Eureka
的客户端连接到 Eureka Server
并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server
来监控系统中各个微服务是否正常运行。
在服务注册与发现中,有个一注册中心。当服务器启动时,会把当前自己服务器的信息,比如服务地址通讯地址等以别名的方式注册到注册中心上。另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务器通讯地址,然后再实现本地 RPC
调用 RPC
远程调用框架核心设计思想。在于注册中心,因为使用注册中心管理每个服务于服务之间的一个依赖关系(服务治理概念)。在任何 rpc
远程框架中,都会有一个注册中心(存放服务地址相关信息)。
1.3、Eureka Server & Eureka Client
组件
1.3.1、Eureka Server
主要功能为提供服务注册服务
各个微服务节点通过配置启动后,会在 Eureka
中进行注册,这样 Eureka Server
中的服务注册表中将会储存所有可用的服务节点的信息,服务节点的信息可以在界面中看到。
1.3.2、Eureka Client
主要作用为通过注册中心进行访问
是一个 Java
客户端,用于简化 Eureka Server
的交互,客户端同时也具备一个内置的、使用轮询(round-robin
)负载算法的负载均衡器。在应用启动后,将会向 Eureka Server
发送心跳(默认周期为30秒)。如果 Eureka Server
在多个心跳周期内没有接受到某个节点的心跳,Eureka Server
会将服务注册表中将这个服务节点移出(默认为90秒)。
2、快速入门
2.1、Eureka Server
配置
2.1.1、新建项目
新建 maven
项目 cloud-eureka-server7001
2.1.2、配置 pom.xml
<dependencies>
<!-- Eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- pojo -->
<dependency>
<groupId>com.lxc.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<dependency>
<groupI