最近工作较闲,所以自己研究了下eureka的原理,实现,和集群搭建等。(注:我没实操过eureka集群项目,都是自己做的demo产生的结论,如果有错误欢迎指出)

首先说一下我对eureka的一些术语的简单易懂的理解(因为我个人习惯问题,喜欢把抽象的事物用生活中的角色来理解,所以会大量比喻):

Eureka角色

服务端:即服务注册中心。——我是用生活中的淘宝来理解它的

客户端:客户端向服务注册中心注册自身提供的服务,并周期性的发送心跳来更新它的服务租约。 ——这个我理解为淘宝中的店铺。这里所说的客户端只是一个对于eureka的角色,千万别单纯的理解为客户那端。其实换个角度思考,在相对于服务的使用者来说,客户端还是服务的角色呢。

术语理解

服务注册中心:我觉得这个概念还是应该拿出来单独聊一聊。什么是服务注册中心?就是一个中间平台。还是拿淘宝比喻,你说淘宝自己生产商品么(别跟我抬杠说自产啊)?淘宝买商家的商品么?都不,而是只提供一个平台让买家卖家可以通过它达成交易。服务注册中心就是一个这样的角色,然后他需要提供的功能也和淘宝差不多1,保证商家可靠。2,有新注入的商家让所有人能看到。3,商家不干了关门了你得及时给删除了。4,买家卖家得能联系。所以这也对应着eureka的功能术语。

服务注册:在eureka中的服务注册就是客户端注册到服务端(也就是服务注册中心)的url。我们可以理解为一家商铺注册到淘宝中。

服务发现:服务调用的时候向服务端发送请求,然后服务端找出对应的服务。你去淘宝买东西是不是要先搜索你要买啥?然后淘宝给你找出对应的卖家是吧。这里的服务发现就是这个道理。

负载均衡:这个概念从名字上看就可以理解。压力平均分嘛!还是淘宝比喻,全国那么多买家,如果一样东西只有一个卖家。那么卖家忙不过来怎么办?你买个东西过了一年发货,你能受得了么?所以对于确实买家很多的商铺,就得多设卖家。只不过不同点是淘宝上的店铺是买家自己选择的。而注册中心的不同实例是由注册中心自带的算法分配你去访问哪一个的。

服务续约:服务提供者通过http向注册中心发送心跳,让服务注册中心知道自己还活着。这个更好理解了。假如(我不是卖家我不知道,这里比喻)淘宝商家要每个月向淘宝交下个月的平台费。你这个月没交,可能就是下个月不想继续干了。这个时候淘宝就有个心理准备了。这里有个重要点,不是你今天没交钱明天淘宝就给你下线。而是有个时间的。起码这个月得过完对吧?所以续约这个也是,不是这次心跳没发送直接下了你。

失效剔除:Eureka Server在一定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。这个用我上面的方法理解。淘宝商家三个月都不交钱了。然后淘宝平台看你是真的不干了。万一还在列表里哪个买家下单了还不发货那用户体验不是不好了么。。得,给你从列表删除了。这个就是失效剔除。

自我保护:自我保护模式的架构哲学是宁可放过一个,决不可错杀一千。心跳失败比例在15分钟内,低于85%,则开始怀疑自己了,不剔除客户端了。这个其实也能理解。假如淘宝是每个月15号商家向平台汇下个月的款。如果是一个两个卖家没汇,淘宝平台寻思肯定是那两家不想干了。但是!!假如全部或者说百分之九十商家都没汇款~淘宝平台就得寻思咋回事?是不是我银行账户被封了?还是这个月跟他们说的账号说错了?之类的。。。然后开始调查自己的原因。这期间不删除商家。

注册中心本身可以做为客户端注册:这个不算是术语,但是因为今天看到群里有人提出这点并感到疑惑,所以我觉得也可以列出来说说。首先他是有这个功能,但是可以开启可以关闭的。并且这个是作为Eureka集群实现的一个重要基础。继续用我通俗易懂却不一定十分恰当的比喻:你看现在的淘宝,多方联合~~你想逛个咸鱼捡捡便宜,看个商品不错点进去一看,哎我去~~这个不是淘宝么?同理你在淘宝逛啊逛啊逛~~指不定哪个链接点击去就发现是咸鱼中的消息了~~什么原理?不就是淘宝咸鱼藕断丝连不清不楚互相注册了么?同理,两个eureka互相注册了也是这样,从用户的角度双倍商品双倍快乐~~虽然也是双倍花费~~从商家角度讲~~反正eureka只是一个中心又不是盈利机构!讲个什么讲,客户满意就好了啊~~~当然我还有一个浅显的理解~~这个只是做了个demo讲server端作为客户端的权限打开了~于是在注册的服务中发现了eureka-server这个服务~~所以我觉得~~是不是其实假如在eureka中写一些接口也是可以调用的?就好像京东是个平台,但是也有京东自营这个卖家?因为这个还没有实际尝试所以在此下个推测~~以后有机会试一下再来补充~~

