微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SpringCloud Eureka的使用

SpringCloud Eureka的使用

一、Eureka简介

Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现SpringCloud的服务发现功能

1、Eureka组件

Eureka包含两个组件:Eureka Server和Eureka Client。

1.1 Eureka Server

Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
  Eureka Server本身也是一个服务,认情况下会自动注册到Eureka注册中心。
  如果搭建单机版的Eureka Server注册中心,则需要配置取消Eureka Server的自动注册逻辑。毕竟当前服务注册到当前服务代表的注册中心中是一个说不通的逻辑。
  Eureka Server通过
Register、Get、Renew
等接口提供服务的注册、发现和心跳检测等服务。

2.1 Eureka Client

Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳,认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(认90秒)
  Eureka Client分为两个角色,分别是:Application Service(Service Provider)和Application Client(Service Consumer)

2.1.1 Application Service

服务提供方,是注册到Eureka Server中的服务。

2.1.2 Application Client

服务消费方,通过Eureka Server发现服务,并消费。

在这里,Application Service和Application Client不是绝对上的定义,因为Provider在提供服务的同时,也可以消费其他Provider提供的服务;Consumer在消费服务的同时,也可以提供对外服务。

2、Eureka Server架构原理简介

在这里插入图片描述

Register(服务注册):把自己的IP和端口注册给Eureka。
Renew(服务续约):发送心跳包,每30秒发送一次。告诉Eureka自己还活着。
Cancel(服务下线):当provider关闭时会向Eureka发送消息,把自己从服务列表中删除。防止consumer调用到不存在的服务。
Get Registry(获取服务注册列表):获取其他服务列表。
Replicate(集群中数据同步):eureka集群中的数据复制与同步。
Make Remote Call(远程调用):完成服务的远程调用

Eureka Server
  Eureka Server既是一个注册中心,同时也是一个服务。那么搭建Eureka Server的方式和以往搭建dubbo注册中心ZooKeeper的方式必然不同,那么首先搭建一个单机版的Eureka Server注册中心。

二、Eureka实例

1、导入依赖

	<properties>
        <spring-cloud.version>2020.0.3</spring-cloud.version>
    </properties>	
	<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </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>

2、编写application.yml配置文件

server:
  port: 7001

#Eureka配置
eureka:
  instance:
    hostname: localhost    #Eureka服务端的实例名称
  client:
    register-with-eureka: false   #表示是否向Eureka注册中心注册自己
    fetch-registry: false    #fetch-registry如果为false,则表示自己为注册中心
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3、开启功能

@SpringBootApplication
@EnableEurekaServer   //服务端的启动类,可以接受别人注册进来
public class EurekaServer_7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaServer_7001.class,args);
    }
}

4、访问

http://localhost:7001/

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