保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

ZooKeeperEurekaConsulNacos,微服务

  前言CAP理论服务注册中心解决方案主流注册中心产品ApacheZookeeperCPSpringCloudEurekaAPConsulNacos前言
  服务注册中心本质上是为了解耦服务提供者和服务消费者。对于任何一个微服务,原则上都应存在或者支持多个提供者,这是由微服务的分布式属性决定的。更进一步,为了支持弹性扩缩容特性,一个微服务的提供者的数量和分布往往是动态变化的,也是无法预先确定的。因此,原本在单体应用阶段常用的静态LB机制就不再适用了,需要引入额外的组件来管理微服务提供者的注册与发现,而这个组件就是服务注册中心。CAP理论
  CAP理论是分布式架构中重要理论一致性(Consistency)(所有节点在同一时间具有相同的数据)可用性(Availability)(保证每个请求不管成功或者失败都有响应)分隔容忍(Partitiontolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作)
  关于P的理解,我觉得是在整个系统中某个部分,挂掉了,或者宕机了,并不影响整个系统的运作或者说使用,而可用性是,某个系统的某个节点挂了,但是并不影响系统的接受或者发出请求,CAP不可能都取,只能取其中2个原因是如果C是第一需求的话,那么会影响A的性能,因为要数据同步,不然请求结果会有差异,但是数据同步会消耗时间,期间可用性就会降低。
  如果A是第一需求,那么只要有一个服务在,就能正常接受请求,但是对与返回结果变不能保证,原因是,在分布式部署的时候,数据一致的过程不可能想切线路那么快。
  再如果,同事满足一致性和可用性,那么分区容错就很难保证了,也就是单点,也是分布式的基本核心,好了,明白这些理论,就可以在相应的场景选取服务注册与发现了服务注册中心解决方案
  设计或者选型一个服务注册中心,首先要考虑的就是服务注册与发现机制。纵观当下各种主流的服务注册中心解决方案,大致可归为三类:应用内:直接集成到应用中,依赖于应用自身完成服务的注册与发现,最典型的是Netflix提供的Eureka应用外:把应用当成黑盒,通过应用外的某种机制将服务注册到注册中心,最小化对应用的侵入性,比如Airbnb的SmartStack,HashiCorp的ConsulDNS:将服务注册为DNS的SRV记录,严格来说,是一种特殊的应用外注册方式,SkyDNS是其中的代表
  注1:对于第一类注册方式,除了Eureka这种一站式解决方案,还可以基于ZooKeeper或者Etcd自行实现一套服务注册机制,这在大公司比较常见,但对于小公司而言显然性价比太低。
  注2:由于DNS固有的缓存缺陷,本文不对第三类注册方式作深入探讨。
  除了基本的服务注册与发现机制,从开发和运维角度,至少还要考虑如下五个方面:测活:服务注册之后,如何对服务进行测活以保证服务的可用性?负载均衡:当存在多个服务提供者时,如何均衡各个提供者的负载?集成:在服务提供端或者调用端,如何集成注册中心?运行时依赖:引入注册中心之后,对应用的运行时环境有何影响?可用性:如何保证注册中心本身的可用性,特别是消除单点故障?主流注册中心产品
  软件产品特性并非一成不变,如果发现功能特性有变更,欢迎评论指正
  图片Consul是支持自动注销服务实例,请见文档:https:www。consul。ioapidocsagentservice,在check的DeregisterCriticalServiceAfter这个参数感谢超帅的菜鸟博主提供最新信息新版本的Dubbo也扩展了对Consul的支持。参考:https:github。comapachedubbotreemasterdubboregistryApacheZookeeperCP
  与Eureka有所不同,ApacheZookeeper在设计时就紧遵CP原则,即任何时候对Zookeeper的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性,但是Zookeeper不能保证每次服务请求都是可达的。
  从Zookeeper的实际应用情况来看,在使用Zookeeper获取服务列表时,如果此时的Zookeeper集群中的Leader宕机了,该集群就要进行Leader的选举,又或者Zookeeper集群中半数以上服务器节点不可用(例如有三个节点,如果节点一检测到节点三挂了,节点二也检测到节点三挂了,那这个节点才算是真的挂了),那么将无法处理该请求。所以说,Zookeeper不能保证服务可用性。
  当然,在大多数分布式环境中,尤其是涉及到数据存储的场景,数据一致性应该是首先被保证的,这也是Zookeeper设计紧遵CP原则的另一个原因。
  但是对于服务发现来说,情况就不太一样了,针对同一个服务,即使注册中心的不同节点保存的服务提供者信息不尽相同,也并不会造成灾难性的后果。
  因为对于服务消费者来说,能消费才是最重要的,消费者虽然拿到可能不正确的服务实例信息后尝试消费一下,也要胜过因为无法获取实例信息而不去消费,导致系统异常要好(淘宝的双十一,京东的618就是紧遵AP的最好参照)。
  当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30120s,而且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。
  在云部署环境下,因为网络问题使得zk集群失去master节点是大概率事件,虽然服务能最终恢复,但是漫长的选举事件导致注册长期不可用是不能容忍的。SpringCloudEurekaAP
  图片
  SpringCloudNetflix在设计Eureka时就紧遵AP原则(尽管现在2。0发布了,但是由于其闭源的原因,但是目前Ereka1。x任然是比较活跃的)。
  EurekaServer也可以运行多个实例来构建集群,解决单点问题,但不同于ZooKeeper的选举leader的过程,EurekaServer采用的是PeertoPeer对等通信。这是一种去中心化的架构,无masterslave之分,每一个Peer都是对等的。在这种架构风格中,节点通过彼此互相注册来提高可用性,每个节点需要添加一个或多个有效的serviceUrl指向其他节点。每个节点都可被视为其他节点的副本。
  在集群环境中如果某台EurekaServer宕机,EurekaClient的请求会自动切换到新的EurekaServer节点上,当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中。当节点开始接受客户端请求时,所有的操作都会在节点间进行复制(replicateToPeer)操作,将请求复制到该EurekaServer当前所知的其它所有节点中。
  当一个新的EurekaServer节点启动后,会首先尝试从邻近节点获取所有注册列表信息,并完成初始化。EurekaServer通过getEurekaServiceUrls()方法获取所有的节点,并且会通过心跳契约的方式定期更新。
  默认情况下,如果EurekaServer在一定时间内没有接收到某个服务实例的心跳(默认周期为30秒),EurekaServer将会注销该实例(默认为90秒,eureka。instance。leaseexpirationdurationinseconds进行自定义配置)。
  当EurekaServer节点在短时间内丢失过多的心跳时,那么这个节点就会进入自我保护模式。
  Eureka的集群中,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内超过85的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况:Eureka不再从注册表中移除因为长时间没有收到心跳而过期的服务;Eureka仍然能够接受新服务注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用);当网络稳定时,当前实例新注册的信息会被同步到其它节点中;
  因此,Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样使得整个注册服务瘫痪。Consul
  Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。Consul使用Go语言编写,因此具有天然可移植性(支持Linux、windows和MacOSX)。
  Consul内置了服务注册与发现框架、分布一致性协议实现、健康检查、KeyValue存储、多数据中心方案,不再需要依赖其他工具(比如ZooKeeper等),使用起来也较为简单。
  Consul遵循CAP原理中的CP原则,保证了强一致性和分区容错性,且使用的是Raft算法,比zookeeper使用的Paxos算法更加简单。虽然保证了强一致性,但是可用性就相应下降了,例如服务注册的时间会稍长一些,因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功;在leader挂掉了之后,重新选举出leader之前会导致Consul服务不可用。
  图片
  Consul本质上属于应用外的注册方式,但可以通过SDK简化注册流程。而服务发现恰好相反,默认依赖于SDK,但可以通过ConsulTemplate(下文会提到)去除SDK依赖。
  图片ConsulTemplate
  Consul,默认服务调用者需要依赖ConsulSDK来发现服务,这就无法保证对应用的零侵入性。
  所幸通过ConsulTemplate,可以定时从Consul集群获取最新的服务提供者列表并刷新LB配置(比如nginx的upstream),这样对于服务调用者而言,只需要配置一个统一的服务调用地址即可。
  Consul强一致性(C)带来的是:服务注册相比Eureka会稍慢一些。因为Consul的raft协议要求必须过半数的节点都写入成功才认为注册成功Leader挂掉时,重新选举期间整个consul不可用。保证了强一致性但牺牲了可用性。
  Eureka保证高可用(A)和最终一致性:服务注册相对要快,因为不需要等注册信息replicate到其他节点,也不保证注册信息是否replicate成功当数据出现不一致时,虽然A,B上的注册信息不完全相同,但每个Eureka节点依然能够正常对外提供服务,这会出现查询服务信息时如果请求A查不到,但请求B就能查到。如此保证了可用性但牺牲了一致性。
  其他方面,eureka就是个servlet程序,跑在servlet容器中;Consul则是go编写而成。Nacos
  Nacos是阿里开源的,Nacos支持基于DNS和基于RPC的服务发现。在SpringCloud中使用Nacos,只需要先下载Nacos并启动Nacosserver,Nacos只需要简单的配置就可以完成服务的注册发现。
  Nacos除了服务的注册发现之外,还支持动态配置服务。动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。动态配置消除了配置变更时重新部署应用和服务的需要,让配置管理变得更加高效和敏捷。配置中心化管理让实现无状态服务变得更简单,让服务按需弹性扩展变得更容易。