然后如果有比较了解的亲们或者说我上述观点哪里有偏颇~~欢迎指出~~!!!

喏,手打不易,大家动动小手喜欢分享转发关注评论啥的~~~~

Eureka(一)术语详解(用具体的事物理解抽象的概念)的更多相关文章

  1. RocketMQ——角色与术语详解

    原文地址:http://jaskey.github.io/blog/2016/12/15/rocketmq-concept/ RocketMQ——角色与术语详解 2016-12-15 THU 15:4 ...

  2. Spring框架学习05——AOP相关术语详解

    1.Spring AOP 的基本概述 AOP(Aspect Oriented Programing)面向切面编程,AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视.事务管理.安全检查 ...

  3. Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧

    Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧     相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑 摘要:本文介绍与 ...

  4. SpringCloud Eureka参数配置项详解

    SpringCloud Eureka参数配置项详解(转) Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下 ...

  5. Mysql加锁过程详解(7)-初步理解MySQL的gap锁

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  6. 【Android面试查漏补缺】之Handler详解,带你全面理解Handler消息机制

    在安卓面试中,关于 Handler 的问题是必备的,但是这些关于 Handler 的知识点你都知道吗? 一.题目层次 Handler 的基本原理 子线程中怎么使用 Handler MessageQue ...

  7. Spring Cloud Eureka 常用配置详解,建议收藏!

    前几天,栈长分享了 <Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!>,今天来分享下 Spring Cloud Eureka 常用的一些参数配置及说 ...

  8. 微服务架构:Eureka参数配置项详解

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能 ...

  9. SpringCloud Eureka参数配置项详解(转)

    Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...

随机推荐

  1. Redis(四)--- Redis的命令参考

    1.简述 数据类型也称数据对象,包含字符串对象(string).列表对象(list).哈希对象(hash).集合对象(set).有序集合对象(zset). 2.String数据类型命令 string  ...

  2. Go语言圣经习题练习_1.6并发获取多个URL

    练习 1.10: 找一个数据量比较大的网站,用本小节中的程序调研网站的缓存策略,对每个URL执行两遍请求,查看两次时间是否有较大的差别,并且每次获取到的响应内容是否一致,修改本节中的程序,将响应结果输 ...

  3. JavaScript的面向对象原理之原型链

    二.JavaScript的对象 为了能够清楚的解释这一切,我先从对象讲起.从其他面向对象语言(如Java)而来的人可能认为在JS里的对象也是由类来实例化出来的,并且是由属性和方法组成的. 实际上在JS ...

  4. Hadoop自学系列集(一) ---- 使用VMware安装CentOS

     1.概述 笔者的学习环境--在VMware虚拟机下安装四个CentOS系统(搭建Hadoop集群用),其中一个为Master,三个为Slave,Master作为Hadoop集群中的NameNode, ...

  5. java连接mysql数据库jdbc

    jdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/数据库名jdbc.username = rootjd ...

  6. T-SQL 恢复数据库

    USE master GO ALTER DATABASE DEMO SET SINGLE_USER GO ALTER DATABASE DEMO SET EMERGENCY GO DBCC CHECK ...

  7. docker的基本安装和命令详解

    docker的安装 yum install docker-io docker的启动 /bin/systemctl start docker.service docker查找镜像 docker sear ...

  8. Python—三目运算

    Python 可通过 if 语句来实现三目运算的功能,因此可以近似地把这种 if 语句当成三目运算符.作为三目运算符的 if 语句的语法格式如下: (True_statements) if (expr ...

  9. Thinkphp5.0快速入门笔记(1)

    学习来源与说明 https://www.kancloud.cn/thinkphp/thinkphp5_quickstart 测试与部署均在windows10下进行学习. Composer安装和更新 C ...

  10. 今天代码中接触到了一个新的东西。js的上下自动滚动,无缝对接。

    js的上下自动滚动,无缝对接.为什么会用到这个东西呢?因为我在做公司的官网项目的修改的时候.有一个产品介绍的页面,会有很多的产品出现在,中间部分的列表里.但是又不能够使用分页.所以我就在想如果,列表数 ...