Srpingcloud之eureka,微服架构之注册中心eureka
微服架构为什么需要注册中心,它解决了什么问题?
为什么要用?
管理服务以及服务之间的依赖关系。
eureka:微服服务注册与发现,负载均衡,故障转移的能力。
类似服务:zookeeper+dubbo
高可用的eureka
3种角色:
EurekaServer注册发现;
EurekaProvider服务提供方,需要注册到EurekaServer; EurekaConsumer服务消费者,从EurekaServer得到注册列表,消费服务;
建设集群版的注册中心eureka
开启注册中心注解:@EnableEurekaServer
配置文件:application.properties或application*****.properties
基础配置
##单机情况下配置demo
server.port=端口
spring.application.name=注册中心服务名称
#单机情况下报错,缺乏注册服务,需添加以下配置
#不注册为eurekaserver,默认注册
eureka.client.regiesterWithEureak=false
#是否从eureka-server获取注册信息,默认获取
eureka.client.fetchRegisty=false
#集群配置
##注意hostname这里配置的是serverName实例名称,即系统host配置ip指向
##例如:
##109.254.3.151 eureka1 ##109.254.3.152 eureka2##eureka1 的配置
server.port=port端口
spring.application.name=注册中心服务名称
eureka.instance.hostname=serverName实例名称(eureka1)
#设置服务注册中心地址,指向其他注册中心
eureka.client.serviceUrl.defaultZone=http://eureka2:port/eureka/##eureka2 的配置
server.port=port端口
spring.application.name=注册中心服务名称
eureka.instance.hostname=serverName实例名称(eureka2)
#设置服务注册中心地址,指向其他注册中心
eureka.client.serviceUrl.defaultZone=http://eureka1:port/eureka/
启动,多环境变量配置
-Dspring.profile.active=serverName实例名称
pom依赖:spring-boot-start-web
在eureka,构建provider服务 & 构建consumer服务
开启客户端注解:@EnableEurekaClient
扩展:@EnableDiscoveryClient
DiscoverClient可以集成大部分注册中心,@EnableEurekaClient 只对Eureka使用
配置application.properties:
#向EurekaServer注册中心注册地址,多个时,逗号分隔
server.port=端口
spring.application.name=注册中心服务名称
eureka.client.serviceUrl.defaultZone=http://eureka2:port/eureka/,http://eureka1:port/eureka/
深入剖析eureka
注册中心eureka的架构原理
TODO 架构图
1、register(服务注册):把ip和port注册给eurekaserver;
2、renew(服务续约):发送心跳,30秒发送一次;
3、eviction(剔除):超过90秒,eurekaserver任务服务挂了,从注册表剔除;
4、cancel(服务下线):provider停止服务,调用eurekaserver把自己从注册表中剔除;
5、getRegisty(获取注册表);
6、replace(复制):eureka集群间的数据同步和复制;
基于分布式CAP定理,分析注册中心2大主流框架
分布式系统理论;
C:数据一致性,原子性,系统再执行一项操作后处于一致状态;
A:服务可用性,每一次操作总是能够再一定时间内返回结果;
P:分区容错性,分布式集群,数据被存储在不同的服务器上,无论什么情况,服务器都能正常访问;
定律:在分布式系统里面只能同时命中2个。
CA放弃P:如果要避免分区容错性问题的发生,一种做法是将所有的数据(与事物相关的)都放在一台机器上。虽然无法100%保证系统不会出错,但不会碰到由分区带来的负面效果。当然这个选择会严重影响到系统的扩展性。
CP放弃A:一旦分区容错故障,那么受影响的服务需要等待一定时间,因此在等待期间系统无法对外提供服务。
AP放弃C:放弃数据一致性,并不是放弃数据的强一致性,而保留数据最终一致性。(以网络购物为例,对只剩一件库存的商品,如果同时接受到两份订单,那么较晚的订单将被告知商品售完。)
eureka与zookeeper区别?
zookeeper:CP,支持dubbo集成,支持springcloud集成,支持kv存储服务,提供客户端,watch支持(通过订阅监听来实现),无集群监控。
eureka:AP, 支持springcloud集成,http多语言,watch支持(通过轮询的方式来实现),metrics集群监控(运维可以搜索并报警这些信息达到监控目的)
停服
Eureka自我保护?为什么要启动自我保护?
一般情况下,微服务在eureka上注册后,会间隔30秒定期发送心跳,注册中心通过心跳判断微服务是否健康,同时会删除超过90秒没有发送心跳的服务。
导致Eurekaserver收不到微服的心跳原因:
1、微服自身原因,比如故障或者停服。(个别服务故障)
2、微服务与eurekaserver之间的网络故障。(大量服务短时间内故障)
为了区分以上2种情况,eureka设置了一个阀值,当判断挂掉的服务数量超过阀值时,Eurekaserver认为很大程度上出现了网络故障,将不再删除心跳过期的服务。
默认15分钟内微服是否低于85%,若低于,则开启自我保护模式。(红色EMERGENCY!)
当然这些时可以配置的:
#配置是否开启自我保护eureka.server.enableSelfPreservation=false;#清理间隔,单位毫秒,默认60*1000eureka.server.eviction-inerval-timer-in-ms=60000
如何优雅停止服务,并快速安全的让eureka注销服务?
启用shutdown(若有需要可以禁用密码验证)
endpoints.shutdown.enabled=true ##禁用密码验证 endpoints.shutdown.sensitive=false
springcloud支持http://server:port/shutdown
如何加强eureka注册中心的安全认证?
加锁,即安全验证。
步骤一:加依赖,spring-boot-start-security
步骤二:配置文件添加用户名密码:
#开启基于httpbasic的安全验证
security.basic.enabled=true
security.user.name=用户名
security.user.password=密码
添加安全验证后注册中心的服务配置:
http://user:password@IP:port/eureka/
Srpingcloud之eureka,微服架构之注册中心eureka相关推荐
- 微服务架构-服务注册中心和服务网关(6.8) (转载)
原文链接:微服务架构-服务注册中心和服务网关(6.8) 这篇文章还是基于SpringCloud开源框架体系来谈下对Eureka服务注册中心和Zuul服务网关在使用上的一些理解和说明.在使用微服务架构进 ...
- SpringCloud系列(一)、服务注册中心Eureka基础
启动Eureka服务注册中心 1.微服务的注册中心 1.1.注册中心的主要作用 1.2.常见的注册中心 1.3.常见注册中心的异同点 2.Eureka概述 2.1.Eureka的基础知识 2.2.Eu ...
- SpringCloud | 第二章: 注册中心 Eureka
前言 前一章节 初识SpringCloud 简单介绍了什么是SpringCloud,以及微服务的架构,这一章节则来说说SpringCloud的基石,注册中心Eureka. 背景介绍 Eureka是Ne ...
- SpringCloud简介及注册中心Eureka
一.SpringCloud简介 1.简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基 础设施的开发,如服务发现注册.配置中心.消息 ...
- SpringCloud系列之服务注册中心(Eureka)
文章目录 0.前言 1.搭建第一个Eureka服务 ①.简介 ②.组成 ③.创建Eureka Server模块 ④.编写POM ⑤.YML ⑥.主启动 ⑦.测试 2.注册服务 ①服务提供者 Ⅰ.添加依 ...
- eureka java_SpringCloud注册中心Eureka
本篇概论 在上一篇中我们介绍了微服务相关的内容.微服务的本质就是让服务与服务之间进行互相调用.那么在调用之前需要有一个前提.就是不同的服务与服务之间怎么知道彼此的存在的呢?因为服务都是独立部署的,根本 ...
- JAVA Spring Cloud 注册中心 Eureka 相关配置
转载至 https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置 1.RegistryFetchIntervalSecon ...
- springCloud的注册中心Eureka和Zookeper的区别
1.Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分 ...
- 【SpringCloud从0到6】 第二节:注册中心 - eureka
从本节开始 , 我们就正式开始编写一个cloud基础微服务了 , 为了代码更简洁及更方便入门 , 在此采用了maven子模块的结构 . 1 . 创建maven主模块 , 配置cloud相关参数 pom ...
最新文章
- 拼多多成立技术顾问委员会,陆奇将领导相关工作
- Java 反射修改类的常量值、静态变量值、属性值
- 关于matlab的单精度与双精度
- 10 大常用软件架构模式简介
- 【Visual C++】游戏开发笔记之五——游戏画面绘图(二)绘制位图
- 入门到精通!珍藏资源!VAE变分自编码器
- 多节点什么网络取得技术性突破_一对一直播源码构架的技术性要求以及一对一直播火爆的原因...
- 12月21诛仙服务器维护,12月31日全服停机更新维护公告
- Matlab中axis函数使用
- iOS系统自带指纹验证的使用
- can总线rollingcounter_CAN总线笔记
- OpenFOAM多孔介质模型_DarcyForchheimer
- python上市公司有哪些_python调用tushare获取A股上市公司基础信息
- 海南大学计算机学硕直博,24所不歧视本科出身的大学,没有“骚操作”,良心啊...
- 高德地图定位、画线 基础功能
- 自适应网页设计(Responsive Web Design)别名(响应式web设计、响应式布局)
- 根据具体日期计算是一年的第几周和当月的第几周
- STM32F1模拟iic的GPIO配置(小总结)
- 父亲儿子计算机语言的书,关于父亲的作文500字5篇
- 神码ai人工智能写作机器人_人工智能和机器学习可以改善营销的6种方式
热门文章
- ug怎么画曲线_120种UG表达式曲线画法
- 支付市场大变局:流量见顶与线下狂飙 拉卡拉迎新机遇
- 2017下半年软件测评师上午考试试题
- 开游戏服务器要选择什么样的?
- 【CSS3】 CSS3实现“图片阴影”效果
- ls200_铁三角 LS200 双动铁入耳式耳机 个人客观听感(附IM02听感对比)
- 120帧手机动态壁纸_星空陨石动态壁纸手机版下载-星空陨石动态壁纸app安卓版下载v1.7最新版...
- win10电脑如何下载安装.net Framework 3.5 sp1多台电脑亲测有效
- Learn English with M / 学习英语的十句经典名言
- ym——android源代码大放送(实战开发必备)