什么是服务治理?

springcloud封装了Netflix公司开发的Eureka模块来实现服务治理。

在传统的rpc远程调用框架中,管理每个服务于服务之间的依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务与服务之间得依赖管理,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。

什么是服务注册与发现?

Eureka采用C/S的设计架构,Eureka server 作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用Eureka Server并维持心跳连接,这样系统的维护人员通过Eureka Server来监控系统中各个微服务是否正常运行。

在服务注册与发现中,有一个注册中心,当服务器启动的时候,会把当前服务器的信息,比如:服务地址通讯地址等以别名方式注册到注册中心上,另一方(消费者服务提供者),以该别名的方式去注册中心上获取到时间的服务通讯地址,然后实现本地rpc远程调用框架核心设计思想;在于注册中心,因为使用注册中心管理每个服务与服务之间得一个依赖关系(服务治理概念),在任何rpc远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))

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

  • Eureka Server提供服务注册服务,各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观看到。
  • EurekaClient通过注册中心进行访问,是一个java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒),如果Eureka Server多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中吧这个服务节点移除(默认90秒)。
  • Eureka服务注册图:

服务注册:将服务信息注册进注册中心

服务发现:从注册中心上获取服务信息

实质:存key服务名,取value调用地址

复习一下

  1. 先启动eureka注册中心
  2. 启动服务提供者(比如支付服务)服务
  3. 支付服务启动后会把自身信息(比如服务地址以及别名)注册进eureka
  4. 消费者order服务在需要调用接口时,使用服务别名去注册中心获取实际的RPC远程调用地址
  5. 消费者获得调用地址后,底层实际是利用HttpClient技术实现远程调用
  6. 消费者获得服务地址后悔缓存在本地jvm内存中,默认每间隔30秒更新一次服务调用地址

问题:微服务RPC远程服务调用最核心的是什么?

答:高可用,试想你的注册中心只有一个only one,它出故障了怎么办,导致整个微服务环境不可以,所以需要搭建eureka注册中心集群,实现负载均衡+故障容错。

怎么做eureka集群呢,很简单,就是互相注册

提供者分布式以后需要用服务名调用,而不是端口调用,如图:

Eureka client配置:

server:port: 80
spring:application:name: cloud-order-servereureka:client:#表示是否将自己注册进EurekaServer默认为trueregister-with-eureka: truefetch-registry: trueservice-url:
#      defaultZone: http://localhost:7001/eurekadefaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka

Eureka server配置:

server:port: 7002eureka:instance:hostname: eureka7002 #eureka服务端的实例名称client:#false表示不向注册中心注册自己register-with-eureka: false#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务fetch-registry: falseservice-url:#设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址defaultZone: http://localhost:7001/eureka/

Eureka pom配置:

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

查看eureka遇到的问题:

配置如下:

什么是自我保护模式?

默认情况下,如果EurekaServer在一定时间内没有接受到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒)。但是当网络分区故障发生(延迟、卡顿、拥挤)时,微服务与EurekaServer之间无法正常通信,以上行为可能变得非常危险了——因为微服务本身其实是健康的,此时不应该注销这个微服务。Eureka通过“自我保护模式”来解决这个问题——当EurekaServer节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。

自我保护机制:eureka server 配置;

eureka:server:#关闭自我保护机制,保证不可用服务被及时剔除enable-self-preservation: falseeviction-interval-timer-in-ms: 2000 # 清理间隔(单位毫秒,默认是60*1000)

eureka client配置:

