Änderungen von Dokument NATS - Technisches Setup
Zuletzt geändert von Daniel Herrmann am 2025/12/14 16:20
Von Version
6.1
bearbeitet von Daniel Herrmann
am 2025/09/08 22:55
am 2025/09/08 22:55
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version
9.1
bearbeitet von Daniel Herrmann
am 2025/09/10 09:08
am 2025/09/10 09:08
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -140,8 +140,109 @@ 140 140 141 141 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"]] 142 142 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. 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. 144 144 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 + 236 +Die Consumer können dann wie folgt angelegt werden: 237 + 238 +{{code language="json"}} 239 +$ nats consumer add backend_events <name> --pull --filter="<filter>" --defaults 240 + 241 +# Beispiel 242 +nats consumer add backend_events backend_briefing_offer_cancelled --pull --filter="mksp.backend.briefing.offer.cancelled" --defaults 243 +nats consumer add backend_events backend_key_assigned --pull --filter="mksp.backend.key.assigned" --defaults 244 +{{/code}} 245 + 145 145 = {{id name="NATSSetup-Troubleshooting"/}}Troubleshooting = 146 146 147 147 Man kann über die NATS CLI mit dem Server interagieren. ... ... @@ -148,6 +148,8 @@ 148 148 149 149 == {{id name="NATSSetup-JetStream"/}}JetStream == 150 150 252 +=== {{id name="NATSSetup-Streams"/}}Streams === 253 + 151 151 Man kann sich die vorhandenen Streams und die Anzahl der Nachrichten anschauen. Die Anzahl sollte üblicherweise 0 sein, wenn die Zahl höher ist, werden Events nicht richtig abgearbeitet. 152 152 153 153 {{code language="shell"}} ... ... @@ -172,6 +172,61 @@ 172 172 {"timestamp":"2025-09-08T09:06:00.062358","stora 173 173 {{/code}} 174 174 278 +=== {{id name="NATSSetup-Consumer"/}}Consumer === 279 + 280 +Die bestehenden Consumer kann man sich ebenfalls im Jetstream Context anzeigen lassen: 281 + 282 +{{code language="json"}} 283 +$ nats consumer ls backend_events 284 +╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ 285 +│ Consumers │ 286 +├──────────────────────────────────┬─────────────┬─────────────────────┬─────────────┬─────────────┬───────────────┤ 287 +│ Name │ Description │ Created │ Ack Pending │ Unprocessed │ Last Delivery │ 288 +├──────────────────────────────────┼─────────────┼─────────────────────┼─────────────┼─────────────┼───────────────┤ 289 +│ backend_briefing_created │ │ 2025-09-10 08:30:12 │ 0 │ 12 │ never │ 290 +│ backend_briefing_offer_cancelled │ │ 2025-09-10 08:21:02 │ 0 │ 0 │ never │ 291 +│ backend_briefing_offer_created │ │ 2025-09-10 08:28:25 │ 0 │ 0 │ never │ 292 +│ backend_briefing_offer_updated │ │ 2025-09-10 08:29:19 │ 0 │ 0 │ never │ 293 +│ backend_key_assigned │ │ 2025-09-10 08:21:04 │ 0 │ 0 │ never │ 294 +╰──────────────────────────────────┴─────────────┴─────────────────────┴─────────────┴─────────────┴───────────────╯ 295 +{{/code}} 296 + 297 +In dieser Tabelle sieht man bereits die "unprocessed" Nachrichten. Ist diese Zahl größer als 0 s sieht also gut, wenn n8n die Nachrichten nicht korrekt verarbeitet. Man kann sich ebenfalls die Details eines Consumers anzeigen lassen: 298 + 299 +{{code language="json"}} 300 +$ nats consumer info backend_events backend_briefing_offer_cancelled 301 + 302 +Information for Consumer backend_events > backend_briefing_offer_cancelled created 2025-09-09 22:53:26 303 + 304 +Configuration: 305 + 306 + Name: backend_briefing_offer_cancelled 307 + Pull Mode: true 308 + Filter Subject: mksp.backend.briefing.offer.cancelled 309 + Deliver Policy: All 310 + Ack Policy: Explicit 311 + Ack Wait: 30.00s 312 + Replay Policy: Instant 313 + Max Ack Pending: 1,000 314 + Max Waiting Pulls: 512 315 + 316 +State: 317 + 318 + Host Version: 2.11.8 319 + Required API Level: 0 hosted at level 1 320 + Last Delivered Message: Consumer sequence: 0 Stream sequence: 10 321 + Acknowledgment Floor: Consumer sequence: 0 Stream sequence: 0 322 + Outstanding Acks: 0 out of maximum 1,000 323 + Redelivered Messages: 0 324 + Unprocessed Messages: 0 325 + Waiting Pulls: 1 of maximum 512 326 +{{/code}} 327 + 328 +Insbesondere die letzten beiden Zeilen sind wichtig: 329 + 330 +* **Unprocessed Messages** sind Nachrichten, die noch nicht abgerufen wurden. Dies sollte immer 0 sein 331 +* **Waiting Pulls**: die Anzahl der verbundenen Clients. Üblicherweise sollte das nur n8n sein, also immer 1. 332 + 175 175 == {{id name="NATSSetup-Server"/}}Server == 176 176 177 177 Man kann sich ebenfalls die aktiven Verbindungen anzeigen:
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -2078146 731 +207814660 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/2078146 73/NATS Setup1 +https://wiki.makerspace-darmstadt.de/spaces/PROJ/pages/207814660/NATS Setup