Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

172 lines
6.0 KiB

---
description: |-
Consul is a highly available and distributed service discovery and KV
store designed with support for the modern data center to make distributed
systems and configuration easy.
---
<header>
<div class="container hero">
<div class="row">
<div class="col-md-offset-2 col-md-8">
<%= inline_svg "logo-hashicorp.svg", height: 120, class: "logo" %>
<h1>Service Discovery and Configuration Made Easy</h1>
<a class="button primary" href="/intro/index.html">Get Started</a>
<a class="button" href="/downloads.html">Download <%= latest_version %></a>
</div>
</div>
</div>
</header>
<section id="features" class="marketing pink">
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-sm-3 feature-icon">
<%= inline_svg "feature-discovery.svg", width: 100 %>
</div>
<div class="col-sm-9">
<h2>Service Discovery</h2>
<p>
Consul makes it simple for services to register themselves and to
discover other services via a DNS or HTTP interface. Register external
services such as SaaS providers as well.
</p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-sm-3 feature-icon">
<%= inline_svg "feature-health.svg", width: 100 %>
</div>
<div class="col-sm-9">
<h2>Failure Detection</h2>
<p>
Pairing service discovery with health checking prevents routing
requests to unhealthy hosts and enables services to easily provide
circuit breakers.
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-sm-3 feature-icon">
<%= inline_svg "feature-multi.svg", width: 100 %>
</div>
<div class="col-sm-9">
<h2>Multi Datacenter</h2>
<p>
Consul scales to multiple datacenters out of the box with no
complicated configuration. Look up services in other datacenters, or
keep the request local.
</p>
</div>
</div>
</div>
<div class="col-md-6">
<div class="row">
<div class="col-sm-3 feature-icon">
<%= inline_svg "feature-config.svg", width: 85 %>
</div>
<div class="col-sm-9">
<h2>KV Storage</h2>
<p>
Flexible key/value store for dynamic configuration, feature flagging,
coordination, leader election and more. Long poll for near-instant
notification of configuration changes.
</p>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="simple" class="marketing">
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>DNS Query Interface</h2>
<p>
Look up services using Consul's built-in DNS server. Support
existing infrastructure without any code change.
</p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="terminal">
<span class="circle"></span>
<span class="circle"></span>
<span class="circle"></span>
<div class="terminal-content">
<span><span class="text-pink">admin@hashicorp.com:</span> dig web-frontend.service.consul. ANY</span>
<span>; &lt;&lt;&gt;&gt; DiG 9.8.3-P1 &lt;&lt;&gt;&gt; web-frontend.service.consul. ANY</span>
<span>;; global options: +cmd</span>
<span>&nbsp;</span>
<span>;; Got answer:</span>
<span>;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 29981</span>
<span>;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0</span>
<span> </span>
<span>;; QUESTION SECTION:</span>
<span>;web-frontend.service.consul. IN ANY</span>
<span>&nbsp;</span>
<span>;; ANSWER SECTION:</span>
<span>web-frontend.service.consul. 0 IN A <span class="text-pink">10.0.3.83</span></span>
<span>web-frontend.service.consul. 0 IN A <span class="text-pink">10.0.1.109</span></span>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<h2>Key Value Storage</h2>
<p>
Consul provides a hierarchical key/value store with a simple HTTP API.
Managing configuration has never been simpler.
</p>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="terminal">
<span class="circle"></span>
<span class="circle"></span>
<span class="circle"></span>
<div class="terminal-content">
<span><span class="text-pink">admin@hashicorp:</span> consul kv put foo bar</span>
<span>Success! Data written to: foo</span>
<span><span class="text-pink">admin@hashicorp:</span> consul kv get foo</span>
<span>bar</span>
<span><span class="text-pink">admin@hashicorp:</span> consul kv get -detailed foo</span>
<span>CreateIndex 5</span>
<span>Flags 0</span>
<span>Key foo</span>
<span>LockIndex 0</span>
<span>ModifyIndex 5</span>
<span>Session -</span>
<span>Value bar</span>
<span><span class="text-pink">admin@hashicorp:</span> consul kv delete foo</span>
<span>Success! Deleted key: foo</span>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="cta" class="marketing">
<div class="container">
<div class="row">
<a class="button primary" href="/intro/index.html">Read the Introduction</a>
</div>
</div>
</section>