什么是Eureka?相关推荐

  1. 使用feign调用注解在eureka上的微服务,简单学会微服务

    使用feign调用注解在eureka上的微服务. 首先,确保所有服务(调用方与被调用方)都被注册在同一个eureka服务上. 1. 在调用方添加依赖(万事第一步,加依赖) <dependency ...

  2. 【微服务架构】SpringCloud之Eureka入门篇

    什么是Eureka 官方的介绍在这里Eureka wiki.Eureka是Netflix开源的一个RESTful服务,主要用于服务的注册发现.Eureka由两个组件组成:Eureka服务器和Eurek ...

  3. Eureka 注册中心/服务发现框架

    Eureka 注册中心/服务发现框架 Eureka注册中心/服务发现框架 如何使用构建 Eureka Server ? 加入依赖(此处以Maven为例) 创建Eureka Server 主运行类 单机 ...

  4. b2b2c源码 java_java B2B2C源码电子商务平台 ---搭建Eureka注册中心

    一 创建一个Spring Boot工程,命名为eureka-server,并在pom.xml中引入必要的依赖,代码如下.愿意了解源码的朋友直接求求交流分享技术:二一四七七七五六三三 org.sprin ...

  5. spring cloud微服务治理eureka、hystrix、zuul代码例子

    spring cloud微服务中台服务代码例子,包括eureka.hystrix.zuul https://github.com/birdstudiocn/spring-cloud-sample/tr ...

  6. eureka需要替换吗_iOS第三方库Eureka实现定制动画详解(二):万变不离其宗-Row组件...

    Eureka的核心就是Row,所以我们得重点聊聊它.Row是什么?其实上面已经说过了,不过这只是干巴巴的概念,下面本猫用一个实际的例子带大家性感,哦,不-是感性的认识一下到底什么是Row 新建一个iO ...

  7. Eureka单机高可用伪集群配置

    Eureka Server高可用集群 理论上来讲,因为服务消费者本地缓存了服务提供者的地址,即使Eureka Server宕机,也不会影响服务之间的调用,但是一旦新服务上线,已经缓存在本地的服务提供者 ...

  8. Eureka服务注册中心

    Eureka服务注册中心 最近在研究Spring Cloud,发现其中的组件实在是太多了,真的是头大,只能一块一块看,像盲人摸象一样.要想很短时间内掌握Spring Cloud是不可能的,小编就学习一 ...

  9. Spring Cloud应用开发(一:使用Eureka注册服务)

    1.搭建maven父工程: 注:在MyEclipse中,创建一个Maven父工程cloud,并在工程的pom.xml中添加Spring Cloud的版本依赖等信息. 2.搭建服务端工程. 注:在父工程 ...

  10. Spring Cloud(九)高可用的分布式配置中心 Spring Cloud Config 集成 Eureka 服务

    上一篇文章,讲了SpringCloudConfig 集成Git仓库,这一篇我们讲一下SpringCloudConfig 配和 Eureka 注册中心一起使用 在分布式系统中,由于服务数量巨多,为了方便 ...

最新文章

  1. SQL Server系统表sysobjects介绍与使用
  2. 解题报告:P3834 【模板】可持久化线段树 2(主席树)详解
  3. Keras【Deep Learning With Python】CNN卷积神经网络(看不懂你打我系列)
  4. DeeoID:Deep learning face representation from predicting 10,000 classes
  5. CVPR!你凭什么收录我3篇论文!?
  6. elk中kibana中如何显示写入elasticsearch的数据
  7. mysql 存储过程 查询结果 循环_在存储过程中从查询结果集中怎么循环
  8. IDE-Ecplise-代码注释 模版 编码规范 配色
  9. 把base64转为blob
  10. 《scikit-learn》随机森林之深入学习
  11. java.sql.exception_java.sql.SQLException: 违反协议
  12. java中fitlter,068.Python框架Django之DRF视图集使用
  13. spring aop 声明式事务管理
  14. Etcd服务发现原理
  15. 这里90%的程序员根本就不算程序员。
  16. idea调试代码步入用法
  17. html 块 隐藏 显示,bootstrap如何显示或隐藏内容?
  18. 软件质量(ISO/IEC 9126)的定义与特性
  19. html复习第六天 京东首页布局(导航栏/左侧)
  20. iphone个人热点无法开启_iPhone无法开启个人热点怎么回事 iPhone无法开启个人热点解决方法...

热门文章

  1. Occupancy Flow: 4D Reconstruction by Learning Particle Dynamics(1)
  2. pytorch断点续传
  3. win10安装跳过创建Microsoft账户
  4. HTML调用Java函数或语句,在动态THML语句中调用JS函数传递带空格参数的问题
  5. st58服务器装系统,联想 Thinksystem ST58服务器介绍
  6. 互联网开发搞手游创作1-为何有这想法
  7. 快速将非Word中的不可编辑的公式转换为Word文档中公式编辑器里可编辑的公式的办法
  8. 当ChatGpt接入微信群之后。。。
  9. python绘制直线的垂线_p countour中的Python垂直线
  10. adb 查看手机的ip地址