微服架构为什么需要注册中心,它解决了什么问题?

为什么要用?
管理服务以及服务之间的依赖关系。
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注销服务?

  1. 启用shutdown(若有需要可以禁用密码验证)

    endpoints.shutdown.enabled=true
    ##禁用密码验证
    endpoints.shutdown.sensitive=false
    
  2. 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相关推荐

  1. 微服务架构-服务注册中心和服务网关(6.8) (转载)

    原文链接:微服务架构-服务注册中心和服务网关(6.8) 这篇文章还是基于SpringCloud开源框架体系来谈下对Eureka服务注册中心和Zuul服务网关在使用上的一些理解和说明.在使用微服务架构进 ...

  2. SpringCloud系列(一)、服务注册中心Eureka基础

    启动Eureka服务注册中心 1.微服务的注册中心 1.1.注册中心的主要作用 1.2.常见的注册中心 1.3.常见注册中心的异同点 2.Eureka概述 2.1.Eureka的基础知识 2.2.Eu ...

  3. SpringCloud | 第二章: 注册中心 Eureka

    前言 前一章节 初识SpringCloud 简单介绍了什么是SpringCloud,以及微服务的架构,这一章节则来说说SpringCloud的基石,注册中心Eureka. 背景介绍 Eureka是Ne ...

  4. SpringCloud简介及注册中心Eureka

    一.SpringCloud简介 1.简介 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基 础设施的开发,如服务发现注册.配置中心.消息 ...

  5. SpringCloud系列之服务注册中心(Eureka)

    文章目录 0.前言 1.搭建第一个Eureka服务 ①.简介 ②.组成 ③.创建Eureka Server模块 ④.编写POM ⑤.YML ⑥.主启动 ⑦.测试 2.注册服务 ①服务提供者 Ⅰ.添加依 ...

  6. eureka java_SpringCloud注册中心Eureka

    本篇概论 在上一篇中我们介绍了微服务相关的内容.微服务的本质就是让服务与服务之间进行互相调用.那么在调用之前需要有一个前提.就是不同的服务与服务之间怎么知道彼此的存在的呢?因为服务都是独立部署的,根本 ...

  7. JAVA Spring Cloud 注册中心 Eureka 相关配置

    转载至  https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置       1.RegistryFetchIntervalSecon ...

  8. springCloud的注册中心Eureka和Zookeper的区别

    1.Eureka 简介: Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分 ...

  9. 【SpringCloud从0到6】 第二节:注册中心 - eureka

    从本节开始 , 我们就正式开始编写一个cloud基础微服务了 , 为了代码更简洁及更方便入门 , 在此采用了maven子模块的结构 . 1 . 创建maven主模块 , 配置cloud相关参数 pom ...

最新文章

  1. 拼多多成立技术顾问委员会,陆奇将领导相关工作
  2. Java 反射修改类的常量值、静态变量值、属性值
  3. 关于matlab的单精度与双精度
  4. 10 大常用软件架构模式简介
  5. 【Visual C++】游戏开发笔记之五——游戏画面绘图(二)绘制位图
  6. 入门到精通!珍藏资源!VAE变分自编码器
  7. 多节点什么网络取得技术性突破_一对一直播源码构架的技术性要求以及一对一直播火爆的原因...
  8. 12月21诛仙服务器维护,12月31日全服停机更新维护公告
  9. Matlab中axis函数使用
  10. iOS系统自带指纹验证的使用
  11. can总线rollingcounter_CAN总线笔记
  12. OpenFOAM多孔介质模型_DarcyForchheimer
  13. python上市公司有哪些_python调用tushare获取A股上市公司基础信息
  14. 海南大学计算机学硕直博,24所不歧视本科出身的大学,没有“骚操作”,良心啊...
  15. 高德地图定位、画线 基础功能
  16. 自适应网页设计(Responsive Web Design)别名(响应式web设计、响应式布局)
  17. 根据具体日期计算是一年的第几周和当月的第几周
  18. STM32F1模拟iic的GPIO配置(小总结)
  19. 父亲儿子计算机语言的书,关于父亲的作文500字5篇
  20. 神码ai人工智能写作机器人_人工智能和机器学习可以改善营销的6种方式

热门文章

  1. ug怎么画曲线_120种UG表达式曲线画法
  2. 支付市场大变局:流量见顶与线下狂飙 拉卡拉迎新机遇
  3. 2017下半年软件测评师上午考试试题
  4. 开游戏服务器要选择什么样的?
  5. 【CSS3】 CSS3实现“图片阴影”效果
  6. ls200_铁三角 LS200 双动铁入耳式耳机 个人客观听感(附IM02听感对比)
  7. 120帧手机动态壁纸_星空陨石动态壁纸手机版下载-星空陨石动态壁纸app安卓版下载v1.7最新版...
  8. win10电脑如何下载安装.net Framework 3.5 sp1多台电脑亲测有效
  9. Learn English with M / 学习英语的十句经典名言
  10. ym——android源代码大放送(实战开发必备)