Änderungen von Dokument NATS - Technisches Setup

Zuletzt geändert von Daniel Herrmann am 2025/12/14 16:20

Von Version Icon 5.1 Icon
bearbeitet von Daniel Herrmann
am 2025/09/08 22:10
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version Icon 7.1 Icon
bearbeitet von Daniel Herrmann
am 2025/09/09 21:08
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Icon Seiteneigenschaften
Inhalt
... ... @@ -83,6 +83,26 @@
83 83  
84 84  Da ein User nur einem Account zugeordnet werden kann, gibt es einen admin User für administrative Tätigkeiten sowie einen JetStream Admin User für die Account-Verwaltung.
85 85  
86 +== {{id name="NATSSetup-NATSCoremitAccounts"/}}NATS Core mit Accounts ==
87 +
88 +Damit die NATS Core Messages auch weiterhin funktionieren müssen publish und subscribe Berechtigungen vergeben werden. NATS wird neben dem Eventmanagement auch noch für die Task Queue mit Taskiq eingesetzt, hier werden zur Zeit noch Core Funktionalitäten verwendet. Daher muss die Berechtigung für den backend User erweitert werden:
89 +
90 +{{code language="json"}}
91 +accounts: {
92 + MKSP: {
93 + users: [
94 + {
95 + user: "CN=backend.mksp-da.de,OU=Makerspace Darmstadt IT,O=Makerspace Darmstadt e.V.,C=DE"
96 + permissions: {
97 + publish: [">"]
98 + subscribe: [">"]
99 + }
100 + },
101 +...
102 +{{/code}}
103 +
104 +Wichtig sind hier die zusätzlichen Permissions, die den Zugriff auf Core Events regeln.
105 +
86 86  == {{id name="NATSSetup-JetStreamKonfiguration"/}}JetStream Konfiguration ==
87 87  
88 88  In unserem Fall ist Persistenz auch bei einem zeitweisen Ausfall der Internetverbindung im Makerspace notwendig, sodass wir JetStream mit Message Retention verwenden. Dabei müssen die wichtigen Komponenten vorab angelegt werden.
... ... @@ -120,8 +120,99 @@
120 120  
121 121  Consumer sind eine Auswahl / Ansicht von Teilen eines Streams. Details finden sich wieder in der NATS Dokumentation: [[https:~~/~~/docs.nats.io/nats-concepts/jetstream/consumers>>url:https://docs.nats.io/nats-concepts/jetstream/consumers||shape="rect"]]
122 122  
123 -Consumer können entweder persistent sein (dauerhaft, ein Client kann dann den bestehenden Consumer neben) oder flüchtig (ephemeral), in diesem Fall wird der Consumer beim Erstellen des Clients (beispielsweise durch N8n) angelegt. In der Regel werden Consumer durch einen Filter auf bestimmte Subjects beschränkt, diese dürfen sich nicht überschneiden.
143 +Consumer können entweder persistent sein (dauerhaft, ein Client kann dann den bestehenden Consumer neben) oder flüchtig (ephemeral), in diesem Fall wird der Consumer beim Erstellen des Clients (beispielsweise durch N8n) angelegt. In der Regel werden Consumer durch einen Filter auf bestimmte Subjects beschränkt, diese dürfen sich nicht überschneiden. Da die NATS JavaScript Client Library (die von n8n verwendet wird) es leider nicht sinnvoll erlaubt, ephemeral Consumer anzulegen verwenden wir dauerhafte Consumer-Namen.
124 124  
145 +|=(% scope="col" %)(((
146 +Backend Event
147 +)))|=(% scope="col" %)(((
148 +Consumer Name
149 +)))|=(% scope="col" %)(((
150 +Schema
151 +)))
152 +|(((
153 +{{code language="none"}}
154 +mksp.backend.briefing.offer.cancelled
155 +{{/code}}
156 +)))|(((
157 +backend_briefing_offer_cancelled
158 +)))|(((
159 +##(% class="nc" %)BriefingOfferEvent(%%)##
160 +)))
161 +|(((
162 +{{code language="none"}}
163 +mksp.backend.briefing.offer.created
164 +{{/code}}
165 +)))|(((
166 +backend_briefing_offer_created
167 +)))|(((
168 +##(% class="nc" %)BriefingOfferEvent(%%)##
169 +)))
170 +|(((
171 +##(% class="s" %)mksp.backend.briefing.offer.updated(%%)##
172 +)))|(((
173 +backend_briefing_offer_updated
174 +)))|(((
175 +##(% class="nc" %)BriefingOfferEvent(%%)##
176 +)))
177 +|(((
178 +{{code language="none"}}
179 +mksp.backend.briefing.created
180 +{{/code}}
181 +)))|(((
182 +backend_briefing_created
183 +)))|(((
184 +##(% class="n" %)BriefingEvent(%%)##
185 +)))
186 +|(((
187 +##(% class="s" %)mksp.backend.key.assigned(%%)##
188 +)))|(((
189 +backend_key_assigned
190 +)))|(((
191 +##(% class="nc" %)KeyEvent(%%)##
192 +)))
193 +|(((
194 +##(% class="s" %)mksp.backend.key.unassigned(%%)##
195 +)))|(((
196 +backend_key_unassigned
197 +)))|(((
198 +##(% class="nc" %)KeyEvent(%%)##
199 +)))
200 +|(((
201 +##(% class="s" %)mksp.backend.storage.reserved(%%)##
202 +)))|(((
203 +backend_storage_reserved
204 +)))|(((
205 +##(% class="nc" %)StorageSpaceEvent(%%)##
206 +)))
207 +|(((
208 +(% class="s" %){{code language="none"}}mksp.backend.storage.released{{/code}}
209 +)))|(((
210 +backend_storage_released
211 +)))|(((
212 +##(% class="nc" %)StorageSpaceEvent(%%)##
213 +)))
214 +|(((
215 +(% class="s" %){{code language="none"}}mksp.backend.storage.expired{{/code}}
216 +)))|(((
217 +backend_storage_expired
218 +)))|(((
219 +(% class="nc" %){{code language="none"}}StorageSpaceEvent{{/code}}
220 +)))
221 +|(((
222 +(% class="s" %){{code language="none"}}mksp.backend.user.converted_to_member{{/code}}
223 +)))|(((
224 +backend_user_converted_to_member
225 +)))|(((
226 +(% class="nc" %){{code language="none"}}UserEvent{{/code}}
227 +)))
228 +|(((
229 +(% class="s" %){{code language="none"}}mksp.backend.user.converted_to_guest{{/code}}
230 +)))|(((
231 +backend_user_converted_to_guest
232 +)))|(((
233 +(% class="nc" %){{code language="none"}}UserEvent{{/code}}
234 +)))
235 +
125 125  = {{id name="NATSSetup-Troubleshooting"/}}Troubleshooting =
126 126  
127 127  Man kann über die NATS CLI mit dem Server interagieren.
... ... @@ -165,7 +165,7 @@
165 165  ├─────┬──────────────────────────┬──────────────┬─────────┬───────────────────┬─────────┬──────────┬─────────┬──────────┬──────────┬───────────┬──────┤
166 166  │ CID │ Name │ Server │ Cluster │ IP │ Account │ Uptime │ In Msgs │ Out Msgs │ In Bytes │ Out Bytes │ Subs │
167 167  ├─────┼──────────────────────────┼──────────────┼─────────┼───────────────────┼─────────┼──────────┼─────────┼──────────┼──────────┼───────────┼──────┤
168 -│ 83 │ backend_kiqer │ mksp-nats-01 │ │ 172.18.0.33:52808 │ MKSP │ 2h24m18s │ 0 │ 0 │ 0 B │ 0 B │ 0 │
279 +│ 83 │ backend_kicker │ mksp-nats-01 │ │ 172.18.0.33:52808 │ MKSP │ 2h24m18s │ 0 │ 0 │ 0 B │ 0 B │ 0 │
169 169  │ 93 │ backend_scheduler │ mksp-nats-01 │ │ 172.18.0.29:47620 │ MKSP │ 2h23m23s │ 0 │ 0 │ 0 B │ 0 B │ 0 │
170 170  │ 82 │ backend_fastapi │ mksp-nats-01 │ │ 172.18.0.33:52798 │ MKSP │ 2h24m18s │ 1 │ 1 │ 345 B │ 838 B │ 1 │
171 171  │ 94 │ backend_worker │ mksp-nats-01 │ │ 172.18.0.37:53550 │ MKSP │ 2h23m23s │ 0 │ 0 │ 0 B │ 0 B │ 1 │
Icon Confluence.Code.ConfluencePageClass[0]
Id
... ... @@ -1,1 +1,1 @@
1 -207814669
1 +207814676
URL
... ... @@ -1,1 +1,1 @@
1 -https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/207814669/NATS Setup
1 +https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/207814676/NATS Setup