文件名称:服务发现系统SkyDNS.zip
文件大小:62KB
文件格式:ZIP
更新时间:2022-08-05 01:37:45
开源项目
SkyDNS 是一个相对新的项目它采用Go语言编写,使用了RAFT用于一致性,并提供了HTTP和DNS两种客户端API.它与Etcd和Spotify的DNS模型有点类似,事实上它采用了和Etcd,go-raft同样的RAFT实现。 SkyDNS服务器聚簇在一起,使用RAFT协议,并选择出一个主服务。SkyDNS服务器暴露不同的结点用于服务注册和发现。 为了注册服务,服务会使用基于HTTP的API创建带有TTL的入口。服务必须周期性地通过心跳报告它们的状态。SkyDNS也使用了SRV记录,但它对记录做了扩展用于支持服务版本、环境和地区。 为了发现,客户端使用DNS并检索它们需要连接的服务的SRV记录。客户端需要实现负载均衡或者失效备援,并且周期性的缓存和刷新服务位置数据。 与Spotify使用DNS不同的是,SkyDNS支持服务的动态注册,并且能够在不依赖像Zookeeper或者Etcd的情况下动态注册。 如果你使用了docker,skydock,你应当去检查一下你的容器与SkyDNS自动的集成。 标签:SkyDNS
【文件预览】:
skydns-master
----CONTRIBUTORS(230B)
----main.go(10KB)
----backends()
--------etcd3()
--------etcd()
----singleflight()
--------singleflight.go(2KB)
----AUTHORS(58B)
----Gopkg.toml(1KB)
----metrics()
--------metrics.go(5KB)
----Dockerfile(186B)
----.travis.yml(575B)
----LICENSE(1KB)
----Gopkg.lock(4KB)
----README.md(31KB)
----cache()
--------hit.go(788B)
--------cache.go(4KB)
--------cache_test.go(2KB)
----.gitignore(12B)
----server()
--------server_test.go(45KB)
--------stub.go(3KB)
--------log.go(479B)
--------metrics_test.go(1KB)
--------forwarding.go(4KB)
--------backend.go(1KB)
--------doc.go(393B)
--------nsec3.go(4KB)
--------server.go(23KB)
--------dnssec.go(5KB)
--------cache_test.go(2KB)
--------exchange.go(1000B)
--------msg.go(1KB)
--------config.go(5KB)
----msg()
--------service_test.go(4KB)
--------service.go(7KB)