我们已经编写完了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架构图原理相关推荐

  1. 服务注册中心之Eureka简介及原理

    服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究.     在讨论Eureka前我们先来了解下其与zookeeper的区别: 著名的CAP理论指出,一个 ...

  2. Tomcat架构与原理

    Tomcat架构与原理 架构图 原理 ①.用户点击网页内容,请求被发送到本机端口8080,被在那里监听的Coyote HTTP/1.1 Connector获得. ②.Connector把该请求交给它所 ...

  3. 45 张图深度解析 Netty 架构与原理

    作为一个学 Java 的,如果没有研究过 Netty,那么你对 Java 语言的使用和理解仅仅停留在表面水平,会点 SSH 写几个 MVC,访问数据库和缓存,这些只是初等 Java 程序员干的事.如果 ...

  4. 4、Eureka 源码解析 之 Eureka Client 启动原理分析

    在前面的一篇文章 3.Eureka 源码解析 之 Eureka Server 启动原理分析当中我们分析了一下 Eureka Server 的启动.在集群环境下 Eureka Server 相互之前需要 ...

  5. Oracle架构实现原理、含五大进程解析(图文详解)

    目录 目录 前言 Oracle RDBMS架构图 内存结构 系统全局区SGA 高速缓存缓冲区数据库缓冲区 日志缓冲区 共享池 其他结构 进程结构 用户连接进程 用户进程User Process Ser ...

  6. QQ视频直播架构及原理

    作者:王宇(腾讯音视频高级架构师) 自我介绍下,毕业以来加入腾讯,一直从事客户端研发,身处互联网公司,踏着互联网的浪潮,一直在浪尖行走,从最早的PC QQ,到移动时代的手Q,再到腾讯物联的嵌入式,以及 ...

  7. 初步掌握HDFS的架构及原理

    原文链接:http://www.cnblogs.com/codeOfLife/p/5375120.html 目录 HDFS 是做什么的 HDFS 从何而来 为什么选择 HDFS 存储数据 HDFS 如 ...

  8. 如何画一张架构图(内含知识图谱)

    简介:架构图是什么?为什么要画架构图?如何画好架构图?有哪些方法?本文从架构的定义说起,分享了阿里文娱高级技术专家箫逸关于画架构图多年的经验总结,并对抽象这一概念进行了深入地讨论.内容较长,同学们可收 ...

  9. Netty架构与原理详解

    本文来详细说下netty架构设计与原理 文章目录 概述 Netty 基础 Netty 是什么 Netty 的应用场景 Java 中的网络 IO 模型 Java NIO API 简单回顾 缓冲区(Buf ...

最新文章

  1. tls 禁用重协商_TLS Https连接失败问题(协商失败)
  2. JoVE微生物组专刊征稿,写方法拍视频教程发SCI
  3. Jakarta EE:云原生Java的新平台
  4. Service的一些使用
  5. Linux 使用本地yum源及软件包管理
  6. 基于某网站的信息爬取与保存_指定跳转页
  7. 【转载 译自MarketWatch 】 华尔街疯人日记 (二十五)
  8. nginx 配置笔记
  9. 使用SAP WebIDE进行SAP Cloud Platform Business Application开发
  10. 织梦后台对应的php文件,织梦DedeCMS后台文件列表按文件名排序的方法
  11. [LeetCode] 234. Palindrome Linked List 回文链表
  12. CTFbugku--菜鸟初学
  13. python求数组标准差
  14. Html中解决点击 a 标签刷新的问题,实现点击时不刷新
  15. Prezi 7 大图形设计技巧,让视觉思维落地生根
  16. java+编辑距离自动机_编辑距离,重叠,组装算法和python程序.pptx
  17. oracle-jde操作界面,JDE项目系统基础培训.ppt
  18. 机械设计基础课程设计【1】
  19. 软件开发常见的开发方向
  20. Kalman Filter— Priori/Posteriori Error Covariance Matrix

热门文章

  1. Linux_磁盘管理
  2. 2440按键中断编程
  3. 数字图像处理之边缘检测,图像分割
  4. 数字图像处理之频率域图像增强
  5. 将switch case转为条件驱动
  6. 微软腾讯联手开发IM软件MQ QQ和MSN将于2009年停用
  7. 使用HttpMessageConverter实现HTTP的序列化和反序列化
  8. UI2Code智能生成Flutter代码--整体设计篇
  9. git 码云使用教程
  10. 安装CentOS 7 遇到的坑