165 lines
5.8 KiB
Plaintext
165 lines
5.8 KiB
Plaintext
---
|
|
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="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 class="col-md-6">
|
|
<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 class="row">
|
|
<div class="col-md-6">
|
|
<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 class="col-md-6">
|
|
<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>
|
|
</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>; <<>> DiG 9.8.3-P1 <<>> web-frontend.service.consul. ANY</span>
|
|
<span>;; global options: +cmd</span>
|
|
<span> </span>
|
|
<span>;; Got answer:</span>
|
|
<span>;; ->>HEADER<<- 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> </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>
|