Eureka介绍与使用
目录
一、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: 2001eureka:instance:hostname: eureka1client:register-with-eureka: falsefetch-registry: falseserver:enable-self-preservation: false
其中,
- eureka.instance.hostname=eureka1
hostname是eureka集群服务器之间的区分
- eureka.client.register-with-eureka=false
不向自身注册。由于该应用为单个注册中心,所以设置为false,代表不向注册中心注册自己。
- eureka.client.fetch-registry=false
不从自身拉取注册信息。由于单个注册中心,不拉去自身信息。
- eureka.server.enable-self-perservation=false
eureka 的自我保护状态:心跳失败的比例,在15分钟内是否超过85%,如果出现了超过的情况,Eureka Server会将当前的实例注册信息保护起来,同时提示一个警告,一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据。也就是不会注销任何微服务。测试阶段将其关闭。
- eureka.instance.lease-expiration-duration-in-seconds
最后一次心跳后,间隔多久认定微服务不可用,默认90
4、主程序
编辑XxxApllication.java
添加@EnableEurekaServer
通过此注解触发自动配置
package cn.tedu.sp05;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@EnableEurekaServer //通过注解触发自动配置
@SpringBootApplication
public class Sp05EurekaApplication {public static void main(String[] args) {SpringApplication.run(Sp05EurekaApplication.class, args);}}
5、修改host文件
这里我把电脑的host文件添加配置,添加eureka域名映射
host文件位置:
C:\Windows\System32\drivers\etc\hosts
127.0.0.1 eureka1
127.0.0.1 eureka2
6、启动服务,访问测试
输入地址:
http://eureka1:2001
搭建eureka服务提供者(service provider)
1、修改item-service模块
此模块就是正常配置的一个服务模块
其中的配置:
服务名称为item-service
端口号使用8001
spring:application:name: item-serviceserver:port: 8001
2、pom.xml
添加Eureka Descovery Client依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
3、aplliaction.yml添加eureka注册配置
#defaultZone - 默认地点
#如果使用云服务器,可以由服务商提供不同的地点的服务器
eureka:client:service-url:defaultZone: http://eureka1:2001/eureka
其中还有一些属性
- eureka.client.service-url.defaultZone=http://eureka1:2001/eureka
默认地点,可以修改为具体的地名,比如beijing,shanghai,shenzhen ,表示eureka服务器的部署位置,需要云服务器提供。
- eureka.instance.lease-renewal-interval-in-seconds
心跳间隔时间,默认为30s
- eureka.client.registry-fetch-interval-seconds
拉取注册信息间隔时间,默认30s
4、主程序添加服务注册发现客户端
主程序添加@EnableDiscoveryClient注解
package cn.tedu.sp02;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@EnableDiscoveryClient
@SpringBootApplication
public class Sp02ItemserviceApplication {public static void main(String[] args) {SpringApplication.run(Sp02ItemserviceApplication.class, args);}}
5、启动并查看服务注册情况
可以看到item-service服务已经被注册到eureka服务中
三、eureka的使用
服务提供者 的“高可用”
1、配置启动参数
使用:
修改Name为 Sp02Item-8001
并且在Program argments中添加: --server.port=8001
使用左上角的复制按钮将Sp02Item-8001复制一个出来
将其Name修改为Sp02Item-8002
Program arguments修改为:--server.port=8002
注:使用此方法会将application.yml文件中的配置信息修改,从而使一个项目使用两个不同的端口分别启动(集群)。
2、启动两个服务,并查看注册信息
eureka的高可用
1、添加两个配置yml文件
application-eureka1.yml
eureka:instance:hostname: eureka1client:#向自身注册register-with-eureka: true #profile的配置会覆盖公用配置#向自身拉取注册信息fetch-registry: true #profile的配置会覆盖公用配置service-url:defaultZone: http://eureka2:2002/eureka #eureka1启动时向eureka2注册
application-eureka2.yml
eureka:instance:hostname: eureka2client:#向自身注册register-with-eureka: true #profile的配置会覆盖公用配置#向自身拉取注册信息fetch-registry: true #profile的配置会覆盖公用配置service-url:defaultZone: http://eureka1:2001/eureka #eureka2启动时向eureka1注册
其中,register-with-eureka 和 fetch-registry 均改为true
将自身作为服务向其他服务注册中心注册自己,这样就形成了一组相互注册的服务注册中心,实现服务清单的同步。
2、配置启动参数
编辑eureka1参数
修改Name为Sp05Eureka-2001
添加Program arguments参数为:--spring.profiles.active=eureka1 --server.port=2001
编辑eureka2参数
复制eureka1修改其参数
Name为Sp05Eureka-2002
Program argments为 : --spring.profiles.active=eureka2 --server.port=2002
3、启动两台服务器,查看注册信息
4、修改item-service服务的yml
使item-serivce向两台eureka服务注册
中间使用逗号(,)将两台服务器分隔开
eureka:client:service-url:defaultZone: http://eureka1:2001/eureka,http://eureka2:2002/eureka
Eureka介绍与使用相关推荐
- springcloud五大神兽之Eureka介绍
一.springcloud简介 1.0 什么是微服务? ① 业务角度 从业务角度分析,就是将整体项目(传统的一站式应用)按照业务拆分,将每个业务拆分为一个个独立的服务,彻底解除业务模块之间的耦合,每个 ...
- [享学Eureka] 一、源生Eureka介绍 --- 基于注册中心的服务发现
凡事皆有代价,一切皆是取舍. 本专栏所有文章均计划逐步重写搬迁至本人公号:Java方向盘,且免费开放!故不再建议下单购买,可关注我公号前往免费学习.交流 –> 返回Netflix OSS套件专栏 ...
- (二十六)java版spring cloud+spring boot 社交电子商务平台-Eureka介绍
电子商务平台源码请加企鹅求求:一零三八七七四六二六.社交电商平台源码请加企鹅求求:一零三八七七四六二六. 什么是Eureka ? Eureka是一种用于服务注册和发现的组件,和zookeeper功能类 ...
- SpringCloud(三) Eureka注册中心介绍以及单机版搭建
一.Eureka 介绍 Spring Cloud Eureka 是 Spring Cloud Netfix微服务套件中的一部分,它基于 Netfix Eureka 做了二次封装,主要负责完成微服务架构 ...
- 【过程记录】springcloud配置使用Eureka作服务发现组件并进行微服务注册
Eureka介绍 工具准备 步骤 编写eureka server 编写微服务应用: 查询指定微服务在Eureka上的实例列表 Eureka的自我保护模式 Eureka介绍 Eureka是Netflix ...
- Spring Cloud 微服务实战系列-Eureka注册中心(一)
导语 在这一个系列的分享中,笔者主要是来分享在实战实际操作中的一些使用场景,了解了实战的操作中的使用场景才能更好的从实战中的问题出发找到自己需要的原理性的东西,找到原理性的东西之后才可以更好的根据 ...
- Spring Cloud 服务注册中心Eureka
Eureka介绍 在Spring Cloud Netflix 整合技术栈中,Eureka既可以作为服务注册中心也可以用于服务发现对整个微服务架构起着最核心的整合作用. Eureka是基于REST(Re ...
- 服务注册中心:Eureka
目录 第一章 注册中心介绍 1.1.什么是注册中心 1.2.为啥用注册中心 1.3.常见的注册中心 第二章 Eureka介绍 2.1.Eureka的介绍 2.2.Eureka的三种角色 2.3.Eur ...
- Eureka实战(最通俗易懂)
7.Eureka学习 7.1 Eureka介绍 7.1.1认识Eureka 首先我们来解决第一问题,服务的管理. 问题分析 : 在刚才的案例中,provider对外提供服务,需要对外暴露自己的地址.而 ...
最新文章
- Facebook万字长文:AI模型全部迁移至PyTorch框架
- 4.4.6 数组也能无锁:AtomicIntegerArray
- 再现神人!仅仅只花4天半就解开了史上最难密码,这下整个圈子都炸开了.........
- 修车工在生命最后,才知道自己的儿子是如今世界首富!
- 【ZJOI2015】幻想乡战略游戏【点分树】【带权重心】
- 文档对象模型dom_什么是文档对象模型,以及为什么应该知道如何使用它。
- 大白话Pyramid Vision Transformer
- 阅读类app界面设计UI可临摹素材模板
- 计算机二级office试题27答案,2017年12月计算机二级MS Office习题答案(一)
- python 文本框内容变化_当文本框中的文本发生变化时,动态读取文本输入中的文本?...
- iOS下微信语音播放之切换听筒和扬声器的方法解决方案
- LTE下行物理层传输机制(6)-下行资源分配方式(Resource Allocation Type)
- 浏览器有网微信没网络连接服务器,电脑可以登陆微信但是浏览器无法联网是怎么回事儿...
- Go入门-Go语言环境安装与GoLand第一个项目创建
- 小程序与php 实现微信支付
- 二次型化标准形的三种方法
- c语言如何消除回车字符的影响,c语言中消除回车键影响.doc
- NGS 数据过滤之 Trimmomatic
- 《那些年啊,那些事——一个程序员的奋斗史》——103
- 流体控制阀的原理和分类
热门文章
- 【WLAN】【基础知识】WIFI那些事儿之信道和频谱(涵盖2.4G、5G、6G,全网最全)
- win10服务器未能登录怎么办,win10系统开机提示Group policy Client服务未能登陆的解决技巧...
- ios13快捷指令怎么设置
- (三)Alian 的 Spring Cloud Eureka Server(服务注册中心)
- 排序不等式 AcWing 913. 排队打水
- 2019年南京大学计算机开放日(外地学校)
- 每日英语!(2021-3-1)
- ttl计算机,如何利用生存时间值(TTL)来判断操作系统
- 世界级标杆项目!联合利华全国首个全品类生产和营销基地落户广州;菲仕兰中国首家体验店在上海黄浦正式启用 | 美通社头条...
- 锤子科技正式开源两项核心交互功能