1
0
mirror of https://github.com/taigrr/nats.docs synced 2025-01-18 04:03:23 -08:00

GitBook: [master] 6 pages and 10 assets modified

This commit is contained in:
Ginger Collison 2020-12-14 18:44:03 +00:00 committed by gitbook-bot
parent e52dcd9682
commit 9f2fec4dfb
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
16 changed files with 29 additions and 785 deletions

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: nats Pages: 1 -->
<svg width="296pt" height="171pt"
viewBox="0.00 0.00 296.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 167)">
<title>nats</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-167 292,-167 292,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<polygon fill="none" stroke="#000000" points="4.3018,-118.5 4.3018,-162.5 111.6982,-162.5 111.6982,-118.5 4.3018,-118.5"/>
<text text-anchor="middle" x="58" y="-147.3" font-family="Times,serif" font-size="14.00" fill="#000000">Application 1</text>
<polyline fill="none" stroke="#000000" points="4.3018,-140.5 111.6982,-140.5 "/>
<text text-anchor="middle" x="58" y="-125.3" font-family="Times,serif" font-size="14.00" fill="#000000">NATS Publisher</text>
</g>
<!-- natsserver -->
<g id="node3" class="node">
<title>natsserver</title>
<polygon fill="none" stroke="#000000" points="288,-82 0,-82 0,-81 288,-81 288,-82"/>
</g>
<!-- publisher&#45;&#45;natsserver -->
<g id="edge1" class="edge">
<title>publisher:nats&#45;&#45;natsserver</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M58,-118.3672C58,-105.5168 58,-85.6791 58,-82.0725"/>
</g>
<!-- application -->
<g id="node2" class="node">
<title>application</title>
<polygon fill="none" stroke="#000000" points="183.7017,-118.5 183.7017,-162.5 276.2983,-162.5 276.2983,-118.5 183.7017,-118.5"/>
<text text-anchor="middle" x="230" y="-147.3" font-family="Times,serif" font-size="14.00" fill="#000000">Application 3</text>
<polyline fill="none" stroke="#000000" points="183.7017,-140.5 276.2983,-140.5 "/>
<text text-anchor="middle" x="230" y="-125.3" font-family="Times,serif" font-size="14.00" fill="#000000"> </text>
</g>
<!-- application&#45;&#45;natsserver -->
<g id="edge2" class="edge">
<title>application:nats&#45;&#45;natsserver</title>
<path fill="none" stroke="#000000" d="M230,-118.3672C230,-105.5168 230,-85.6791 230,-82.0725"/>
</g>
<!-- subscriber -->
<g id="node4" class="node">
<title>subscriber</title>
<polygon fill="none" stroke="#000000" points="86.8086,-.5 86.8086,-44.5 201.1914,-44.5 201.1914,-.5 86.8086,-.5"/>
<text text-anchor="middle" x="144" y="-29.3" font-family="Times,serif" font-size="14.00" fill="#000000">NATS Subscriber</text>
<polyline fill="none" stroke="#000000" points="86.8086,-22.5 201.1914,-22.5 "/>
<text text-anchor="middle" x="144" y="-7.3" font-family="Times,serif" font-size="14.00" fill="#000000">Application 2</text>
</g>
<!-- natsserver&#45;&#45;subscriber -->
<g id="edge3" class="edge">
<title>natsserver&#45;&#45;subscriber:nats</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M144,-80.9609C144,-80.9609 144,-54.7842 144,-54.7842"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="147.5001,-54.7842 144,-44.7842 140.5001,-54.7842 147.5001,-54.7842"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -1,95 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: nats_pub_sub Pages: 1 -->
<svg width="584pt" height="188pt"
viewBox="0.00 0.00 584.00 188.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 184)">
<title>nats_pub_sub</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-184 580,-184 580,4 -4,4"/>
<!-- sub1 -->
<g id="node1" class="node">
<title>sub1</title>
<polygon fill="none" stroke="#000000" points="170.1559,-180 79.8441,-180 79.8441,-144 170.1559,-144 170.1559,-180"/>
<text text-anchor="middle" x="125" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB</text>
<text text-anchor="middle" x="125" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">com.msg.one</text>
</g>
<!-- pub1 -->
<g id="node2" class="node">
<title>pub1</title>
<polygon fill="none" stroke="#000000" points="333.1559,-180 242.8441,-180 242.8441,-144 333.1559,-144 333.1559,-180"/>
<text text-anchor="middle" x="288" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">PUB</text>
<text text-anchor="middle" x="288" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">com.msg.one</text>
</g>
<!-- natsserver -->
<g id="node4" class="node">
<title>natsserver</title>
<polygon fill="none" stroke="#000000" points="576,-108 0,-108 0,-72 576,-72 576,-108"/>
<text text-anchor="middle" x="288" y="-85.8" font-family="Times,serif" font-size="14.00" fill="#000000">NATS</text>
</g>
<!-- pub1&#45;&gt;natsserver -->
<g id="edge1" class="edge">
<title>pub1&#45;&gt;natsserver</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M288,-143.8314C288,-143.8314 288,-118.4133 288,-118.4133"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="291.5001,-118.4132 288,-108.4133 284.5001,-118.4133 291.5001,-118.4132"/>
</g>
<!-- non_active -->
<g id="node3" class="node">
<title>non_active</title>
<polygon fill="none" stroke="#000000" points="487.0899,-180 404.9101,-180 404.9101,-144 487.0899,-144 487.0899,-180"/>
<text text-anchor="middle" x="446" y="-164.8" font-family="Times,serif" font-size="14.00" fill="#000000">Non&#45;Active</text>
<text text-anchor="middle" x="446" y="-150.8" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- natsserver&#45;&gt;sub1 -->
<g id="edge2" class="edge">
<title>natsserver&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M125,-108.1686C125,-108.1686 125,-133.5867 125,-133.5867"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="121.5001,-133.5867 125,-143.5867 128.5001,-133.5868 121.5001,-133.5867"/>
</g>
<!-- natsserver&#45;&gt;non_active -->
<g id="edge3" class="edge">
<title>natsserver&#45;&gt;non_active</title>
<path fill="none" stroke="#ff0000" stroke-dasharray="5,2" d="M446,-108.1686C446,-119 446,-132.7124 446,-143.5867"/>
</g>
<!-- sub2 -->
<g id="node5" class="node">
<title>sub2</title>
<polygon fill="none" stroke="#000000" points="170.1559,-36 79.8441,-36 79.8441,0 170.1559,0 170.1559,-36"/>
<text text-anchor="middle" x="125" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB</text>
<text text-anchor="middle" x="125" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">com.msg.one</text>
</g>
<!-- natsserver&#45;&gt;sub2 -->
<g id="edge4" class="edge">
<title>natsserver&#45;&gt;sub2</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M125,-71.8314C125,-71.8314 125,-46.4133 125,-46.4133"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="128.5001,-46.4132 125,-36.4133 121.5001,-46.4133 128.5001,-46.4132"/>
</g>
<!-- sub3 -->
<g id="node6" class="node">
<title>sub3</title>
<polygon fill="none" stroke="#000000" points="333.9425,-36 242.0575,-36 242.0575,0 333.9425,0 333.9425,-36"/>
<text text-anchor="middle" x="288" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB</text>
<text text-anchor="middle" x="288" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">com.msg.two</text>
</g>
<!-- natsserver&#45;&gt;sub3 -->
<g id="edge5" class="edge">
<title>natsserver&#45;&gt;sub3</title>
<path fill="none" stroke="#ff0000" stroke-dasharray="5,2" d="M288,-71.8314C288,-61 288,-47.2876 288,-36.4133"/>
</g>
<!-- sub4 -->
<g id="node7" class="node">
<title>sub4</title>
<polygon fill="none" stroke="#000000" points="482.9427,-36 405.0573,-36 405.0573,0 482.9427,0 482.9427,-36"/>
<text text-anchor="middle" x="444" y="-20.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB</text>
<text text-anchor="middle" x="444" y="-6.8" font-family="Times,serif" font-size="14.00" fill="#000000">com.msg.*</text>
</g>
<!-- natsserver&#45;&gt;sub4 -->
<g id="edge6" class="edge">
<title>natsserver&#45;&gt;sub4</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M444,-71.8314C444,-71.8314 444,-46.4133 444,-46.4133"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="447.5001,-46.4132 444,-36.4133 440.5001,-46.4133 447.5001,-46.4132"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: nats_queues Pages: 1 -->
<svg width="385pt" height="152pt"
viewBox="0.00 0.00 385.26 152.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148)">
<title>nats_queues</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148 381.2638,-148 381.2638,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M56.8346,-90C56.8346,-90 12.0551,-90 12.0551,-90 6.0551,-90 .0551,-84 .0551,-78 .0551,-78 .0551,-66 .0551,-66 .0551,-60 6.0551,-54 12.0551,-54 12.0551,-54 56.8346,-54 56.8346,-54 62.8346,-54 68.8346,-60 68.8346,-66 68.8346,-66 68.8346,-78 68.8346,-78 68.8346,-84 62.8346,-90 56.8346,-90"/>
<text text-anchor="middle" x="34.4448" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">Publisher</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="198.3628" cy="-72" rx="33.3752" ry="33.3752"/>
<text text-anchor="middle" x="198.3628" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">Queue</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M69.2076,-72C94.18,-72 128.0202,-72 154.797,-72"/>
<polygon fill="#000000" stroke="#000000" points="155.0496,-75.5001 165.0496,-72 155.0496,-68.5001 155.0496,-75.5001"/>
<text text-anchor="middle" x="117.0327" y="-74.8" font-family="Times,serif" font-size="14.00" fill="#000000">msgs 1,2,3</text>
</g>
<!-- sub1 -->
<g id="node3" class="node">
<title>sub1</title>
<path fill="none" stroke="#000000" d="M365.2019,-144C365.2019,-144 313.4497,-144 313.4497,-144 307.4497,-144 301.4497,-138 301.4497,-132 301.4497,-132 301.4497,-120 301.4497,-120 301.4497,-114 307.4497,-108 313.4497,-108 313.4497,-108 365.2019,-108 365.2019,-108 371.2019,-108 377.2019,-114 377.2019,-120 377.2019,-120 377.2019,-132 377.2019,-132 377.2019,-138 371.2019,-144 365.2019,-144"/>
<text text-anchor="middle" x="339.3258" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub1 -->
<g id="edge2" class="edge">
<title>subject&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" d="M229.6471,-83.9844C247.9227,-90.9854 271.3539,-99.9614 291.8636,-107.8182"/>
<polygon fill="#000000" stroke="#000000" points="290.7658,-111.1457 301.3562,-111.4546 293.27,-104.6089 290.7658,-111.1457"/>
<text text-anchor="middle" x="266.4688" y="-105.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg 2</text>
</g>
<!-- sub2 -->
<g id="node4" class="node">
<title>sub2</title>
<path fill="none" stroke="#000000" d="M365.2019,-90C365.2019,-90 313.4497,-90 313.4497,-90 307.4497,-90 301.4497,-84 301.4497,-78 301.4497,-78 301.4497,-66 301.4497,-66 301.4497,-60 307.4497,-54 313.4497,-54 313.4497,-54 365.2019,-54 365.2019,-54 371.2019,-54 377.2019,-60 377.2019,-66 377.2019,-66 377.2019,-78 377.2019,-78 377.2019,-84 371.2019,-90 365.2019,-90"/>
<text text-anchor="middle" x="339.3258" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub2 -->
<g id="edge3" class="edge">
<title>subject&#45;&gt;sub2</title>
<path fill="none" stroke="#000000" d="M231.7691,-72C249.5052,-72 271.6202,-72 291.1768,-72"/>
<polygon fill="#000000" stroke="#000000" points="291.433,-75.5001 301.433,-72 291.4329,-68.5001 291.433,-75.5001"/>
<text text-anchor="middle" x="266.4688" y="-74.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg 1</text>
</g>
<!-- sub3 -->
<g id="node5" class="node">
<title>sub3</title>
<path fill="none" stroke="#000000" d="M365.2019,-36C365.2019,-36 313.4497,-36 313.4497,-36 307.4497,-36 301.4497,-30 301.4497,-24 301.4497,-24 301.4497,-12 301.4497,-12 301.4497,-6 307.4497,0 313.4497,0 313.4497,0 365.2019,0 365.2019,0 371.2019,0 377.2019,-6 377.2019,-12 377.2019,-12 377.2019,-24 377.2019,-24 377.2019,-30 371.2019,-36 365.2019,-36"/>
<text text-anchor="middle" x="339.3258" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub3 -->
<g id="edge4" class="edge">
<title>subject&#45;&gt;sub3</title>
<path fill="none" stroke="#000000" d="M229.6471,-60.0156C247.9227,-53.0146 271.3539,-44.0386 291.8636,-36.1818"/>
<polygon fill="#000000" stroke="#000000" points="293.27,-39.3911 301.3562,-32.5454 290.7658,-32.8543 293.27,-39.3911"/>
<text text-anchor="middle" x="266.4688" y="-53.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg 3</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: nats_request_reply Pages: 1 -->
<svg width="359pt" height="195pt"
viewBox="0.00 0.00 358.71 195.23" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 191.231)">
<title>nats_request_reply</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-191.231 354.7072,-191.231 354.7072,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M56.8346,-49.231C56.8346,-49.231 12.0551,-49.231 12.0551,-49.231 6.0551,-49.231 .0551,-43.231 .0551,-37.231 .0551,-37.231 .0551,-25.231 .0551,-25.231 .0551,-19.231 6.0551,-13.231 12.0551,-13.231 12.0551,-13.231 56.8346,-13.231 56.8346,-13.231 62.8346,-13.231 68.8346,-19.231 68.8346,-25.231 68.8346,-25.231 68.8346,-37.231 68.8346,-37.231 68.8346,-43.231 62.8346,-49.231 56.8346,-49.231"/>
<text text-anchor="middle" x="34.4448" y="-27.031" font-family="Times,serif" font-size="14.00" fill="#000000">Publisher</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="171.8604" cy="-117.231" rx="36.7663" ry="36.7663"/>
<text text-anchor="middle" x="171.8604" y="-113.031" font-family="Times,serif" font-size="14.00" fill="#000000">Subject</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M63.2516,-49.2594C83.2612,-61.7822 110.1803,-78.6291 132.2123,-92.4176"/>
<polygon fill="#000000" stroke="#000000" points="130.3666,-95.3914 140.7002,-97.7297 134.0802,-89.4576 130.3666,-95.3914"/>
<text text-anchor="middle" x="102.0586" y="-85.031" font-family="Times,serif" font-size="14.00" fill="#000000">msg1</text>
</g>
<!-- reply -->
<g id="node3" class="node">
<title>reply</title>
<ellipse fill="none" stroke="#000000" cx="171.8604" cy="-31.231" rx="31.4636" ry="31.4636"/>
<text text-anchor="middle" x="171.8604" y="-27.031" font-family="Times,serif" font-size="14.00" fill="#000000">Reply</text>
</g>
<!-- publisher&#45;&gt;reply -->
<!-- sub1 -->
<g id="node4" class="node">
<title>sub1</title>
<path fill="none" stroke="#000000" d="M338.6453,-187.231C338.6453,-187.231 286.8931,-187.231 286.8931,-187.231 280.8931,-187.231 274.8931,-181.231 274.8931,-175.231 274.8931,-175.231 274.8931,-163.231 274.8931,-163.231 274.8931,-157.231 280.8931,-151.231 286.8931,-151.231 286.8931,-151.231 338.6453,-151.231 338.6453,-151.231 344.6453,-151.231 350.6453,-157.231 350.6453,-163.231 350.6453,-163.231 350.6453,-175.231 350.6453,-175.231 350.6453,-181.231 344.6453,-187.231 338.6453,-187.231"/>
<text text-anchor="middle" x="312.7692" y="-165.031" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub1 -->
<g id="edge4" class="edge">
<title>subject&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M206.3306,-129.9516C224.0345,-136.4849 245.8822,-144.5474 265.1678,-151.6645"/>
<polygon fill="#000000" stroke="#000000" points="264.0976,-155.0002 274.691,-155.1788 266.5211,-148.4331 264.0976,-155.0002"/>
<text text-anchor="middle" x="241.6623" y="-150.031" font-family="Times,serif" font-size="14.00" fill="#000000">msg1</text>
</g>
<!-- sub2 -->
<g id="node5" class="node">
<title>sub2</title>
<path fill="none" stroke="#000000" d="M338.6453,-133.231C338.6453,-133.231 286.8931,-133.231 286.8931,-133.231 280.8931,-133.231 274.8931,-127.231 274.8931,-121.231 274.8931,-121.231 274.8931,-109.231 274.8931,-109.231 274.8931,-103.231 280.8931,-97.231 286.8931,-97.231 286.8931,-97.231 338.6453,-97.231 338.6453,-97.231 344.6453,-97.231 350.6453,-103.231 350.6453,-109.231 350.6453,-109.231 350.6453,-121.231 350.6453,-121.231 350.6453,-127.231 344.6453,-133.231 338.6453,-133.231"/>
<text text-anchor="middle" x="312.7692" y="-111.031" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub2 -->
<g id="edge5" class="edge">
<title>subject&#45;&gt;sub2</title>
<path fill="none" stroke="#000000" stroke-dasharray="1,5" d="M208.5147,-116.7107C225.6358,-116.4677 246.2469,-116.1751 264.6064,-115.9146"/>
<polygon fill="#000000" stroke="#000000" points="264.8751,-119.4112 274.8243,-115.7695 264.7756,-112.4119 264.8751,-119.4112"/>
<text text-anchor="middle" x="241.6623" y="-119.031" font-family="Times,serif" font-size="14.00" fill="#000000">msg1</text>
</g>
<!-- sub3 -->
<g id="node6" class="node">
<title>sub3</title>
<path fill="none" stroke="#000000" d="M338.6453,-49.231C338.6453,-49.231 286.8931,-49.231 286.8931,-49.231 280.8931,-49.231 274.8931,-43.231 274.8931,-37.231 274.8931,-37.231 274.8931,-25.231 274.8931,-25.231 274.8931,-19.231 280.8931,-13.231 286.8931,-13.231 286.8931,-13.231 338.6453,-13.231 338.6453,-13.231 344.6453,-13.231 350.6453,-19.231 350.6453,-25.231 350.6453,-25.231 350.6453,-37.231 350.6453,-37.231 350.6453,-43.231 344.6453,-49.231 338.6453,-49.231"/>
<text text-anchor="middle" x="312.7692" y="-27.031" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub3 -->
<g id="edge6" class="edge">
<title>subject&#45;&gt;sub3</title>
<path fill="none" stroke="#000000" d="M203.1327,-98.1448C224.1767,-85.3011 252.059,-68.2838 274.4388,-54.6249"/>
<polygon fill="#000000" stroke="#000000" points="276.3189,-57.5779 283.0314,-49.3807 272.6722,-51.6028 276.3189,-57.5779"/>
<text text-anchor="middle" x="241.6623" y="-85.031" font-family="Times,serif" font-size="14.00" fill="#000000">msg1</text>
</g>
<!-- reply&#45;&gt;publisher -->
<g id="edge8" class="edge">
<title>reply&#45;&gt;publisher</title>
<path fill="none" stroke="#000000" d="M140.9468,-36.9759C122.7803,-38.0548 99.4966,-38.2651 79.3354,-37.6068"/>
<polygon fill="#000000" stroke="#000000" points="79.257,-34.1006 69.1206,-37.1834 78.967,-41.0946 79.257,-34.1006"/>
</g>
<!-- reply&#45;&gt;sub3 -->
<!-- sub3&#45;&gt;reply -->
<g id="edge7" class="edge">
<title>sub3&#45;&gt;reply</title>
<path fill="none" stroke="#000000" d="M274.891,-37.2937C255.7517,-38.1623 232.4997,-38.2075 212.9317,-37.4295"/>
<polygon fill="#000000" stroke="#000000" points="212.9434,-33.926 202.7835,-36.9303 212.5994,-40.9175 212.9434,-33.926"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1,59 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: nats_pub_sub Pages: 1 -->
<svg width="405pt" height="81pt"
viewBox="0.00 0.00 404.56 81.27" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 77.2658)">
<title>nats_pub_sub</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-77.2658 400.5627,-77.2658 400.5627,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M56.8346,-54.6329C56.8346,-54.6329 12.0551,-54.6329 12.0551,-54.6329 6.0551,-54.6329 .0551,-48.6329 .0551,-42.6329 .0551,-42.6329 .0551,-30.6329 .0551,-30.6329 .0551,-24.6329 6.0551,-18.6329 12.0551,-18.6329 12.0551,-18.6329 56.8346,-18.6329 56.8346,-18.6329 62.8346,-18.6329 68.8346,-24.6329 68.8346,-30.6329 68.8346,-30.6329 68.8346,-42.6329 68.8346,-42.6329 68.8346,-48.6329 62.8346,-54.6329 56.8346,-54.6329"/>
<text text-anchor="middle" x="34.4448" y="-32.4329" font-family="Times,serif" font-size="14.00" fill="#000000">Publisher</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="194.7882" cy="-36.6329" rx="36.7663" ry="36.7663"/>
<text text-anchor="middle" x="194.7882" y="-32.4329" font-family="Times,serif" font-size="14.00" fill="#000000">Subject</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M68.8499,-47.9423C74.8047,-49.4755 80.9813,-50.8046 86.8896,-51.6329 110.334,-54.9197 116.6938,-54.7952 140.1553,-51.6329 143.372,-51.1993 146.6673,-50.6283 149.9674,-49.9624"/>
<polygon fill="#000000" stroke="#000000" points="150.8343,-53.3547 159.8083,-47.723 149.281,-46.5292 150.8343,-53.3547"/>
<text text-anchor="middle" x="113.5225" y="-56.4329" font-family="Times,serif" font-size="14.00" fill="#000000">updates.1</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge2" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M68.8497,-34.383C74.8603,-34.0705 81.0553,-33.7996 86.8896,-33.6329 110.5536,-32.9566 116.4906,-32.9837 140.1553,-33.6329 142.6894,-33.7024 145.2889,-33.7901 147.9126,-33.8913"/>
<polygon fill="#000000" stroke="#000000" points="147.9206,-37.3949 158.0652,-34.3393 148.2293,-30.4017 147.9206,-37.3949"/>
<text text-anchor="middle" x="113.5225" y="-36.4329" font-family="Times,serif" font-size="14.00" fill="#000000">updates.2</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge3" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M69.0978,-19.8534C74.9167,-17.6923 80.9851,-15.8212 86.8896,-14.6329 110.0979,-9.9622 116.914,-10.1291 140.1553,-14.6329 144.0529,-15.3882 148.0251,-16.4205 151.9594,-17.6284"/>
<polygon fill="#000000" stroke="#000000" points="151.0028,-21.0003 161.5974,-20.9347 153.2743,-14.3791 151.0028,-21.0003"/>
<text text-anchor="middle" x="113.5225" y="-17.4329" font-family="Times,serif" font-size="14.00" fill="#000000">updates.3</text>
</g>
<!-- sub -->
<g id="node3" class="node">
<title>sub</title>
<path fill="none" stroke="#000000" d="M384.5008,-54.6329C384.5008,-54.6329 332.7486,-54.6329 332.7486,-54.6329 326.7486,-54.6329 320.7486,-48.6329 320.7486,-42.6329 320.7486,-42.6329 320.7486,-30.6329 320.7486,-30.6329 320.7486,-24.6329 326.7486,-18.6329 332.7486,-18.6329 332.7486,-18.6329 384.5008,-18.6329 384.5008,-18.6329 390.5008,-18.6329 396.5008,-24.6329 396.5008,-30.6329 396.5008,-30.6329 396.5008,-42.6329 396.5008,-42.6329 396.5008,-48.6329 390.5008,-54.6329 384.5008,-54.6329"/>
<text text-anchor="middle" x="358.6247" y="-32.4329" font-family="Times,serif" font-size="14.00" fill="#000000">Subscriber</text>
</g>
<!-- subject&#45;&gt;sub -->
<g id="edge4" class="edge">
<title>subject&#45;&gt;sub</title>
<path fill="none" stroke="#000000" d="M231.5563,-36.6329C254.8568,-36.6329 285.2447,-36.6329 310.4609,-36.6329"/>
<polygon fill="#000000" stroke="#000000" points="310.557,-40.133 320.557,-36.6329 310.557,-33.133 310.557,-40.133"/>
<text text-anchor="middle" x="276.0539" y="-39.4329" font-family="Times,serif" font-size="14.00" fill="#000000">updates.*</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: g Pages: 1 -->
<svg width="374pt" height="98pt"
viewBox="0.00 0.00 373.81 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>g</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-94 369.8066,-94 369.8066,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M75.3492,-63C75.3492,-63 12.2162,-63 12.2162,-63 6.2162,-63 .2162,-57 .2162,-51 .2162,-51 .2162,-39 .2162,-39 .2162,-33 6.2162,-27 12.2162,-27 12.2162,-27 75.3492,-27 75.3492,-27 81.3492,-27 87.3492,-33 87.3492,-39 87.3492,-39 87.3492,-51 87.3492,-51 87.3492,-57 81.3492,-63 75.3492,-63"/>
<text text-anchor="middle" x="43.7827" y="-40.8" font-family="Times,serif" font-size="14.00" fill="#000000">PUB time.us</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="182.9033" cy="-45" rx="36" ry="36"/>
<text text-anchor="middle" x="182.9033" y="-40.8" font-family="Times,serif" font-size="14.00" fill="#000000">nats&#45;server</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M87.4196,-45C103.1079,-45 120.8492,-45 136.7449,-45"/>
<polygon fill="#000000" stroke="#000000" points="136.8841,-48.5001 146.8841,-45 136.884,-41.5001 136.8841,-48.5001"/>
<text text-anchor="middle" x="117.2344" y="-47.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub1 -->
<g id="node3" class="node">
<title>sub1</title>
<path fill="none" stroke="#000000" d="M353.5904,-90C353.5904,-90 290.4574,-90 290.4574,-90 284.4574,-90 278.4574,-84 278.4574,-78 278.4574,-78 278.4574,-66 278.4574,-66 278.4574,-60 284.4574,-54 290.4574,-54 290.4574,-54 353.5904,-54 353.5904,-54 359.5904,-54 365.5904,-60 365.5904,-66 365.5904,-66 365.5904,-78 365.5904,-78 365.5904,-84 359.5904,-90 353.5904,-90"/>
<text text-anchor="middle" x="322.0239" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us</text>
</g>
<!-- subject&#45;&gt;sub1 -->
<g id="edge2" class="edge">
<title>subject&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" d="M218.3693,-51.8831C233.5027,-54.8201 251.4966,-58.3123 268.2103,-61.5561"/>
<polygon fill="#000000" stroke="#000000" points="267.9309,-65.0671 278.4146,-63.5365 269.2646,-58.1953 267.9309,-65.0671"/>
<text text-anchor="middle" x="248.5723" y="-61.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub2 -->
<g id="node4" class="node">
<title>sub2</title>
<path fill="none" stroke="#000000" d="M353.5904,-36C353.5904,-36 290.4574,-36 290.4574,-36 284.4574,-36 278.4574,-30 278.4574,-24 278.4574,-24 278.4574,-12 278.4574,-12 278.4574,-6 284.4574,0 290.4574,0 290.4574,0 353.5904,0 353.5904,0 359.5904,0 365.5904,-6 365.5904,-12 365.5904,-12 365.5904,-24 365.5904,-24 365.5904,-30 359.5904,-36 353.5904,-36"/>
<text text-anchor="middle" x="322.0239" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us</text>
</g>
<!-- subject&#45;&gt;sub2 -->
<g id="edge3" class="edge">
<title>subject&#45;&gt;sub2</title>
<path fill="none" stroke="#000000" d="M218.3693,-38.1169C233.5027,-35.1799 251.4966,-31.6877 268.2103,-28.4439"/>
<polygon fill="#000000" stroke="#000000" points="269.2646,-31.8047 278.4146,-26.4635 267.9309,-24.9329 269.2646,-31.8047"/>
<text text-anchor="middle" x="248.5723" y="-35.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,58 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: g Pages: 1 -->
<svg width="424pt" height="98pt"
viewBox="0.00 0.00 424.34 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>g</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-94 420.3379,-94 420.3379,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M100.7467,-63C100.7467,-63 12.0843,-63 12.0843,-63 6.0843,-63 .0843,-57 .0843,-51 .0843,-51 .0843,-39 .0843,-39 .0843,-33 6.0843,-27 12.0843,-27 12.0843,-27 100.7467,-27 100.7467,-27 106.7467,-27 112.7467,-33 112.7467,-39 112.7467,-39 112.7467,-51 112.7467,-51 112.7467,-57 106.7467,-63 100.7467,-63"/>
<text text-anchor="middle" x="56.4155" y="-40.8" font-family="Times,serif" font-size="14.00" fill="#000000">PUB time.us.east</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="208.1689" cy="-45" rx="36" ry="36"/>
<text text-anchor="middle" x="208.1689" y="-40.8" font-family="Times,serif" font-size="14.00" fill="#000000">nats&#45;server</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M112.9229,-45C128.9445,-45 146.2009,-45 161.5658,-45"/>
<polygon fill="#000000" stroke="#000000" points="161.8625,-48.5001 171.8624,-45 161.8624,-41.5001 161.8625,-48.5001"/>
<text text-anchor="middle" x="142.5" y="-47.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub1 -->
<g id="node3" class="node">
<title>sub1</title>
<path fill="none" stroke="#000000" d="M401.8059,-90C401.8059,-90 318.0389,-90 318.0389,-90 312.0389,-90 306.0389,-84 306.0389,-78 306.0389,-78 306.0389,-66 306.0389,-66 306.0389,-60 312.0389,-54 318.0389,-54 318.0389,-54 401.8059,-54 401.8059,-54 407.8059,-54 413.8059,-60 413.8059,-66 413.8059,-66 413.8059,-78 413.8059,-78 413.8059,-84 407.8059,-90 401.8059,-90"/>
<text text-anchor="middle" x="359.9224" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.*.east</text>
</g>
<!-- subject&#45;&gt;sub1 -->
<g id="edge2" class="edge">
<title>subject&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" d="M243.7484,-51.3303C259.4187,-54.1184 278.3195,-57.4812 296.2807,-60.6769"/>
<polygon fill="#000000" stroke="#000000" points="295.6776,-64.1244 306.1361,-62.4303 296.9039,-57.2327 295.6776,-64.1244"/>
<text text-anchor="middle" x="273.8379" y="-60.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub2 -->
<g id="node4" class="node">
<title>sub2</title>
<path fill="none" stroke="#000000" d="M404.2535,-36C404.2535,-36 315.5912,-36 315.5912,-36 309.5912,-36 303.5912,-30 303.5912,-24 303.5912,-24 303.5912,-12 303.5912,-12 303.5912,-6 309.5912,0 315.5912,0 315.5912,0 404.2535,0 404.2535,0 410.2535,0 416.2535,-6 416.2535,-12 416.2535,-12 416.2535,-24 416.2535,-24 416.2535,-30 410.2535,-36 404.2535,-36"/>
<text text-anchor="middle" x="359.9224" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us.east</text>
</g>
<!-- subject&#45;&gt;sub2 -->
<g id="edge3" class="edge">
<title>subject&#45;&gt;sub2</title>
<path fill="none" stroke="#000000" d="M243.7484,-38.6697C258.6145,-36.0247 276.388,-32.8624 293.5086,-29.8163"/>
<polygon fill="#000000" stroke="#000000" points="294.2543,-33.2387 303.4866,-28.0411 293.0281,-26.347 294.2543,-33.2387"/>
<text text-anchor="middle" x="273.8379" y="-36.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
-->
<!-- Title: g Pages: 1 -->
<svg width="506pt" height="152pt"
viewBox="0.00 0.00 505.96 152.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148)">
<title>g</title>
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-148 501.959,-148 501.959,4 -4,4"/>
<!-- publisher -->
<g id="node1" class="node">
<title>publisher</title>
<path fill="none" stroke="#000000" d="M141.4628,-90C141.4628,-90 12.1788,-90 12.1788,-90 6.1788,-90 .1788,-84 .1788,-78 .1788,-78 .1788,-66 .1788,-66 .1788,-60 6.1788,-54 12.1788,-54 12.1788,-54 141.4628,-54 141.4628,-54 147.4628,-54 153.4628,-60 153.4628,-66 153.4628,-66 153.4628,-78 153.4628,-78 153.4628,-84 147.4628,-90 141.4628,-90"/>
<text text-anchor="middle" x="76.8208" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">PUB time.us.east.atlanta</text>
</g>
<!-- subject -->
<g id="node2" class="node">
<title>subject</title>
<ellipse fill="none" stroke="#000000" cx="248.9795" cy="-72" rx="36" ry="36"/>
<text text-anchor="middle" x="248.9795" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">nats&#45;server</text>
</g>
<!-- publisher&#45;&gt;subject -->
<g id="edge1" class="edge">
<title>publisher&#45;&gt;subject</title>
<path fill="none" stroke="#000000" d="M153.5855,-72C170.3418,-72 187.5746,-72 202.7037,-72"/>
<polygon fill="#000000" stroke="#000000" points="202.8099,-75.5001 212.8099,-72 202.8098,-68.5001 202.8099,-75.5001"/>
<text text-anchor="middle" x="183.3105" y="-74.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub1 -->
<g id="node3" class="node">
<title>sub1</title>
<path fill="none" stroke="#000000" d="M485.7802,-144C485.7802,-144 356.4962,-144 356.4962,-144 350.4962,-144 344.4962,-138 344.4962,-132 344.4962,-132 344.4962,-120 344.4962,-120 344.4962,-114 350.4962,-108 356.4962,-108 356.4962,-108 485.7802,-108 485.7802,-108 491.7802,-108 497.7802,-114 497.7802,-120 497.7802,-120 497.7802,-132 497.7802,-132 497.7802,-138 491.7802,-144 485.7802,-144"/>
<text text-anchor="middle" x="421.1382" y="-121.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us.east.atlanta</text>
</g>
<!-- subject&#45;&gt;sub1 -->
<g id="edge3" class="edge">
<title>subject&#45;&gt;sub1</title>
<path fill="none" stroke="#000000" d="M283.4046,-82.7979C303.5855,-89.1279 329.7773,-97.3434 353.8947,-104.9081"/>
<polygon fill="#000000" stroke="#000000" points="353.1348,-108.3379 363.724,-107.9912 355.2299,-101.6587 353.1348,-108.3379"/>
<text text-anchor="middle" x="314.6484" y="-97.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
<!-- sub2 -->
<g id="node4" class="node">
<title>sub2</title>
<path fill="none" stroke="#000000" d="M458.2036,-90C458.2036,-90 384.0727,-90 384.0727,-90 378.0727,-90 372.0727,-84 372.0727,-78 372.0727,-78 372.0727,-66 372.0727,-66 372.0727,-60 378.0727,-54 384.0727,-54 384.0727,-54 458.2036,-54 458.2036,-54 464.2036,-54 470.2036,-60 470.2036,-66 470.2036,-66 470.2036,-78 470.2036,-78 470.2036,-84 464.2036,-90 458.2036,-90"/>
<text text-anchor="middle" x="421.1382" y="-67.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us.*</text>
</g>
<!-- subject&#45;&gt;sub2 -->
<!-- sub3 -->
<g id="node5" class="node">
<title>sub3</title>
<path fill="none" stroke="#000000" d="M458.5991,-36C458.5991,-36 383.6772,-36 383.6772,-36 377.6772,-36 371.6772,-30 371.6772,-24 371.6772,-24 371.6772,-12 371.6772,-12 371.6772,-6 377.6772,0 383.6772,0 383.6772,0 458.5991,0 458.5991,0 464.5991,0 470.5991,-6 470.5991,-12 470.5991,-12 470.5991,-24 470.5991,-24 470.5991,-30 464.5991,-36 458.5991,-36"/>
<text text-anchor="middle" x="421.1382" y="-13.8" font-family="Times,serif" font-size="14.00" fill="#000000">SUB time.us.&gt;</text>
</g>
<!-- subject&#45;&gt;sub3 -->
<g id="edge4" class="edge">
<title>subject&#45;&gt;sub3</title>
<path fill="none" stroke="#000000" d="M283.2153,-60.439C289.7664,-58.2691 296.5774,-56.0419 302.9795,-54 322.1173,-47.8961 343.0697,-41.4392 361.9465,-35.7048"/>
<polygon fill="#000000" stroke="#000000" points="363.0525,-39.0269 371.6081,-32.7777 361.0228,-32.3276 363.0525,-39.0269"/>
<text text-anchor="middle" x="314.6484" y="-56.8" font-family="Times,serif" font-size="14.00" fill="#000000">msg</text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View File

