What is SkyDNS?
SkyDNS is a distributed service for announcement and discovery of services. It leverages Raft for high-availability and consensus, and utilizes DNS queries to discover available services. This is done by leveraging SRV records in DNS, with special meaning given to subdomains, priorities and weights (more info here: http://blog.gopheracademy.com/skydns).
SkyDNS is a tool in the Open Source Service Discovery category of a tech stack.
SkyDNS is an open source tool with 2K GitHub stars and 301 GitHub forks. Here’s a link to SkyDNS's open source repository on GitHub
Why developers like SkyDNS?
Here’s a list of reasons why companies and developers use SkyDNS
- You announce your service by submitting JSON over HTTP to SkyDNS with information about your service. This information will then be available for queries either via DNS or HTTP.
- SkyDNS requires that services submit an HTTP request to update their TTL within the TTL they last supplied. If the service fails to do so within this timeframe SkyDNS will expire the service automatically. This will allow for nodes to fail and DNS to reflect this quickly.
- You can find services by querying SkyDNS via any DNS client or utility. It uses a known domain syntax with wildcards to find matching services.
SkyDNS Alternatives & Comparisons
What are some alternatives to SkyDNS?
See all alternatives
Consul is a tool for service discovery and configuration. Consul is distributed, highly available, and extremely scalable.
CoreDNS is a DNS server. It is written in Go. It can be used in a multitude of environments because of its flexibility
A centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. All of these kinds of services are used in some form or another by distributed applications.
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It’s open-source and available on GitHub. etcd gracefully handles master elections during network partitions and will tolerate machine failure, including the master.
Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.