Eureka介绍与使用

本文详细介绍了Eureka在微服务架构中的作用,包括服务注册与发现、高可用配置。通过搭建Eureka Server和Service Provider,展示了如何配置Eureka以实现服务的高可用和集群。
摘要由CSDN通过智能技术生成

目录

一、Eureka介绍

eureka是做什么的

为什么要使用eureka

服务治理

服务注册

服务发现

Eureka的服务端与客户端

eureka服务端

eureka客户端

二、eureka的搭建

搭建eureka服务模块

1、创建eureka-server项目

2、pom.xml

3、application.yml

4、主程序

5、修改host文件

搭建eureka服务提供者(service provider)

1、修改item-service模块

2、pom.xml

3、aplliaction.yml添加eureka注册配置

4、主程序添加服务注册发现客户端

5、启动并查看服务注册情况

三、eureka的使用

服务提供者 的“高可用”

1、配置启动参数

2、启动两个服务,并查看注册信息

eureka的高可用

1、添加两个配置yml文件

2、配置启动参数

3、启动两台服务器,查看注册信息

 4、修改item-service服务的yml


一、Eureka介绍

以下内容来自百度百科

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

Eureka Server提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

Eureka Client是一个java客户端,用于简化与Eureka Server的交互,客户端同时也就是一个内置的、使用轮询(round-robin)负载算法的负载均衡器

在应用启动后,将会向Eureka Server发送心跳,默认周期为30秒,如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除(默认90秒)。

Eureka Server之间通过复制的方式完成数据的同步,Eureka还提供了客户端缓存机制,即使所有的Eureka Server都挂掉,客户端依然可以利用缓存中的信息消费其他服务的API。综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。 

eureka是做什么的

eureka主要负责完成微服务架构中的服务治理功能

为什么要使用eureka

当服务的模块越来越多,系统的功能越来越复杂,以前用到的静态配置就会变得越来越难以维护,会消耗巨大的人力,所以通过使用服务注册与发现来完成对微服务应用的自动化管理。

服务治理

用来实现各个微服务实例化的自动化注册与发现。

服务注册

首先会构建一个服务中心,之后的每个服务单元向这个服务中心提供主机,端口号等信息登记自己提供的服务。

而注册中心通过服务名分类组织服务清单,并对其进行维护。

服务注册中心需要以心跳的方式去监测清单中的服务是否可用,若不可用需要从服务清单中剔除。

服务发现

服务之间不需要指定具体的实例地址,而是通过服务中心发起请求调用实现。所以,调用方并不需要知道服务提供方具体的位置,只需向注册中心发起请求,从而获取所有服务的实例清单,才能实现对具体服务实例的访问。

实际应用中,不会每次都向注册中心获取服务,使用了缓存和服务剔除等不同的策略。

Eureka的服务端与客户端

eureka服务端

支持高可用配置,当集群中有分片故障时,Eureka就会进入自我保护模式,允许在有分片故障期间继续提供注册与发现的功能。当分片恢复正常,集群中的其他分片会将其状态同步回来。

eureka客户端

会向注册中心注册自身提供的服务,并周期性的发送心跳来更新它的服务租约。同时它能将服务端的注册信息查询并缓存到本地且周期性的刷新状态。

二、eureka的搭建

搭建eureka服务模块

1、创建eureka-server项目

2、pom.xml

pom.xml中添加eureka Server依赖

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

3、application.yml

编辑application.yml文件中的参数配置

spring:
  application:
    name: eureka-server
server:
  port: 2001

eureka:
  instance:
    hostname: eureka1
  client:
    register-with-eureka: false
    fetch-registry: false
  server:
    enable-self-preservation: false

其中,

  • eureka.instance.hostname=eureka1

        hostname是eureka集群服务器之间的区分

  • eureka.client.register-with-eureka=false

        不向自身注册。由于该应用为单个注册中心,所以设置为false,代表不向注册中心注册自己。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值