F版本SpringCloud 3—大白话Eureka服务注册与发现
引用:服务注册与发现,就像是租房子一样
前言
今天洛阳下雨了,唉,没有想到有裹上了羽绒服,不穿冷穿了热的尴尬温度。上学工作这么多年都在外面,家里竟然没有一件春天的外套。
日常闲聊之后,开始今天的芝士环节。
昨天说过了什么是SpringCloud,提到了SpringCloud实际上是很多技术的合集,今天就来学习第一个技术 Eureka。
大白话服务服务注册与发现
Eureka在微服务的体系中,主要的功能是实现服务治理,服务注册与发现的,那么什么是服务注册与发现呢?
在第一篇文章讲到过,微服务就是将项目中的模块按照业务来进行拆分,如上图,商品是一个独立的服务,订单也是独立的服务,还可以根据需要将订单服务部署为两个。然后商品服务需要使用订单的时候,就去调用订单服务。
但是在上图中有几个问题是需要解决的:
- 商品服务想要调用订单服务,怎么知道订单服务1 和 订单服务2的地址?如果临时增加一个订单服务3,那么怎么告诉商品服务订单服务3的地址?
- 如果订单服务1宕机了,这个时候商品服务如果不知道,依然选择调用已经宕机的订单服务1,会服务调用失败。也就是说:订单服务1宕机了,如何把这个情况即时的告诉其他所有的服务?
......
解决以上问题的方案就是:引入服务管理者,就是服务治理。
先举一个生活的小栗子:
- 在没有互联网的时代,如果要租房子需要找中介,中介就是一个服务管理者的角色
- 我们是租房者,要找房源,这个关系就像是商品服务找订单服务
- 那么房源怎么来呢?房东在需要出租房子的时候,去找中介,将自己的房源信息登记到中介那里。这个过程叫做注册。
- 我们要租房子,假如说要租两室一厅,首先需要先找中介要所有房源的注册清单,从清单中可以找到两室一厅。这个过程叫做发现。
这个例子可以帮助大家,理解注册和发现两个过程,以及管理者的角色。
通过以上例子我们得到下图:
服务治理的管理者我们称之为注册中心。
服务注册:每个服务在启动的时候,告诉注册中心自己的位置信息。
服务发现:商品服务想要调用订单服务,先找注册中心获取到所有服务的位置信息,然后找到订单服务的地址,发起调用。
心跳机制:服务启动之后,每过30秒向注册中心心跳一次(就是发送一个消息,告诉注册中心自己还活着),如果注册中心长时间没有收到某个服务的心跳,那么就会认为这个服务已经宕机,就从服务注册列表中删除。
什么是Eureka
Spring Cloud封装了Netlix 公司开发的Eureka模块来实现服务治理,管理服务于服务之间依赖关系,可以实现服务调用、负载均衡、容错等,实现服务发现与注册。
Eureka 组件
在Eureka的架构中,分为 Eureka Server 和 Eureka client。
Eureka 注册中心 Eureka Server
Eureka Server 作为服务注册功能的服务器,它是服务注册中心。
Eureka Server提供服务注册服务:各个节点启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到(监控页面)
而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。
Eureka 客户端 Eureka Client
EurekaClient是一个Java客户端,用于简化Eureka Server的交互,客户端同时也具备一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
- 在应用启动后,将会向Eureka Server发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)
- Eureka Client会缓存服务注册表中的信息。这种方式有一定的优势首先可以降低Eureka Server的压力,其次当所有的Eureka Server宕机服务调用方依然可以完成调用
总结
恭喜你完成了本章的学习,为你鼓掌!如果本文对你有帮助,请帮忙点赞,评论,转发,这对作者很重要,谢谢。
要掌握SpringCloud更多的用法,请持续关注本系列教程。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
03月27日云栖号头条:高德地图发布清明小长假出行指南
云栖号:https://yqh.aliyun.com第一手的上云资讯,不同行业精选的上云企业案例库,基于众多成功案例萃取而成的最佳实践,助力您上云决策! 今日最新云头条快讯: 近日,高德地图与中国天气网联合发布《2020年清明小长假出行防疫指南》指出,中国高速近期拥堵呈现上升趋势,中国高速拥堵里程占比自3月7日起,逐渐超去年同期,并在3月9日达高峰;据国家广电总局消息,3月19至20日,国家广电总局科技司以视频会议形式先后召开3场专家论证会,邀请邬贺铨、邬江兴2位院士,以及部分广播电视台、有线网络公司、高校、网络视听企业、设备厂商等技术专家,论证广电5G技术标准体系。 一起来看最新的资讯: 高德地图发布清明小长假出行指南:中国高速近期拥堵呈现上升趋势 近日,高德地图与中国天气网联合发布《2020年清明小长假出行防疫指南》。其中指出,中国高速近期拥堵呈现上升趋势,中国高速拥堵里程占比自3月7日起,逐渐超去年同期,并在3月9日(周一)达高峰。从高速车流量来看,2月10日到3月22日,全国高速流量逐渐上升,3月14日后,超过去年同期正常特征日均值,增幅在20%左右。高德地图驾车规划数据显示,...
- 下一篇
五分钟学Java:一篇文章带你搞懂spring全家桶套餐
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者。 本文思维导图 spring全家桶里都有哪些食物 上期我们讲了spring和springmvc两个框架的基础知识和学习路线,而这期内容,我们将围绕着spring全家桶展开来讨论。 大家应该都知道,按照出现的顺序,spring全家桶大概包含了spring、springmvc、springboot以及springcloud,从开胃小菜spring到满汉全席springcloud,spring全家桶可谓Java工程师的必备大餐,那么,我们不妨先来看看,spring全家桶是如何从光杆司令spring发展到如今的庞大家族的。 目前,Spring生态中包含22个主要活跃的项目。 你会发现,这些项目几乎涵盖了日常开发所有的场景,只不过你不一定会用到而已,除了spring和springmvc,springcloud和springboot之外,还有很多开源的spring生态项目持续在spring社区维护,比如springdata,用于解决spring中的统一数据方案,spring integration,顾名思义,适用于集成外部服务。 还有...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- 设置Eclipse缩进为4个空格,增强代码规范
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能