Spring Cloud第一篇 Eureka简介及原理
Eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。目前Eureka 项目相当活跃,代码更新相当频繁,目前最新的版本是1.5.5。Eureka 2.0也在紧锣密鼓地开发中,2.0将会带来更强的功能和更好的扩展性,但是由于还没有Release,故而不作讨论。
本文讲解的Spring Cloud Camden SR1所使用的Eureka版本是1.4.11,还是比较新的。同时有了Eureka 1.x的基础,未来上手Eureka 2.x也会比较容易。
Eureka的Github:https://github.com/Netflix/Eureka
Region、Zone解析
Eureka的官方文档对regin、zone几乎没有提及,由于概念抽象,新手很难理解。因此,在分析Eureka原理之前,我们先来了解一下region、zone、Eureka集群三者的关系,如图4-2。
图4-2 region、zone、Eureka集群之间的关系
region和zone(或者Availability Zone)均是AWS的概念。在非AWS环境下,我们可以简单地将region理解为Eureka集群,zone理解成机房。这样图4-2就很好理解了——一个Eureka集群被部署在了zone1机房和zone2机房中。
对region和zone感兴趣的读者可前往http://blog.csdn.net/awschina/article/details/17639191 扩展阅读。Spring Cloud中默认的region是us-east-1
。
Eureka架构
图4.4 Eureka架构图
图4.4是来自Eureka官方的架构图,大致描述了Eureka集群的工作过程。图中包含的组件非常多,可能比较难以理解,我们用通俗易懂的语言解释一下:
- Application Service 相当于本书中的服务提供者,Application Client相当于本书中的服务消费者;
- Make Remote Call,可以简单理解为调用RESTful API;
- us-east-1c、us-east-1d等都是zone,它们都属于us-east-1这个region;
由图可知,Eureka包含两个组件:Eureka Server 和 Eureka Client,它们的作用如下:
- Eureka Client是一个Java客户端,用于简化与Eureka Server的交互;
- Eureka Server提供服务发现的能力,各个微服务启动时,会通过Eureka Client向Eureka Server进行注册自己的信息(例如网络信息),Eureka Server会存储该服务的信息;
- 微服务启动后,会周期性地向Eureka Server发送心跳(默认周期为30秒)以续约自己的信息。如果Eureka Server在一定时间内没有接收到某个微服务节点的心跳,Eureka Server将会注销该微服务节点(默认90秒);
- 每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复制的方式完成服务注册表的同步;
- Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。
综上,Eureka通过心跳检测、健康检查和客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。
本文链接: http://www.itmuch.com/spring-cloud-1/
**版权声明: **本博客由周立创作,采用 CC BY 3.0 CN 许可协议。可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Moby project 简介
本文讲的是Moby project 简介【编者的话】Moby 简介 https://mobyproject.org/ Moby Moby 是由Docker创建的一个开源框架,用于组装专门的容器系统,而无需重新设计轮子。它提供了几十个标准组件,并将它们组装成定制平台的框架。 概述 Moby 的核心是组装专门的容器系统的框架。它提供了: 容器系统所有重要方面的容器化组件库:操作系统,容器运行时,编排工具,基础架构管理,网络,存储,安全,构建,镜像分发等等。 为各种平台以及架构组装组件到可运行构件中的工具: 如裸机(x86和arm)、Linux,Mac和Windows的可执行文件 以及 很受欢迎的云服务和虚拟化提供商的VM镜像。 一组参考组件,可以直接使用、修改或作为创造自己组件的灵感。 所有Moby组件都是容器,因此创建新组件与构建一个新的OCI兼容的容器一样简单。 更多信息 原则 Moby 是一个原则性很强的开源项目,但是对模块化、弹性化以及用户体验并没有太强烈的意见,因此向社区开放来来帮助确定方向。 以下是指导原则: 组件可切换:Moby包括足够的组件来构建功能齐全的容器系统,但其模块...
- 下一篇
容器存储架构比较:Kubernetes、Docker和Mesos Compare
本文讲的是容器存储架构比较:Kubernetes、Docker和Mesos Compare【编者的话】 容器存储是容器离不开的一个话题,对于无状态的Docker容器,容器重启时容器数据会自动清除,一些静态的数据我们可以通过配置文件或者在容器build时直接写死。但是对于数据库、日志文件等可以实时变化的数据,我们不能够通过这种方法存取。结合场景这次主要谈下Docker的存储方式,以及主要存储方式的对比。 【3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站】本次培训围绕基于Docker的CI/CD实战展开,具体内容包括:持续集成与持续交付(CI/CD)概览;持续集成系统介绍;客户端与服务端的 CI/CD 实践;开发流程中引入 CI、CD;Gitlab 和 CI、CD 工具;Gitlab CI、Drone 的使用以及实践经验分享等。 “There is no such thing as a stateless architecture” —— Jonas Boner 任何应用程序都需要数据支撑,这也是我们商业存在基石。最初,容器应运而生的主要目的之一也是为了解决无状态服务。但短...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装Docker,最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19