Eureka(一)术语详解(用具体的事物理解抽象的概念)
最近工作较闲,所以自己研究了下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(一)术语详解(用具体的事物理解抽象的概念)的更多相关文章
- RocketMQ——角色与术语详解
原文地址:http://jaskey.github.io/blog/2016/12/15/rocketmq-concept/ RocketMQ——角色与术语详解 2016-12-15 THU 15:4 ...
- Spring框架学习05——AOP相关术语详解
1.Spring AOP 的基本概述 AOP(Aspect Oriented Programing)面向切面编程,AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视.事务管理.安全检查 ...
- Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧
Zynq7000术语详解,不懂啥是PL,PS,APU,SCU?那就进来看看吧 相信大家刚看到Zynq手册的时候,对着那么一大堆缩略语肯定是一头雾水,特转来一篇文章,为大家解惑 摘要:本文介绍与 ...
- SpringCloud Eureka参数配置项详解
SpringCloud Eureka参数配置项详解(转) Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下 ...
- Mysql加锁过程详解(7)-初步理解MySQL的gap锁
Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...
- 【Android面试查漏补缺】之Handler详解,带你全面理解Handler消息机制
在安卓面试中,关于 Handler 的问题是必备的,但是这些关于 Handler 的知识点你都知道吗? 一.题目层次 Handler 的基本原理 子线程中怎么使用 Handler MessageQue ...
- Spring Cloud Eureka 常用配置详解,建议收藏!
前几天,栈长分享了 <Spring Cloud Eureka 注册中心集群搭建,Greenwich 最新版!>,今天来分享下 Spring Cloud Eureka 常用的一些参数配置及说 ...
- 微服务架构:Eureka参数配置项详解
版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能 ...
- SpringCloud Eureka参数配置项详解(转)
Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...
随机推荐
- mysql协议分析2---认证包
主人看到navicat和mysql在那嘻嘻哈哈,眉来眼去的,好不快乐,忽然也想自己写个程序,直接去访问Mysql,虽然现在已经有很多现成的中间件可以直接拿来用了,程序只要负责写sql语句就行了,但是主 ...
- Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建
前言 前面铺垫了这么久,终于要开始写热更新了. Unity游戏热更新包含两个方面,一个是资源的更新,一个是脚本的更新. 资源更新是Unity本来就支持的,在各大平台也都能用.而脚本的热更新在iOS平台 ...
- Jmeter脚本录制--HTTP代理服务器
Jmeter脚本录制功能依赖第三方工具Badboy,所以在安装了Jmeter之后,还需要再安装一个工具. Badboy本身自带浏览器,相关操作只能在Badboy上进行操作,偶尔可能会遇到浏览器兼容的问 ...
- 14. 流、文件和IO
前言 InputStream/OutStream流用来处理设备之间的数据传输 Java.io 包几乎包含了所有操作输入.输出需要的类.所有这些流类代表了输入源和输出目标. Java.io 包中的流支持 ...
- 二进制文件安装安装flannel
二进制文件安装安装flannel overlay网络简介 覆盖网络就是应用层网络,它是面向应用层的,不考虑或很少考虑网络层,物理层的问题. 详细说来,覆盖网络是指建立在另一个网络上的网络.该网络中的结 ...
- docker挂载volume的用户权限问题,理解docker容器的uid
docker挂载volume的用户权限问题,理解docker容器的uid 在刚开始使用docker volume挂载数据卷的时候,经常出现没有权限的问题. 这里通过遇到的问题来理解docker容器用户 ...
- 【转载】C/C++中long long与__int64的区别
在C99标准(详情请猛击:C语言的发展及其版本)中,增加了对64位长整型数据的支持,它的类型就是 long long,占用8个字节. 由于C99标准发布较晚,一些较老的C/C++编译器不支持,新编译器 ...
- 我与微笑哥以及 Java 极客技术的前世今生
关注公众号,大家可以在公众号后台回复“博客园”,免费获得作者 Java 知识体系/面试必看资料. Hello,大家好,我是子悠,Java 极客技术团队的作者之一,本周是六月的第三周,将由我给大家编辑 ...
- Linux常用的命令及使用方法
1.请用命令查出ifconfig命令程序的绝对路径 [root@localhost ~]# which ifconfig(ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令) / ...
- go 学习之路(三)
一.strings和strconv使用 1.strings.HasPrefix(s string,prefix string) bool :判断字符串s是否以prefix开头 2.stings.Has ...