研究提出可能有助于使星际旅行成为现实的新理论据BGR报道,科学家们表示,星际旅行是可能的,但不是以你可能认为的方式。几十年来,科幻故事提出了在我们已知的银河系之外旅行的想法。这种旅行通常被称为星际旅行,它只是人类对未来的……三星今年将停止生产LCD显示器三星曾经是LCD市场的领导者,由于几个因素,它正在退出此业务。三星长期以来一直被称为业内顶级显示器制造商之一,其屏幕用于电视,智能手机,平板电脑等。据《韩国时报》报道,尽……主打3人家庭旅行的人气房车,1000锂电280水箱,标配柴暖本期的房车实拍为大家带来的是一款适合三口之家舒适旅行的无拓展房车,来自赛德房车的白鲸PLUS,白鲸仿生学造型让这款房车外观更具辨识度,同时打造了更宽敞的床位;新车出厂即拥有不错……收藏!241种中药知识大全!独特性能功效,一句话概括1、麻黄:为发汗解表的要药。为用于肺气壅遏喘咳的要药。2、白芷:为治疗阳明头痛的要药。3、辛夷:为治疗鼻渊头痛鼻塞流涕之要药。4、紫苏:为治疗风寒感冒的常用药……风湿关节炎的四个缓解方法,不妨试一试风湿性关节炎属于一种无菌性炎症,对患者健康危害很大,严重的可导致关节功能严重受影响,甚至可引起关节畸形。那么,患者该怎么缓解风湿性关节炎到带来的额危害?1、热敷。如果你在……抗皱多少岁开始好?常见的抗衰方法有哪些?肤质粗糙,无光泽?细纹出现,开始垮脸?胶原蛋白每天都在流失暗沉、细纹、松弛。。。。。。这些你都中招了吗?抗皱和年龄有关系吗?抗皱能不能返老还……美白的小方法,一起行动起来吧1。戒糖2。多吃坚果,南杏仁美白3。每天喝8杯水4。每天吃3颗红枣5。睡前喝一杯热牛奶6。多喝绿茶,美白茶7。多吃VC含量高的水果(刺梨VC……俄罗斯宇航员将使用超短计划前往国际空间站据塔斯社网站6月3日报道,俄罗斯国家联邦航天局(Roscosmos)总裁德米特罗戈津周五表示,将于明年春天发射到国际空间站(ISS)的俄罗斯载人飞船可能会采用超短单轨道方案与轨……母亲的好作文无须用任何华丽的词语来形容,因为她很平凡,很普通。母亲的一生很辛苦,或者应该说很艰苦。年轻时的母亲是那样的靓丽,照片上的她笑得那样开心。直到有了我,母亲的担心开始了……精品小学生我的同学作文400字三篇在日复一日的学习、工作或生活中,大家总少不了接触作文吧,通过作文可以把我们那些零零散散的思想,聚集在一块。你写作文时总是无从下笔?以下是小编收集整理的小学生我的同学作文400字……年轻妈妈圈很火的5个家居物件,乍看意外,用后真香自从90后本身就喜欢新鲜事物,当了妈妈之后,家居用品也是十分的新颖,刚开始我看到的时候也觉得特别的意外,不过使用了之后瞬间被吸粉。今天就在跟大家聊一聊年轻妈妈圈很火的家居……还敢给孩子吃烤肠吗?淮安1岁男童吃烤肠被竹签刺入颅内淮安1岁男童毛毛边吃烤肠边跑时不真摔跤,烤肠的竹签刺入鼻腔。竹签长10厘米,其中1厘米已刺入颅脑,若刺破脑血管,后果将不堪没想。医院立即安排手术顺利取出竹签,所幸未伤及大脑重要……
关于春季运动会作文100字五篇篇一:春季运动会昨天,我校全体师生隆重举行了2012年春季运动会。操场上,无论是场上努力拼搏的体育健将,还是场下热情服务的后援同学,都是运动会上最靓丽的风景线。下面这些图……卢伟冰霸气发声小米站稳第一的背后有多少秘诀?看电视的都是中老年,年轻人现在谁还看电视啊?如此论调放在三五年前或许还真让人无法反驳,但是当下无论是跟着刘畊宏跳操、在线看周杰伦演唱会、还是插上次时代游戏主机爽一把游戏,我们很……口臭脚臭中医应对夏季各种身体异味炎炎夏季,时常让人汗流浃背,然而更让人尴尬的是由此带来的身体异味,着实令人烦恼。解决这些身体异味,看看中医都有哪些小妙招?健康时报资料图片1。口臭河南中……隔夜西瓜能不能吃,怎么做才行?切掉表层好不好使随着天气越来越热,很多地方正式进入夏季,西瓜也逐渐进入人们的视线,成为降温消暑的利器。有时候西瓜太大等原因面临需要保存起来第二天再吃的情况,这时候很多人就会担心,到底该怎么保存……我错了吗?E度网专稿未经允许不得转载我是一只有远大志向,有激情的乌龟。从我懂事以来,我便有了一个梦mdash;mdash;一个飞翔梦。有一天,我望见远处飞翔的鸟儿,抑制不住心……有关小学秋天的作文500字锦集9篇在我们平凡的日常里,大家都尝试过写作文吧,借助作文可以宣泄心中的情感,调节自己的心情。那要怎么写好作文呢?下面是小编为大家整理的小学秋天的作文500字9篇,仅供参考,欢迎大家阅……感悟美丽600字作文生活中处处都有美丽,可人们都忙于上班、上学,从未发行过生活中的美。美丽,可以是美丽的风景;可以是漂亮,俊俏的男生、女生;可以是漂亮的衣服;可以是一个人身上美丽的品质;美丽……科学与社会之间的冲突可以毫不夸张地说,我们生活中科技无处不在,例如通过智能手机联系,乘飞机出国等等,使我们的生活异常便捷。毫无疑问,这是完全依赖从过去积累起来的科学研究。但是现在科学与社会之间冲突……谢谢您的微笑抒情作文作此篇,乃兼怀我念念不忘的故师。微笑,就是这微笑让我感到温暖,怎能忘记相见时一个个笑脸,焉能忘记那一次次迷人的微笑。瑟瑟的秋风无情地驱赶着枝头仅存的一点绿意,一个个寒战后……夸克是物质的终极结构吗?1977年4月,科学家们宣称,他们确信在实验中已经找到物质的终极结构,这就是夸克。由于束缚力使得原子聚集在一起,因此要发现夸克粒子是极为困难的。1962年,默里盖尔……秋天写景作文500字枯藤老树昏鸦,小桥流水人家,古道西风瘦马,夕阳西下,断肠人在天涯在不经意间,树叶零落,稀稀弱蝉,丰收果实,一切的一切暗示着秋天的到来秋,一个喜悦、悠闲、浪漫的季节。……乙肝朋友们,这些食物常吃有好处乙肝朋友们,为了提高自身的抵抗力,日常生活中,除了坚持锻炼,还可以通过饮食调理,注意三餐营养的搭配,不偏食,营养均衡了才能有好的身体,今天一起来看看生活中常见的几种食物对身体有……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网