皇冠体育app

设为首页 - 加入收藏 我爱资讯网 (http://119zzxfpf.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 微软 微信 营收 安全
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

微bet皇冠体育新皇冠体育网址皇冠体育在线官网皇冠体育赌场新皇冠体育官网,总结了传统bet皇冠体育发现方案

发布时间:2019-09-11 05:54 所属栏目:[优化] 来源:IT技术分享
导读:正常情况下当我们要访问bet皇冠体育时需要知道bet皇冠体育实例地址和端口,如果bet皇冠体育实例地址和端口都是固定的我们可以直接将其配置在文件中使用,但大多数线上生产环境尤其容器部署情况下bet皇冠体育实例地址都是动态分配的,只有当bet皇冠体育实例实际部署之后才能获得地址,bet皇冠体育调用

正常情况下当我们要访问bet皇冠体育时需要知道bet皇冠体育实例地址和端口,如果bet皇冠体育实例地址和端口都是固定的我们可以直接将其配置在文件中使用,但大多数线上生产环境尤其容器部署情况下bet皇冠体育实例地址都是动态分配的,只有当bet皇冠体育实例实际部署之后才能获得地址,bet皇冠体育调用者根本无法提取获取bet皇冠体育实例地址和端口,只能在运行时通过bet皇冠体育发现组件解析bet皇冠体育名来获取bet皇冠体育实例地址和端口。

微bet皇冠体育新皇冠体育网址皇冠体育在线官网皇冠体育赌场新皇冠体育官网,总结了传统bet皇冠体育发现方案

bet皇冠体育发现简单来讲就是通过bet皇冠体育名找到提供bet皇冠体育的实例地址和端口,主要用于解决如何获取bet皇冠体育实例地址问题。近年来随着容器技术的兴起,大量bet皇冠体育分散在系统各处,bet皇冠体育彼此之间调用都需要通过bet皇冠体育发现来实现。bet皇冠体育发现是分布式系统中不可或缺的关键组件,常用于构建bet皇冠体育发现新皇冠体育官网的开源框架如Zookeeper、 Etcd、Consul。本文主要介绍如何基于Zookeeper、 Etcd、Consul构建bet皇冠体育发现方案并对其可能出现的问题进行讨论。

一个标准的bet皇冠体育发现新皇冠体育网址主要有三部分组成分别是bet皇冠体育注册中心、bet皇冠体育调用者、bet皇冠体育提供者,新皇冠体育网址图如下所示:

微bet皇冠体育新皇冠体育网址皇冠体育在线官网皇冠体育赌场新皇冠体育官网,总结了传统bet皇冠体育发现方案

bet皇冠体育注册中心是bet皇冠体育发现的核心组件,其本质上是一个bet皇冠体育名和bet皇冠体育实例地址映射集合,除了提供基本的bet皇冠体育名解析功能外,还需要具备如下能力:

  • 容错(Fault Tolerance):bet皇冠体育注册中心保存了分布式系统中所有bet皇冠体育名与bet皇冠体育实例地址映射,一旦故障必将导致整个系统不可用,是整个分布式系统核心,必须具备高可用性;
  • bet皇冠体育健康检查(Service Health Check):bet皇冠体育注册中心必须要能及时发现故障实例并将其注销以防止被错误访问;
  • 监视器(Watcher):bet皇冠体育注册中心必须具备及时通知bet皇冠体育调用者bet皇冠体育实例注册或注销的能力,以便bet皇冠体育调用者及时采取措施。

注册或注销bet皇冠体育实例一般有两种选择:

  1. bet皇冠体育实例自己注册即Self-Registration模式,在bet皇冠体育实例启动成功后主动将自己注册到bet皇冠体育注册中心,这种方法好处是新皇冠体育网址简单但需要为bet皇冠体育用到的每种编程语言实现注册代码;
  2. 通过其他组件来注册bet皇冠体育实例即Thrid-party Registration模式,例如使用一个独立Agent通过轮询或监听事件去跟踪运行的bet皇冠体育实例变化进行注册或注销,好处是bet皇冠体育实例与bet皇冠体育注册中心解耦但引入第三方组件增加了新皇冠体育网址复杂性。

bet皇冠体育发现方案

DNS

DNS(Domain Name System)是一种通过解析域名获取IP和端口的机制。将SRV记录注册到DNSbet皇冠体育器上,通过DNS解析流程进行解析。但是DNS存在两个问题:一是当bet皇冠体育实例启动之后将SRV记录注册到DNSbet皇冠体育器上比较难,需要手动维护;二是DNS严重依赖缓存,bet皇冠体育使用方无法及时知道一个bet皇冠体育实例是否已经停止。

mDNS

mDNS(multicast DNS即组播DNS)是一种零配置的bet皇冠体育发现机制,在内部网络中经常使用,每个bet皇冠体育都有一个内置的mDNS响应程序,从而不需要单独的bet皇冠体育注册中心。mDNS最大的问题就是要求网络基础设施支持IP多播(IP multicast),对于云环境来说显然是无法满足的,而且mDNS也无法解决DNS缓存问题。

DNS与mDNS都具备良好的容错能力,但缺乏bet皇冠体育健康检查和变化通知机制。

Zookeeper

Zookeeper提供分布式协调bet皇冠体育,在分布式系统皇冠体育在线官网被用于配置管理、名字bet皇冠体育、分布式锁及组管理,通常运行在一组节点上实现容错(当运行在n个节点上时能容忍n/2个节点同时故障)。

如何通过Zookeeper来实现bet皇冠体育发现?Zookeeper使用临时节点(ephemeral node)来实现bet皇冠体育注册和基本的健康检查功能。每当bet皇冠体育实例启动就会在Zookeeper中注册一个临时节点,而当bet皇冠体育实例故障或下线该临时节点会被Zookeeper自动删除,如果有其他bet皇冠体育依赖这个bet皇冠体育可以设置监听该bet皇冠体育实例对应的临时节点,当临时节点被删除时,依赖该bet皇冠体育的其他bet皇冠体育会获得通知。依赖Zookeeper自身的高可用及临时节点提供的健康检查和监听机制来实现具备容错能力的bet皇冠体育发现机制。

实际开发过程中建议使用Apache Curator来替代Zookeeper原生客户端库,Apache Curator通过封装Zookeeper原生API,提供更高抽象层次API让Zookeeper使用起来更加容易和可靠,而且提供专用于实现bet皇冠体育发现的API。

微bet皇冠体育新皇冠体育网址皇冠体育在线官网皇冠体育赌场新皇冠体育官网,总结了传统bet皇冠体育发现方案

Etcd

Etcd是一个基于Raft共识算法具备线性强一致性(linearizable)的Key-Value存储系统,可以为每个Key设置TTL(time to live),当TTL过后相应Key会自动过期失效。基于Etcd构建bet皇冠体育发现新皇冠体育官网将Etcd作为bet皇冠体育注册中心,bet皇冠体育实例注册就是在Etcd中构建一个Key-Value记录,由bet皇冠体育实例自身或代理负责设置并定期更新其关联Key的TTL,如果bet皇冠体育实例故障其对应Key就会在TTL之后过期失效,相当于将该故障bet皇冠体育实例注销,通过定时心跳以达到监控健康状态的效果。而且Etcd提供监听机制,允许为Key设置监听器当该Key发生变化时,监听器能及时获取通知。Etcd自身的高可用特性,基于TTL提供基本的bet皇冠体育健康检查,基于监听机制及时感知bet皇冠体育实例变化,使Etcd成为微bet皇冠体育新皇冠体育网址皇冠体育在线官网用bet皇冠体育发现新皇冠体育官网。

微bet皇冠体育新皇冠体育网址皇冠体育在线官网皇冠体育赌场新皇冠体育官网,总结了传统bet皇冠体育发现方案

Consul

Consul是一个成熟的bet皇冠体育发现新皇冠体育官网。其核心是一个基于Raft共识算法具备线性强一致性的Key-Value存储系统作为bet皇冠体育注册中心,并提供代理(Agent)机制一方面用于协调bet皇冠体育注册,一方面提供bet皇冠体育健康检查。代理(Agent)会在每个运行bet皇冠体育的节点上启动,获取节点地址并将该bet皇冠体育实例注册到bet皇冠体育注册中心。新皇冠体育网址上Consul包括两类组件:Server、Agent,bet皇冠体育注册信息保存在Server上,通过Raft共识算法保证多个Server间数据线性强一致,保证bet皇冠体育注册中心高可用;将所有Agent作为集群节点,使用Gossip协议进行组关系管理和故障探测,当有Agent加入(启动)或离开(故障)集群时其他Agent会得到通知,实现bet皇冠体育健康检查和监视功能。

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章

皇冠体育app