@ -186,7 +186,7 @@ The `MsgProto` message is received by client from the NATS Streaming Server, con
* `sequence`: Globally ordered sequence number for the subject's channel
* `subject`: Subject
* `data`: Payload
* `timestamp`: Time the message was stored in the server. Represented as Unix time (number of nanoseconds elapsed since January 1, 1970 UTC)
* `timestamp`: Time the message was stored in the server. Represented as Unix time \(number of nanoseconds elapsed since January 1, 1970 UTC\)
* `redelivered`: Flag specifying if the message is being redelivered
[Back to table](protocol.md#protocols)

View File

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="152 192 358 280" width="358" height="280">
<defs>
<font-face font-family="Helvetica Neue" font-size="16" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.9958" descent="-212.99744" font-weight="400">
<font-face-src>
<font-face-name name="HelveticaNeue"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black">
<g>
<path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<metadata> Produced by OmniGraffle 7.10.2
<dc:date>2019-05-07 16:42:18 +0000</dc:date>
</metadata>
<g id="Canvas_1" fill-opacity="1" stroke="none" stroke-dasharray="none" fill="none" stroke-opacity="1">
<title>Canvas 1</title>
<rect fill="white" x="152" y="192" width="358" height="280"/>
<g id="Canvas_1: Layer 1">
<title>Layer 1</title>
<g id="Graphic_5">
<circle cx="185.75" cy="225.75" r="33.250053130238" fill="white"/>
<circle cx="185.75" cy="225.75" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 215.75)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A1</tspan>
</text>
</g>
<g id="Graphic_6">
<circle cx="185.75" cy="332.25" r="33.250053130238" fill="white"/>
<circle cx="185.75" cy="332.25" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 322.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A2</tspan>
</text>
</g>
<g id="Graphic_7">
<circle cx="185.75" cy="438.25" r="33.2500531302381" fill="white"/>
<circle cx="185.75" cy="438.25" r="33.2500531302381" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 428.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A3</tspan>
</text>
</g>
<g id="Graphic_9">
<circle cx="476.25" cy="225.75" r="33.250053130238" fill="white"/>
<circle cx="476.25" cy="225.75" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(454.65 215.75)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.672" y="15">B1</tspan>
</text>
</g>
<g id="Graphic_8">
<circle cx="476.25" cy="332.25" r="33.250053130238" fill="white"/>
<circle cx="476.25" cy="332.25" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(454.65 322.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.672" y="15">B2</tspan>
</text>
</g>
<g id="Line_10">
<line x1="219.00002" y1="225.75" x2="433.1" y2="225.75" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_11">
<line x1="216.9757" y1="320.80236" x2="435.72924" y2="240.6053" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_12">
<line x1="216.99302" y1="426.8498" x2="435.70677" y2="347.04374" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_14">
<line x1="449.4098" y1="245.38355" x2="220.58062" y2="412.7715" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,5.0" stroke-width="1"/>
</g>
<g id="Line_15">
<line x1="443" y1="332.25" x2="228.90002" y2="332.25" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,5.0" stroke-width="1"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -1,109 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="152 140.7461 648.5 356.93095" width="648.5" height="356.93095">
<defs>
<font-face font-family="Helvetica Neue" font-size="16" panose-1="2 0 5 3 0 0 0 2 0 4" units-per-em="1000" underline-position="-100" underline-thickness="50" slope="0" x-height="517" cap-height="714" ascent="951.9958" descent="-212.99744" font-weight="400">
<font-face-src>
<font-face-name name="HelveticaNeue"/>
</font-face-src>
</font-face>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black">
<g>
<path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
<marker orient="auto" overflow="visible" markerUnits="strokeWidth" id="FilledArrow_Marker_2" stroke-linejoin="miter" stroke-miterlimit="10" viewBox="-1 -4 10 8" markerWidth="10" markerHeight="8" color="black">
<g>
<path d="M 8 0 L 0 -3 L 0 3 Z" fill="currentColor" stroke="currentColor" stroke-width="1"/>
</g>
</marker>
</defs>
<metadata> Produced by OmniGraffle 7.10.2
<dc:date>2019-05-07 16:43:34 +0000</dc:date>
</metadata>
<g id="Canvas_1" fill-opacity="1" stroke="none" stroke-dasharray="none" fill="none" stroke-opacity="1">
<title>Canvas 1</title>
<rect fill="white" x="152" y="140.7461" width="648.5" height="356.93095"/>
<g id="Canvas_1: Layer 1">
<title>Layer 1</title>
<g id="Graphic_5">
<circle cx="185.75" cy="225.75" r="33.250053130238" fill="white"/>
<circle cx="185.75" cy="225.75" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 215.75)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A1</tspan>
</text>
</g>
<g id="Graphic_6">
<circle cx="185.75" cy="332.25" r="33.250053130238" fill="white"/>
<circle cx="185.75" cy="332.25" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 322.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A2</tspan>
</text>
</g>
<g id="Graphic_7">
<circle cx="185.75" cy="438.25" r="33.2500531302381" fill="white"/>
<circle cx="185.75" cy="438.25" r="33.2500531302381" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(164.15 428.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.968" y="15">A3</tspan>
</text>
</g>
<g id="Graphic_9">
<circle cx="476.25" cy="225.75" r="33.250053130238" fill="white"/>
<circle cx="476.25" cy="225.75" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(454.65 215.75)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.672" y="15">B1</tspan>
</text>
</g>
<g id="Graphic_8">
<circle cx="476.25" cy="332.25" r="33.250053130238" fill="white"/>
<circle cx="476.25" cy="332.25" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(454.65 322.25)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.672" y="15">B2</tspan>
</text>
</g>
<g id="Line_10">
<line x1="219.00002" y1="225.75" x2="433.1" y2="225.75" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_11">
<line x1="216.9757" y1="320.80236" x2="435.72924" y2="240.6053" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_12">
<line x1="216.99302" y1="426.8498" x2="435.70677" y2="347.04374" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_14">
<line x1="449.4098" y1="245.38355" x2="220.58062" y2="412.7715" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,5.0" stroke-width="1"/>
</g>
<g id="Line_15">
<line x1="443" y1="332.25" x2="228.90002" y2="332.25" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,5.0" stroke-width="1"/>
</g>
<g id="Graphic_18">
<circle cx="766.75" cy="225.75" r="33.250053130238" fill="white"/>
<circle cx="766.75" cy="225.75" r="33.250053130238" stroke="gray" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
<text transform="translate(745.15 215.75)" fill="black">
<tspan font-family="Helvetica Neue" font-size="16" font-weight="400" fill="black" x="11.376" y="15">C1</tspan>
</text>
</g>
<g id="Line_19">
<line x1="509.5" y1="225.75" x2="723.6" y2="225.75" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_24">
<path d="M 737.9152 209.17695 C 691.19614 184.57088 592.20205 141.2461 474.34375 141.2461 C 363.9938 141.2461 271.8946 179.22656 223.17214 204.26238" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,4.0" stroke-width="1"/>
</g>
<g id="Line_25">
<path d="M 215.77826 452.5492 C 273.97692 477.73306 407.3362 523.2367 531.3711 477.8711 C 649.03855 434.8344 718.7598 324.48573 748.9529 265.0568" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,4.0" stroke-width="1"/>
</g>
<g id="Line_26">
<path d="M 206.45157 358.2732 C 244.25963 400.88577 331.892 478.7072 453.0625 456.4961 C 575.3629 434.07786 689.0991 317.5855 739.4792 259.19245" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,4.0" stroke-width="1"/>
</g>
<g id="Line_27">
<path d="M 199.5272 256.02128 C 228.04436 312.15083 301.47194 426.71484 425.75 426.71484 C 549.392 426.71484 679.6919 313.32052 736.8824 256.88767" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,4.0" stroke-width="1"/>
</g>
<g id="Line_28">
<line x1="507.4757" y1="320.80236" x2="726.2292" y2="240.6053" marker-end="url(#FilledArrow_Marker)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-width="1"/>
</g>
<g id="Line_30">
<path d="M 736.5963 211.71723 C 709.7235 200.97972 667.2586 188 619 188 C 577.0519 188 540.7803 197.8071 515.29633 207.424" marker-end="url(#FilledArrow_Marker_2)" stroke="black" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="1.0,4.0" stroke-width="1"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -1,6 +1,8 @@
# NATS Streaming Cluster with FT Mode on AWS
# NATS Streaming Cluster with FT Mode
## Preparation
## NATS Streaming Cluster with FT Mode on AWS
### Preparation
First, we need a Kubernetes cluster with a provider that offers a service with a `ReadWriteMany` filesystem available. In this short guide, we will create the cluster on AWS and then use EFS for the filesystem:
@ -21,7 +23,7 @@ For the FT mode to work, we will need to create an EFS volume which can be share
![Screen Shot 2019-12-04 at 12 40 13 PM](https://user-images.githubusercontent.com/26195/70179769-9497a500-16d6-11ea-9e18-2a8588a71819.png)
### Creating the EFS provisioner
#### Creating the EFS provisioner
Confirm from the FilesystemID from the cluster and the DNS name, we will use those values to create an EFS provisioner controller within the K8S cluster:
@ -181,7 +183,7 @@ storageclass.storage.k8s.io/aws-efs created
persistentvolumeclaim/efs created
```
### Setting up the NATS Streaming cluster
#### Setting up the NATS Streaming cluster
Now create a NATS Streaming cluster with FT mode enabled and using NATS embedded mode that is mounting the EFS volume:
@ -382,9 +384,9 @@ $ kubectl logs stan-0 -c stan
[1] 2019/12/04 20:40:41.671546 [INF] STREAM: Streaming Server is ready
```
# NATS Streaming Cluster with FT Mode on Azure
## NATS Streaming Cluster with FT Mode on Azure
First need to create a PVC (PersistentVolumeClaim), in Azure we can use azurefile to get a volume with `ReadWriteMany`:
First need to create a PVC \(PersistentVolumeClaim\), in Azure we can use azurefile to get a volume with `ReadWriteMany`:
```yaml
---
@ -434,16 +436,15 @@ store:
claimName: stan-efs
```
Now deploy with Helm:
```sh
```bash
helm install stan nats/stan -f ./examples/deploy-stan-ft-file.yaml
```
Send a few commands to the NATS Server to which STAN/NATS Streaming is connected:
```sh
```bash
kubectl port-forward nats-0 4222:4222 &
stan-pub -c stan foo bar.1
@ -453,6 +454,7 @@ stan-pub -c stan foo bar.3
Subscribe to get all the messages:
```sh
```bash
stan-sub -c stan -all foo
```

View File

@ -101,16 +101,7 @@ gateway {
### TLS Entry
In addition to the normal TLS configuration advice, bear in mind that
TLS keys and certificates for multiple clusters, or servers in different
locations, rarely rotate at the exact same time and that Certificate
Authorities do roll between multiple Intermediate certificates.
In addition to the normal TLS configuration advice, bear in mind that TLS keys and certificates for multiple clusters, or servers in different locations, rarely rotate at the exact same time and that Certificate Authorities do roll between multiple Intermediate certificates.
If using a certificate bundle which accompanied the issuance of a certificate then the CA in that bundle will typically be for just that certificate. Using _only_ that CA as the CA for gateway authentication is ill-advised. You should ensure that you allow for rolling between Certificate Authorities, even if only between multiple CAs from the same organization entity, and use a separate certificate bundle for _verification_ of peers. This way when DC-B rolls before DC-A, it will not be cut off from your supercluster.
If using a certificate bundle which accompanied the issuance of a certificate
then the CA in that bundle will typically be for just that certificate.
Using _only_ that CA as the CA for gateway authentication is ill-advised.
You should ensure that you allow for rolling between Certificate Authorities,
even if only between multiple CAs from the same organization entity,
and use a separate certificate bundle for _verification_ of peers.
This way when DC-B rolls before DC-A, it will not be cut off from your
supercluster.

View File

@ -13,7 +13,7 @@ The NATS server uses modern TLS semantics to encrypt client, route, and monitori
| `timeout` | TLS handshake [timeout](tls.md#tls-timeout) in fractional seconds. Default set to `0.5` seconds. |
| `verify` | If `true`, require and [verify](auth_intro/tls_mutual_auth.md#validating-a-client-certificate) client certificates. To support use by Browser, this option does not apply to monitoring. |
| `verify_and_map` | If `true`, require and verify client certificates and [map](auth_intro/tls_mutual_auth.md#mapping-client-certificates-to-a-user) certificate values for authentication purposes. Does not apply to monitoring either. |
| `verify_cert_and_check_known_urls` | Only settable in a non client context where `verify: true` is the default ([cluster](../clustering/)/[gateway](../gateways/)). The incoming connections certificate's `X509v3 Subject Alternative Name` `DNS` entries will be matched against all urls in the configuration context that contains this tls map. If a match is found, the connection is accepted and rejected otherwise. Meaning for gateways we will match all DNS entries in the certificate against all gateway urls. For cluster we will match against all route urls. As a consequence of this, dynamic cluster growth may require config changes in other cluster where this flag is true. DNS name checking is performed according to [rfc6125](https://tools.ietf.org/html/rfc6125#section-6.4.1). Only the full wildcard `*` is supported for the left most label. This would be one way to keep cluster growth flexible. |
| `verify_cert_and_check_known_urls` | Only settable in a non client context where `verify: true` is the default \([cluster](../clustering/)/[gateway](../gateways/)\). The incoming connections certificate's `X509v3 Subject Alternative Name` `DNS` entries will be matched against all urls in the configuration context that contains this tls map. If a match is found, the connection is accepted and rejected otherwise. Meaning for gateways we will match all DNS entries in the certificate against all gateway urls. For cluster we will match against all route urls. As a consequence of this, dynamic cluster growth may require config changes in other cluster where this flag is true. DNS name checking is performed according to [rfc6125](https://tools.ietf.org/html/rfc6125#section-6.4.1). Only the full wildcard `*` is supported for the left most label. This would be one way to keep cluster growth flexible. |
The simplest configuration:
@ -62,21 +62,11 @@ tls: {
## Certificate Authorities
The `ca_file` file should contain one or more Certificate Authorities in PEM
format, in a bundle. This is a common format.
The `ca_file` file should contain one or more Certificate Authorities in PEM format, in a bundle. This is a common format.
When a certificate is issued, it is often accompanied by a copy of the
intermediate certificate used to issue it. This is useful for validating that
certificate. It is not necessarily a good choice as the only CA suitable for
use in verifying other certificates a server may see.
When a certificate is issued, it is often accompanied by a copy of the intermediate certificate used to issue it. This is useful for validating that certificate. It is not necessarily a good choice as the only CA suitable for use in verifying other certificates a server may see.
Do consider though that organizations issuing certificates will change the
intermediate they use. For instance, a CA might issue intermediates in pairs,
with an active and a standby, and reserve the right to switch to the standby
without notice. You probably would want to trust _both_ of those for the
`ca_file` directive, to be prepared for such a day, and then after the first
CA has been compromised you can remove it. This way the roll from one CA to
another will not break your NATS server deployment.
Do consider though that organizations issuing certificates will change the intermediate they use. For instance, a CA might issue intermediates in pairs, with an active and a standby, and reserve the right to switch to the standby without notice. You probably would want to trust _both_ of those for the `ca_file` directive, to be prepared for such a day, and then after the first CA has been compromised you can remove it. This way the roll from one CA to another will not break your NATS server deployment.
## Self Signed Certificates for Testing
@ -108,7 +98,7 @@ Please check your system's documentation on how to trust a particular self signe
Another common problem is failed [identity validation](https://tools.ietf.org/html/rfc6125). The IP or DNS name to connect to needs to match a [Subject Alternative Name \(SAN\)](https://tools.ietf.org/html/rfc4985) inside the certificate. Meaning, if a client/browser/server connect via tls to `127.0.0.1`, the server needs to present a certificate with a SAN containing the IP `127.0.0.1` or the connection will be closed with a handshake error.
When `verify_cert_and_check_known_urls` is specified, [Subject Alternative Name \(SAN\)](https://tools.ietf.org/html/rfc4985) `DNS` records are necessary. In order to succesfully connect there must be an overlap between the `DNS` records provided as part of the certificate and the urls configured. If you dynaimcally grow your cluster and use a new certificate, this route or gateway the server connects to will have to be reconfigured to include a url for the new server. Only then can the new server connect. If the `DNS` record is a wildcard, matching according to [rfc6125](https://tools.ietf.org/html/rfc6125#section-6.4.1) will be performed. Using certificates with a wildcard [Subject Alternative Name \(SAN\)](https://tools.ietf.org/html/rfc4985) and configuration with url(s) that would match are a way to keep the flexibility of dynamic cluster growth without configuration changes in ohter cluster.
When `verify_cert_and_check_known_urls` is specified, [Subject Alternative Name \(SAN\)](https://tools.ietf.org/html/rfc4985) `DNS` records are necessary. In order to succesfully connect there must be an overlap between the `DNS` records provided as part of the certificate and the urls configured. If you dynaimcally grow your cluster and use a new certificate, this route or gateway the server connects to will have to be reconfigured to include a url for the new server. Only then can the new server connect. If the `DNS` record is a wildcard, matching according to [rfc6125](https://tools.ietf.org/html/rfc6125#section-6.4.1) will be performed. Using certificates with a wildcard [Subject Alternative Name \(SAN\)](https://tools.ietf.org/html/rfc4985) and configuration with url\(s\) that would match are a way to keep the flexibility of dynamic cluster growth without configuration changes in ohter cluster.
#### Wrong Key Usage
@ -139,7 +129,7 @@ nats-server --tls --tlscert=server-cert.pem --tlskey=server-key.pem -ms 8222
Now you should be able to access the monitoring endpoint `https://localhost:8222` with your browser.
`https://127.0.0.1:8222` however should result in an error as `127.0.0.1` is not listed as SAN. You will not be able to establish a connection from another computer either. For that to work you have to provide appropriate DNS and/or IP [SAN\(s\)](tls.md#missing-subject-alternative-name)
To generate certificates that work with `verify` and [`cluster`](../clustering/README.md)/[`gateway`](../gateways/README.md)/[`leaf_nodes`](../leafnodes/) provide the `-client` option. It will cause the appropriate key usage for client authentication to be added. This example also adds a SAN email for usage as user name in `verify_and_map`.
To generate certificates that work with `verify` and [`cluster`](../clustering/)/[`gateway`](../gateways/)/[`leaf_nodes`](../leafnodes/) provide the `-client` option. It will cause the appropriate key usage for client authentication to be added. This example also adds a SAN email for usage as user name in `verify_and_map`.
```bash
mkcert -client -cert-file client-cert.pem -key-file client-key.pem localhost ::1 email@localhost

View File

@ -16,7 +16,7 @@ When detected at the client, the application is notified and messages are droppe
## Slow consumers identified in the client
A [client can detect it is a slow consumer](../../developing-with-nats/events/slow) on a local connection and notify the application through use of the asynchronous error callback. It is better to catch a slow consumer locally in the client rather than to allow the server to detect this condition. This example demonstrates how to define and register an asynchronous error handler that will handle slow consumer errors.
A [client can detect it is a slow consumer ](../../developing-with-nats/events/slow.md#detect-a-slow-consumer-and-check-for-dropped-messages)on a local connection and notify the application through use of the asynchronous error callback. It is better to catch a slow consumer locally in the client rather than to allow the server to detect this condition. This example demonstrates how to define and register an asynchronous error handler that will handle slow consumer errors.
```go
func natsErrHandler(nc *nats.Conn, sub *nats.Subscription, natsErr error) {

View File

@ -77,12 +77,13 @@ In general the configuration parameters are the same as the command line argumen
| username | Username is used to connect to a NATS Server when authentication with multiple users is enabled | String | `username: "streaming_server"` | N/A |
| password | Password used with above `username` | String | `password: "password"` | N/A |
| token | Authentication token if the NATS Server requires a token | String | `token: "some_token"` | N/A |
| nkey_seed_file | Path to an NKey seed file (1) if NKey authentication is used | File Path | `nkey_seed_file: "/path/to/some/seedfile"` | N/A |
| nkey\_seed\_file | Path to an NKey seed file \(1\) if NKey authentication is used | File Path | `nkey_seed_file: "/path/to/some/seedfile"` | N/A |
Notes:
(1) The seed file contains the NKey seed from which the Streaming server can extract the public key and the private key used to sign the nonce sent by the NATS Server when accepting connections from the Streaming server. The file is read during the connection process, the key is used to sign but then wiped from memory. The file must contain the seed file with the following format:
```
\(1\) The seed file contains the NKey seed from which the Streaming server can extract the public key and the private key used to sign the nonce sent by the NATS Server when accepting connections from the Streaming server. The file is read during the connection process, the key is used to sign but then wiped from memory. The file must contain the seed file with the following format:
```text
-----BEGIN USER NKEY SEED-----
SU<rest of the seed>
------END USER NKEY SEED------