mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
updating docs
This commit is contained in:
@@ -1504,6 +1504,32 @@
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.5" data-path="../nats_tools/nsc/revocation.html">
|
||||
|
||||
<a href="../nats_tools/nsc/revocation.html">
|
||||
|
||||
|
||||
Revocation
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.6" data-path="../nats_tools/nsc/managed.html">
|
||||
|
||||
<a href="../nats_tools/nsc/managed.html">
|
||||
|
||||
|
||||
Managed Operators
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
@@ -2593,26 +2619,26 @@
|
||||
</code></pre>
|
||||
<p>In this case, <code>nats-cluster-node-1</code> is seeding the rest of the cluster through the autodiscovery feature. Now NATS servers <code>nats-cluster-node-1</code> and <code>nats-cluster-node-2</code> are clustered together.</p>
|
||||
<p>Add in more replicas of the subscriber:</p>
|
||||
<pre class="language-"><code class="lang-sh">% docker <span class="token function">service</span> scale ruby-nats<span class="token operator">=</span>3
|
||||
<pre class="language-"><code class="lang-sh">% docker <span class="token function">service</span> scale ruby-nats<span class="token operator">=</span><span class="token number">3</span>
|
||||
</code></pre>
|
||||
<p>Then confirm the distribution on the Docker Swarm cluster:</p>
|
||||
<pre class="language-"><code class="lang-sh">% docker <span class="token function">service</span> <span class="token function">ps</span> ruby-nats
|
||||
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
|
||||
25skxso8honyhuznu15e4989m ruby-nats.1 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running 2 minutes ago
|
||||
0017lut0u3wj153yvp0uxr8yo ruby-nats.2 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running 2 minutes ago
|
||||
2sxl8rw6vm99x622efbdmkb96 ruby-nats.3 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-2 Running Running 2 minutes ago
|
||||
25skxso8honyhuznu15e4989m ruby-nats.1 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running <span class="token number">2</span> minutes ago
|
||||
0017lut0u3wj153yvp0uxr8yo ruby-nats.2 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-1 Running Running <span class="token number">2</span> minutes ago
|
||||
2sxl8rw6vm99x622efbdmkb96 ruby-nats.3 wallyqs/ruby-nats:ruby-2.3.1-nats-v0.8.0 node-2 Running Running <span class="token number">2</span> minutes ago
|
||||
</code></pre>
|
||||
<p>The sample output after adding more NATS server nodes to the cluster, is below - and notice that the client is <em>dynamically</em> aware of more nodes being part of the cluster via auto discovery!</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span>2016-08-15 12:51:52 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span>2016-08-15 12:51:53 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span>2016-08-15 12:51:54 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span>2016-08-15 12:51:55 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.7:4222>, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.6:4222>, :reconnect_attempts=>0}]</span>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">12</span>:51:52 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">12</span>:51:53 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">12</span>:51:54 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}]</span>
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">12</span>:51:55 +0000<span class="token punctuation">]</span> Saying hi <span class="token punctuation">(</span>servers <span class="token keyword">in</span> pool: <span class="token punctuation">[</span><span class="token punctuation">{</span>:uri<span class="token operator">=</span><span class="token operator">></span><span class="token comment">#<URI::Generic nats://10.0.1.3:4222>, :was_connected=>true, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.7:4222>, :reconnect_attempts=>0}, {:uri=>#<URI::Generic nats://10.0.1.6:4222>, :reconnect_attempts=>0}]</span>
|
||||
</code></pre>
|
||||
<p>Sample output after adding more workers which can reply back (since ignoring own responses):</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span>2016-08-15 16:06:26 +0000<span class="token punctuation">]</span> Received reply - world
|
||||
<span class="token punctuation">[</span>2016-08-15 16:06:26 +0000<span class="token punctuation">]</span> Received reply - world
|
||||
<span class="token punctuation">[</span>2016-08-15 16:06:27 +0000<span class="token punctuation">]</span> Received greeting - hi - _INBOX.b8d8c01753d78e562e4dc561f1
|
||||
<span class="token punctuation">[</span>2016-08-15 16:06:27 +0000<span class="token punctuation">]</span> Received greeting - hi - _INBOX.4c35d18701979f8c8ed7e5f6ea
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">16</span>:06:26 +0000<span class="token punctuation">]</span> Received reply - world
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">16</span>:06:26 +0000<span class="token punctuation">]</span> Received reply - world
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">16</span>:06:27 +0000<span class="token punctuation">]</span> Received greeting - hi - _INBOX.b8d8c01753d78e562e4dc561f1
|
||||
<span class="token punctuation">[</span><span class="token number">2016</span>-08-15 <span class="token number">16</span>:06:27 +0000<span class="token punctuation">]</span> Received greeting - hi - _INBOX.4c35d18701979f8c8ed7e5f6ea
|
||||
</code></pre>
|
||||
<h3 id="and-so-forth"><a name="and-so-forth" class="plugin-anchor" href="#and-so-forth"><i class="fa fa-link" aria-hidden="true"></i></a>And so forth...</h3>
|
||||
<p>From here you can experiment adding to the NATS cluster by simply adding servers with new service names, that route to the seed server <code>nats-cluster-node-1</code>. As you've seen above, clients will automatically be updated to know that new servers are available in the cluster.</p>
|
||||
@@ -2661,7 +2687,7 @@ ID NAME IMAGE
|
||||
<script>
|
||||
var gitbook = gitbook || [];
|
||||
gitbook.push(function() {
|
||||
gitbook.page.hasChanged({"page":{"title":"Docker Swarm","level":"4.7.2","depth":2,"next":{"title":"mkpasswd","level":"5.1","depth":1,"path":"nats_tools/mkpasswd.md","ref":"nats_tools/mkpasswd.md","articles":[]},"previous":{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/docker_swarm.md","mtime":"2019-05-31T18:06:29.019Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-05T21:19:53.626Z"},"basePath":"..","book":{"language":""}});
|
||||
gitbook.page.hasChanged({"page":{"title":"Docker Swarm","level":"4.7.2","depth":2,"next":{"title":"mkpasswd","level":"5.1","depth":1,"path":"nats_tools/mkpasswd.md","ref":"nats_tools/mkpasswd.md","articles":[]},"previous":{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/docker_swarm.md","mtime":"2019-09-23T22:49:18.485Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T22:50:08.961Z"},"basePath":"..","book":{"language":""}});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -1504,6 +1504,32 @@
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.5" data-path="../nats_tools/nsc/revocation.html">
|
||||
|
||||
<a href="../nats_tools/nsc/revocation.html">
|
||||
|
||||
|
||||
Revocation
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.6" data-path="../nats_tools/nsc/managed.html">
|
||||
|
||||
<a href="../nats_tools/nsc/managed.html">
|
||||
|
||||
|
||||
Managed Operators
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
@@ -2571,14 +2597,14 @@
|
||||
</ul>
|
||||
<p>For example:</p>
|
||||
<pre class="language-"><code class="lang-sh">$ docker run -d --name nats-main nats
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version 0.6.6
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on port 8222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> route connections on 0.0.0.0:6222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on 0.0.0.0:4222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version <span class="token number">0.6</span>.6
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on port <span class="token number">8222</span>
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> route connections on <span class="token number">0.0</span>.0.0:6222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on <span class="token number">0.0</span>.0.0:4222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> nats-server is ready
|
||||
</code></pre>
|
||||
<p>To run with the ports exposed on the host:</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> docker run -d -p 4222:4222 -p 6222:6222 -p 8222:8222 --name nats-main nats
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> docker run -d -p <span class="token number">4222</span>:4222 -p <span class="token number">6222</span>:6222 -p <span class="token number">8222</span>:8222 --name nats-main nats
|
||||
</code></pre>
|
||||
<p>To run a second server and cluster them together:</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> docker run -d --name<span class="token operator">=</span>nats-2 --link nats-main nats --routes<span class="token operator">=</span>nats-route://ruser:T0pS3cr3t@nats-main:6222
|
||||
@@ -2594,16 +2620,16 @@ authorization {
|
||||
</code></pre>
|
||||
<p>To verify the routes are connected:</p>
|
||||
<pre class="language-"><code class="lang-sh">$ docker run -d --name<span class="token operator">=</span>nats-2 --link nats-main nats --routes<span class="token operator">=</span>nats-route://ruser:T0pS3cr3t@nats-main:6222 -DV
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version 2.0.0
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on port 8222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version <span class="token number">2.0</span>.0
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on port <span class="token number">8222</span>
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> route connections on :6222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on 0.0.0.0:4222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on <span class="token number">0.0</span>.0.0:4222
|
||||
<span class="token punctuation">[</span>INF<span class="token punctuation">]</span> nats-server is ready
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> Trying to connect to route on nats-main:6222
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> 172.17.0.52:6222 - rid:1 - Route connection created
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> 172.17.0.52:6222 - rid:1 - Route connect msg sent
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> 172.17.0.52:6222 - rid:1 - Registering remote route <span class="token string">"ee35d227433a738c729f9422a59667bb"</span>
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> 172.17.0.52:6222 - rid:1 - Route sent local subscriptions
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> <span class="token number">172.17</span>.0.52:6222 - rid:1 - Route connection created
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> <span class="token number">172.17</span>.0.52:6222 - rid:1 - Route connect msg sent
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> <span class="token number">172.17</span>.0.52:6222 - rid:1 - Registering remote route <span class="token string">"ee35d227433a738c729f9422a59667bb"</span>
|
||||
<span class="token punctuation">[</span>DBG<span class="token punctuation">]</span> <span class="token number">172.17</span>.0.52:6222 - rid:1 - Route sent <span class="token builtin class-name">local</span> subscriptions
|
||||
</code></pre>
|
||||
<h2 id="clustering-with-docker"><a name="clustering-with-docker" class="plugin-anchor" href="#clustering-with-docker"><i class="fa fa-link" aria-hidden="true"></i></a>Clustering With Docker</h2>
|
||||
<p>Below is are a couple examples of how to setup nats-server cluster using Docker. We put 3 different configurations (one per nats-server server) under a folder named conf as follows:</p>
|
||||
@@ -2661,7 +2687,7 @@ cluster {
|
||||
}
|
||||
</code></pre>
|
||||
<p>To start the containers, on each one of your servers, you should be able to start the nats-server image as follows:</p>
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p 0.0.0.0:7222:7222 -p 0.0.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token function">pwd</span><span class="token variable">)</span></span>/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 7222 -D -V
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p <span class="token number">0.0</span>.0.0:7222:7222 -p <span class="token number">0.0</span>.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">pwd</span><span class="token variable">)</span></span>/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p <span class="token number">7222</span> -D -V
|
||||
</code></pre>
|
||||
<pre class="language-"><code>docker run -it -p 0.0.0.0:8222:8222 -p 0.0.0.0:7246:7246 --rm -v $(pwd)/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 8222 -D -V
|
||||
</code></pre><pre class="language-"><code>docker run -it -p 0.0.0.0:9222:9222 -p 0.0.0.0:7248:7248 --rm -v $(pwd)/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V
|
||||
@@ -2683,7 +2709,7 @@ cluster {
|
||||
|
||||
}
|
||||
</code></pre>
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token function">pwd</span><span class="token variable">)</span></span>/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p <span class="token number">0.0</span>.0.0:4222:4222 -p <span class="token number">0.0</span>.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">pwd</span><span class="token variable">)</span></span>/conf/nats-server-A.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p <span class="token number">4222</span> -D -V
|
||||
</code></pre>
|
||||
<p>Then we proceed to create the next node. We realize that the first node has ip:port as <code>192.168.59.103:7244</code> so we add this to the routes configuration as follows:</p>
|
||||
<pre class="language-"><code class="lang-ascii"># Cluster Server B
|
||||
@@ -2700,7 +2726,7 @@ cluster {
|
||||
}
|
||||
</code></pre>
|
||||
<p>Then start server B:</p>
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token function">pwd</span><span class="token variable">)</span></span>/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 4222 -D -V
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p <span class="token number">0.0</span>.0.0:4222:4222 -p <span class="token number">0.0</span>.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">pwd</span><span class="token variable">)</span></span>/conf/nats-server-B.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p <span class="token number">4222</span> -D -V
|
||||
</code></pre>
|
||||
<p>Finally, we create another Node C. We now know the routes of A and B so we can add it to its configuration:</p>
|
||||
<pre class="language-"><code class="lang-ascii"># Cluster Server C
|
||||
@@ -2718,7 +2744,7 @@ cluster {
|
||||
}
|
||||
</code></pre>
|
||||
<p>Then start it:</p>
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p 0.0.0.0:4222:4222 -p 0.0.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token function">pwd</span><span class="token variable">)</span></span>/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p 9222 -D -V
|
||||
<pre class="language-"><code class="lang-sh">docker run -it -p <span class="token number">0.0</span>.0.0:4222:4222 -p <span class="token number">0.0</span>.0.0:7244:7244 --rm -v <span class="token variable"><span class="token variable">$(</span><span class="token builtin class-name">pwd</span><span class="token variable">)</span></span>/conf/nats-server-C.conf:/tmp/cluster.conf nats -c /tmp/cluster.conf -p <span class="token number">9222</span> -D -V
|
||||
</code></pre>
|
||||
<h3 id="testing-the-clusters"><a name="testing-the-clusters" class="plugin-anchor" href="#testing-the-clusters"><i class="fa fa-link" aria-hidden="true"></i></a>Testing the Clusters</h3>
|
||||
<p>Now, the following should work: make a subscription to Node A then publish to Node C. You should be able to to receive the message without problems.</p>
|
||||
@@ -2729,10 +2755,10 @@ nats-pub -s <span class="token string">"nats://192.168.59.105:7222"</s
|
||||
<span class="token punctuation">[</span><span class="token comment">#1] Received on [hello] : 'world'</span>
|
||||
|
||||
<span class="token comment"># nats-server on Node C logs:</span>
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2015/06/23 05:20:31.100032 <span class="token punctuation">[</span>TRC<span class="token punctuation">]</span> 192.168.59.103:7244 - rid:2 - <span class="token operator"><<</span>- <span class="token punctuation">[</span>MSG hello RSID:8:2 5<span class="token punctuation">]</span>
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2015</span>/06/23 05:20:31.100032 <span class="token punctuation">[</span>TRC<span class="token punctuation">]</span> <span class="token number">192.168</span>.59.103:7244 - rid:2 - <span class="token operator"><<-</span> <span class="token punctuation">[</span>MSG hello RSID:8:2 <span class="token number">5</span><span class="token punctuation">]</span>
|
||||
|
||||
<span class="token comment"># nats-server on Node A logs:</span>
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2015/06/23 05:20:31.100600 <span class="token punctuation">[</span>TRC<span class="token punctuation">]</span> 10.0.2.2:51007 - cid:8 - <span class="token operator"><<</span>- <span class="token punctuation">[</span>MSG hello 2 5<span class="token punctuation">]</span>
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2015</span>/06/23 05:20:31.100600 <span class="token punctuation">[</span>TRC<span class="token punctuation">]</span> <span class="token number">10.0</span>.2.2:51007 - cid:8 - <span class="token operator"><<-</span> <span class="token punctuation">[</span>MSG hello <span class="token number">2</span> <span class="token number">5</span><span class="token punctuation">]</span>
|
||||
</code></pre>
|
||||
<h2 id="tutorial"><a name="tutorial" class="plugin-anchor" href="#tutorial"><i class="fa fa-link" aria-hidden="true"></i></a>Tutorial</h2>
|
||||
<p>See the <a href="tutorial.md">NATS Docker tutorial</a> for more instructions on using the NATS server Docker image.</p>
|
||||
@@ -2779,7 +2805,7 @@ nats-pub -s <span class="token string">"nats://192.168.59.105:7222"</s
|
||||
<script>
|
||||
var gitbook = gitbook || [];
|
||||
gitbook.push(function() {
|
||||
gitbook.page.hasChanged({"page":{"title":"NATS and Docker","level":"4.7","depth":1,"next":{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},"previous":{"title":"Configuration","level":"4.6.4.1","depth":3,"path":"sys_accounts/sys_accounts.md","ref":"sys_accounts/sys_accounts.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/README.md","mtime":"2019-06-07T16:09:25.589Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-05T21:19:53.626Z"},"basePath":"..","book":{"language":""}});
|
||||
gitbook.page.hasChanged({"page":{"title":"NATS and Docker","level":"4.7","depth":1,"next":{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},"previous":{"title":"Configuration","level":"4.6.4.1","depth":3,"path":"sys_accounts/sys_accounts.md","ref":"sys_accounts/sys_accounts.md","articles":[]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/README.md","mtime":"2019-09-23T22:49:18.485Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T22:50:08.961Z"},"basePath":"..","book":{"language":""}});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
@@ -1504,6 +1504,32 @@
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.5" data-path="../nats_tools/nsc/revocation.html">
|
||||
|
||||
<a href="../nats_tools/nsc/revocation.html">
|
||||
|
||||
|
||||
Revocation
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
<li class="chapter " data-level="5.3.6" data-path="../nats_tools/nsc/managed.html">
|
||||
|
||||
<a href="../nats_tools/nsc/managed.html">
|
||||
|
||||
|
||||
Managed Operators
|
||||
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
|
||||
|
||||
@@ -2558,7 +2584,7 @@
|
||||
<p>See <a href="http://docs.docker.com/mac/started/" target="_blank">Get Started with Docker</a> for guidance.</p>
|
||||
<p>The easiest way to run Docker is to use the <a href="http://docs.docker.com/mac/step_one/" target="_blank">Docker Toolbox</a>.</p>
|
||||
<p><strong>2. Run the nats-server Docker image.</strong></p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> docker run -p 4222:4222 -p 8222:8222 -p 6222:6222 --name nats-server -ti nats:latest
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> docker run -p <span class="token number">4222</span>:4222 -p <span class="token number">8222</span>:8222 -p <span class="token number">6222</span>:6222 --name nats-server -ti nats:latest
|
||||
</code></pre>
|
||||
<p><strong>3. Verify that the NATS server is running.</strong></p>
|
||||
<p>You should see the following:</p>
|
||||
@@ -2570,22 +2596,22 @@ Digest: sha256:47b825feb34e545317c4ad122bd1a752a3172bbbc72104fc7fb5e57cf90f79e4
|
||||
Status: Downloaded newer image <span class="token keyword">for</span> nats:latest
|
||||
</code></pre>
|
||||
<p>Followed by this, indicating that the NATS server is running:</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2019/06/01 18:34:19.605144 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version 2.0.0
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2019/06/01 18:34:19.605191 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on 0.0.0.0:8222
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2019/06/01 18:34:19.605286 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on 0.0.0.0:4222
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2019/06/01 18:34:19.605312 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Server is ready
|
||||
<span class="token punctuation">[</span>1<span class="token punctuation">]</span> 2019/06/01 18:34:19.608756 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> route connections on 0.0.0.0:6222
|
||||
<pre class="language-"><code class="lang-sh"><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2019</span>/06/01 <span class="token number">18</span>:34:19.605144 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting nats-server version <span class="token number">2.0</span>.0
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2019</span>/06/01 <span class="token number">18</span>:34:19.605191 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Starting http monitor on <span class="token number">0.0</span>.0.0:8222
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2019</span>/06/01 <span class="token number">18</span>:34:19.605286 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> client connections on <span class="token number">0.0</span>.0.0:4222
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2019</span>/06/01 <span class="token number">18</span>:34:19.605312 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Server is ready
|
||||
<span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">]</span> <span class="token number">2019</span>/06/01 <span class="token number">18</span>:34:19.608756 <span class="token punctuation">[</span>INF<span class="token punctuation">]</span> Listening <span class="token keyword">for</span> route connections on <span class="token number">0.0</span>.0.0:6222
|
||||
</code></pre>
|
||||
<p>Notice how quickly the NATS server Docker image downloads. It is a mere 6 MB in size.</p>
|
||||
<p><strong>4. Test the NATS server to verify it is running.</strong></p>
|
||||
<p>An easy way to test the client connection port is through using telnet.</p>
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> telnet localhost 4222
|
||||
<pre class="language-"><code class="lang-sh"><span class="token operator">></span> telnet localhost <span class="token number">4222</span>
|
||||
</code></pre>
|
||||
<p>Expected result:</p>
|
||||
<pre class="language-"><code class="lang-sh">Trying ::1<span class="token punctuation">..</span>.
|
||||
Connected to localhost.
|
||||
Escape character is <span class="token string">'^]'</span><span class="token keyword">.</span>
|
||||
INFO <span class="token punctuation">{</span><span class="token string">"server_id"</span><span class="token keyword">:</span><span class="token string">"NDP7NP2P2KADDDUUBUDG6VSSWKCW4IC5BQHAYVMLVAJEGZITE5XP7O5J"</span>,<span class="token string">"version"</span><span class="token keyword">:</span><span class="token string">"2.0.0"</span>,<span class="token string">"proto"</span>:1,<span class="token string">"go"</span><span class="token keyword">:</span><span class="token string">"go1.11.10"</span>,<span class="token string">"host"</span><span class="token keyword">:</span><span class="token string">"0.0.0.0"</span>,<span class="token string">"port"</span>:4222,<span class="token string">"max_payload"</span>:1048576,<span class="token string">"client_id"</span>:13249<span class="token punctuation">}</span>
|
||||
Escape character is <span class="token string">'^]'</span><span class="token builtin class-name">.</span>
|
||||
INFO <span class="token punctuation">{</span><span class="token string">"server_id"</span><span class="token builtin class-name">:</span><span class="token string">"NDP7NP2P2KADDDUUBUDG6VSSWKCW4IC5BQHAYVMLVAJEGZITE5XP7O5J"</span>,<span class="token string">"version"</span><span class="token builtin class-name">:</span><span class="token string">"2.0.0"</span>,<span class="token string">"proto"</span>:1,<span class="token string">"go"</span><span class="token builtin class-name">:</span><span class="token string">"go1.11.10"</span>,<span class="token string">"host"</span><span class="token builtin class-name">:</span><span class="token string">"0.0.0.0"</span>,<span class="token string">"port"</span>:4222,<span class="token string">"max_payload"</span>:1048576,<span class="token string">"client_id"</span>:13249<span class="token punctuation">}</span>
|
||||
</code></pre>
|
||||
<p>You can also test the monitoring endpoint, viewing <code>http://localhost:8222</code> with a browser.</p>
|
||||
|
||||
@@ -2631,7 +2657,7 @@ INFO <span class="token punctuation">{</span><span class="token string">"se
|
||||
<script>
|
||||
var gitbook = gitbook || [];
|
||||
gitbook.push(function() {
|
||||
gitbook.page.hasChanged({"page":{"title":"Tutorial","level":"4.7.1","depth":2,"next":{"title":"Docker Swarm","level":"4.7.2","depth":2,"path":"nats_docker/docker_swarm.md","ref":"nats_docker/docker_swarm.md","articles":[]},"previous":{"title":"NATS and Docker","level":"4.7","depth":1,"path":"nats_docker/README.md","ref":"nats_docker/README.md","articles":[{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},{"title":"Docker Swarm","level":"4.7.2","depth":2,"path":"nats_docker/docker_swarm.md","ref":"nats_docker/docker_swarm.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/nats-docker-tutorial.md","mtime":"2019-06-25T14:14:34.660Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-05T21:19:53.626Z"},"basePath":"..","book":{"language":""}});
|
||||
gitbook.page.hasChanged({"page":{"title":"Tutorial","level":"4.7.1","depth":2,"next":{"title":"Docker Swarm","level":"4.7.2","depth":2,"path":"nats_docker/docker_swarm.md","ref":"nats_docker/docker_swarm.md","articles":[]},"previous":{"title":"NATS and Docker","level":"4.7","depth":1,"path":"nats_docker/README.md","ref":"nats_docker/README.md","articles":[{"title":"Tutorial","level":"4.7.1","depth":2,"path":"nats_docker/nats-docker-tutorial.md","ref":"nats_docker/nats-docker-tutorial.md","articles":[]},{"title":"Docker Swarm","level":"4.7.2","depth":2,"path":"nats_docker/docker_swarm.md","ref":"nats_docker/docker_swarm.md","articles":[]}]},"dir":"ltr"},"config":{"plugins":["prism","-sharing","-highlight","include-html","toggle-chapters","anchors","edit-link"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"prism":{"lang":{"ascii":"markup","text":"markup"}},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"include-html":{},"fontsettings":{"theme":"white","family":"sans","size":2},"edit-link":{"label":"edit","base":"https://github.com/nats-io/docs/edit/master"},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false},"anchors":{},"toggle-chapters":{}},"theme":"default","author":"The NATS Maintainers","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"NATS","gitbook":"*","description":"Administrative, developer and conceptual documentation for the NATS messaging system."},"file":{"path":"nats_docker/nats-docker-tutorial.md","mtime":"2019-09-23T22:49:18.485Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-09-23T22:50:08.961Z"},"basePath":"..","book":{"language":""}});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user