eureka架构图原理
我们已经编写完了Consumer,并且在Consumer当中去调用了Provider,完成了服务与服务之间的一个通信,其实我们在做案例的时候,我们是一步一步的,大家回顾一下,是不是先去创建了一个Eureka Server,然后再去构建了一个Provider,然后去构建了一个Consumer,在Consumer当中,Provider完成信息的一个交互,那我们的顺序呢,主要是围绕哪块展开的呢,还记得我们有讲Eureka的时候,讲到Eureka的三种角色,Eureka注册中心的三种角色,我们一直是按照这三个角色的步骤去做的,第一个环境我们是先搭建了一个Eureka的集群,我们在集群当中,Service Provider,服务提供者的一个编写,然后我们又编写了一个Consumer,去完成了一个消费者的一个编写,最后在服务的消费者当中,调用了Provider,我们编码的顺序,其实我们讲解完毕以后,在注册中心当中,如何完成服务的发布和订阅,以及服务与服务之间如何通信的一个案例,我们来讲解注册中心的一个架构原理,先来看Eureka的架构图,这个图是从哪里找来的呢,是从eureka的官网上去找到的,可以看一下,我们可以从github上,在github上搜eureka,我们在这里可以看到有很多eureka关键字的,在这里我们看哪个呢,第一个不是,我们用的是这个Netflix/eurekahttps://github.com/Netflix/eureka不是netflix的产品吗,所以哦我们点Netflix/eureka,在这我们可以看到,这个列表就是eureka的一个更新列表,在这里我们可以看到这里是几天前完成的Latest commit 9d07ac4 19 days ago那么说明eureka的社区活跃度还是比较高的,然后在这里我们看有一个wikihttps://github.com/Netflix/eureka/wiki在Wiki里面,在这里有一个Eureka at a glance,Eureka的一个浏览,我们点他,在这里我么可以看到,他有一些介绍,比如什么是Eureka,在他的下面有一个Eureka的架构
这是Eureka的一个架构图,这是Eureka的一个架构图,我们看到Eureka架构图里面,表达的是对Eureka的一个介绍,那么首先在这个图当中呢,同样存在着三种角色,第一个就是Eureka Server,就是我们的注册中心,这个是我们的第一个角色,第二个角色是Application Server,其实Application Service是谁呢,是我们的Service Provider,就是服务的提供者,然后还有一个Application Client,这个Application Client是谁呢,是我们之前写过的Consumer,Service Consumer,或者消费者,我们现在把这三个角色搞清楚了,我们来看这个图,这个图是建立在集群基础之上的,集群一个节点,这是集群一个节点,说明我们当前注册中心当中,有三个集群节点,然后我们来看第一个,ApplicationServer,就是我们的Provider,我们这个服务要想发布出去,肯定要通过注册中心,那么他在发布当中呢,做了哪些事呢,来看这个箭头,第一个,Service Provider,必须向Eureka Server完成register的一个注册,那么这个Registration表示什么含义呢,就是服务的注册,其实所谓的服务注册,就是把自己的IP和端口注册给Eureka Server,这样的Server就知道你当前的基本信息,知道这些信息以后,就给其他消费者提供接口了消费了,所以他要进行一个注册,第二个,有一个renew,我们还是回到三个角色这里,我们这里有说明的,Eureka Server,通过Register,Get,Renew,等接口,提供服务的发现和注册,完成接口提供一些服务的注册与发现,所以我们现在再来看架构图,这里就是register和renew,还有get和register,然后再来看注册完毕以后,这个renew表示什么含义,在这个集群当中,他要知道你当前的服务,是不是还是存活的,他采用的是什么呢,采用的是一个发心跳包的方式,也就是说,我们的服务提供者,provider,一旦在eureka的注册中心注册了,那么他会每隔30秒发送一个心跳包,告诉自己还活着,所以renew就是一个发心跳包的,那么如果eureka在90秒以后,没有搜到Provider收到的心跳包,他就认为你已经死亡掉了,他会把他的服务从列表当中剔除掉,这样的一个过程,然后咱们再往下看,下面还有一个cancel,这个Cancel表示什么意思呢,是服务下线,这个服务下线,注意看这个箭头,是我们的Provider向注册中心发送的,什么意思呢,当Provider关闭时,会向Eureka发送消息,把自己从服务列表中删除,防止consumer调用到不存在的服务,这是什么意思呢,大家注意看,回到我们之前的代码当中,我们现在把consumer和provider都停了,然后我们到eureka的管理平台下刷新,我们的服务是不是还存在,那么存在的原因是什么,刚才我们在这是直接就关掉了,但是我们现在只是把服务给停掉了,并没有优雅关机,并没有这样的一个操作,那么这个时候,其实,Eureka Server会将服务做一个保护,我们看到的就是服务保护,对于服务保护的服务,他是并不会把这个服务删除掉的,所以即便我们是把服务停掉了,对于这个eureka来讲,在这儿他仍然是存在着的,他对这个服务是起到保护的作用,那么我们怎么让他把已关掉的服务关掉呢,这个就涉及到服务优雅关机的问题,就是我们以后要讲的,所以Cancel就是当你的服务关闭时,向Eureka关闭信息,直接把Provider结束掉了,发送Cancel的消息,在Eureka服务当中,他仍然是还有这个服务的信息,然后再往下看,下面还有一个Get Registry,Get Registry是什么含义呢,获取服务的注册列表,我们这些服务,就是我们的Provider当中,未来可能会与其他的服务是有通信的,所以他肯定要知道其他服务的信息,比如他的ID和端口,所以Get Registry是用户获取其他用户的信息的,然后再往下看,现在Provider和Eureka Server的关系,这几个箭头我们就讲完了,然后再来看,还有一个Replicate,这是一个双向的接口,那么这个Replicate是什么意思呢,集群中的一个数据同步,如果我是一个集群的注册中心,那么每个数据之间肯定是要做同步的,那么他就是通过Replicate做数据同步的,Eureka集群中的数据复制与同步,然后再往下看,有一个Make Remote,这个是远程调用,这个是Application Client了,这个是服务的消费者,是发起远程调用的,就是发起请求,调用,这个就是作为一个Eureka注册中心,注册消息,一个架构图,我们拿到官网提供的架构图,也根据他所提供的箭头,来表示每一个箭头是一个什么含义,按照JAVA图来看,这个项目图并不是很复杂的,我们只要搞清楚箭头是什么含义就可以了,那我们对于Eureka的架构图就到这儿
eureka架构图原理相关推荐
- 服务注册中心之Eureka简介及原理
服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究. 在讨论Eureka前我们先来了解下其与zookeeper的区别: 著名的CAP理论指出,一个 ...
- Tomcat架构与原理
Tomcat架构与原理 架构图 原理 ①.用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得. ②.Connector把该请求交给它所 ...
- 45 张图深度解析 Netty 架构与原理
作为一个学 Java 的,如果没有研究过 Netty,那么你对 Java 语言的使用和理解仅仅停留在表面水平,会点 SSH 写几个 MVC,访问数据库和缓存,这些只是初等 Java 程序员干的事.如果 ...
- 4、Eureka 源码解析 之 Eureka Client 启动原理分析
在前面的一篇文章 3.Eureka 源码解析 之 Eureka Server 启动原理分析当中我们分析了一下 Eureka Server 的启动.在集群环境下 Eureka Server 相互之前需要 ...
- Oracle架构实现原理、含五大进程解析(图文详解)
目录 目录 前言 Oracle RDBMS架构图 内存结构 系统全局区SGA 高速缓存缓冲区数据库缓冲区 日志缓冲区 共享池 其他结构 进程结构 用户连接进程 用户进程User Process Ser ...
- QQ视频直播架构及原理
作者:王宇(腾讯音视频高级架构师) 自我介绍下,毕业以来加入腾讯,一直从事客户端研发,身处互联网公司,踏着互联网的浪潮,一直在浪尖行走,从最早的PC QQ,到移动时代的手Q,再到腾讯物联的嵌入式,以及 ...
- 初步掌握HDFS的架构及原理
原文链接:http://www.cnblogs.com/codeOfLife/p/5375120.html 目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如 ...
- 如何画一张架构图(内含知识图谱)
简介:架构图是什么?为什么要画架构图?如何画好架构图?有哪些方法?本文从架构的定义说起,分享了阿里文娱高级技术专家箫逸关于画架构图多年的经验总结,并对抽象这一概念进行了深入地讨论.内容较长,同学们可收 ...
- Netty架构与原理详解
本文来详细说下netty架构设计与原理 文章目录 概述 Netty 基础 Netty 是什么 Netty 的应用场景 Java 中的网络 IO 模型 Java NIO API 简单回顾 缓冲区(Buf ...
最新文章
- tls 禁用重协商_TLS Https连接失败问题(协商失败)
- JoVE微生物组专刊征稿,写方法拍视频教程发SCI
- Jakarta EE:云原生Java的新平台
- Service的一些使用
- Linux 使用本地yum源及软件包管理
- 基于某网站的信息爬取与保存_指定跳转页
- 【转载 译自MarketWatch 】 华尔街疯人日记 (二十五)
- nginx 配置笔记
- 使用SAP WebIDE进行SAP Cloud Platform Business Application开发
- 织梦后台对应的php文件,织梦DedeCMS后台文件列表按文件名排序的方法
- [LeetCode] 234. Palindrome Linked List 回文链表
- CTFbugku--菜鸟初学
- python求数组标准差
- Html中解决点击 a 标签刷新的问题,实现点击时不刷新
- Prezi 7 大图形设计技巧,让视觉思维落地生根
- java+编辑距离自动机_编辑距离,重叠,组装算法和python程序.pptx
- oracle-jde操作界面,JDE项目系统基础培训.ppt
- 机械设计基础课程设计【1】
- 软件开发常见的开发方向
- Kalman Filter— Priori/Posteriori Error Covariance Matrix