微服务架构中常用的解决方案,总结了传统服务发现方案
副问题[/!--empirenews.page--]
正常环境下当我们要会见处事时必要知道处究竟例地点和端口,假如处究竟例地点和端口都是牢靠的我们可以直接将其设置在文件中行使,但大大都线上出产情形尤其容器陈设环境下处究竟例地点都是动态分派的,只有当处究竟例现实陈设之后才气得到地点,处事挪用者基础无法提取获取处究竟例地点和端口,只能在运行时通过处事发明组件理会处事名来获取处究竟例地点和端口。 处事发明简朴来讲就是通过处事名找到提供处事的实例地点和端口,首要用于办理怎样获取处究竟例地点题目。连年来跟着容器技能的鼓起,大量处事分手在体系遍地,处事互相之间挪用都必要通过处事发明来实现。处事发明是漫衍式体系中不行或缺的要害组件,常用于构建处事发明办理方案的开源框架如Zookeeper、 Etcd、Consul。本文首要先容怎样基于Zookeeper、 Etcd、Consul构建处事发明方案并对其也许呈现的题目举办接头。 一个尺度的处事发明架构首要有三部门构成别离是处事注册中心、处事挪用者、处事提供者,架构图如下所示: ![]() 处事注册中心是处事发明的焦点组件,其本质上是一个处事名和处究竟例地点映射荟萃,除了提供根基的处事名理会成果外,还必要具备如动手段:
注册或注销处究竟例一样平常有两种选择:
处事发明方案 DNS DNS(Domain Name System)是一种通过理会域名获取IP和端口的机制。将SRV记录注册到DNS处事器上,通过DNS理会流程举办理会。可是DNS存在两个题目:一是当处究竟例启动之后将SRV记录注册到DNS处事器上较量难,必要手动维护;二是DNS严峻依靠缓存,处事行使方无法实时知道一个处究竟例是否已经遏制。 mDNS mDNS(multicast DNS即组播DNS)是一种零设置的处事发明机制,在内部收集中常常行使,每个处事都有一个内置的mDNS相应措施,从而不必要单独的处事注册中心。mDNS最大的题目就是要求收集基本办法支持IP多播(IP multicast),对付云情形来说显然是无法满意的,并且mDNS也无法办理DNS缓存题目。 DNS与mDNS都具备精采的容错手段,但缺乏处事康健搜查和变革关照机制。 Zookeeper Zookeeper提供漫衍式和谐处事,在漫衍式体系中常被用于设置打点、名字处事、漫衍式锁及组打点,凡是运行在一组节点上实现容错(当运行在n个节点上时能容忍n/2个节点同时妨碍)。 怎样通过Zookeeper来实现处事发明?Zookeeper行使姑且节点(ephemeral node)来实现处事注册和根基的康健搜查成果。每当处究竟例启动就会在Zookeeper中注册一个姑且节点,而当处究竟例妨碍或下线该姑且节点会被Zookeeper自动删除,假若有其他处事依烂魅这个处事可以配置监听该处究竟例对应的姑且节点,当姑且节点被删除时,依靠该处事的其他处事会得到关照。依靠Zookeeper自身的高可用及姑且节点提供的康健搜查和监听机制来实现具备容错手段的处事发明机制。 现实开拓进程中提议行使Apache Curator来更换Zookeeper原生客户端库,Apache Curator通过封装Zookeeper原生API,提供更高抽象条理API让Zookeeper行使起来越发轻易和靠得住,并且提供专用于实现处事发明的API。 ![]() Etcd Etcd是一个基于Raft共鸣算法具备线性强同等性(linearizable)的Key-Value存储体系,可觉得每个Key配置TTL(time to live),当TTL事后响应Key会自动逾期失效。基于Etcd构建处事发明办理方案将Etcd作为处事注册中心,处究竟例注册就是在Etcd中构建一个Key-Value记录,由处究竟例自身或署理认真配置并按期更新其关联Key的TTL,假如处究竟例妨碍其对应Key就会在TTL之后逾期失效,相等于将该妨碍处究竟例注销,通过按时心跳以到达监控康健状态的结果。并且Etcd提供监听机制,应承为Key配置监听器当该Key产生变革时,监听器能实时获取关照。Etcd自身的高可用特征,基于TTL提供根基的处事康健搜查,基于监听机制实时感知处究竟例变革,使Etcd成为微处事架构中常用处事发明办理方案。 ![]() Consul Consul是一个成熟的处事发明办理方案。其焦点是一个基于Raft共鸣算法具备线性强同等性的Key-Value存储体系作为处事注册中心,并提供署理(Agent)机制一方面用于和谐处事注册,一方面提供处事康健搜查。署理(Agent)会在每个运行处事的节点上启动,获取节点地点并将该处究竟例注册随处事注册中心。架构上Consul包罗两类组件:Server、Agent,处事注册信息生涯在Server上,通过Raft共鸣算法担保多个Server间数据线性强同等,担保处事注册中心高可用;将全部Agent作为集群节点,行使Gossip协议举办组相关打点和妨碍探测,当有Agent插手(启动)或分开(妨碍)集群时其他Agent会获得关照,实现处事康健搜查和监督成果。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |