IoT-System

Die FastBee IoT-Plattform ist eine funktionsreiche IoT-Lösung, die speziell für kleine und mittlere Unternehmen sowie Privatanwender entwickelt wurde. Mit einer Reihe einfach zu bedienender Werkzeuge und Funktionen ermöglicht die Plattform die effektive Verwaltung und Steuerung verschiedenster smarter Geräte. Im Folgenden finden Sie eine ausführliche Vorstellung der FastBee IoT-Plattform:
Seitenübersicht
Versionsvergleich
FastBee ist in drei Versionen erhältlich: Open-Source-Version, Business-Version und Cluster-Version. Die zentralen Unterschiede sind unten aufgeführt; die vollständige Lizenzpolitik und die Funktionsliste im Einzelnen finden Sie unter Kommerzielle Lizenz.
| Dimension | Open-Source-Version | Business-Version | Cluster-Version |
|---|---|---|---|
| Lizenz | AGPL v3, kostenlos, nur für nicht kommerzielle Zwecke | Unbefristete kommerzielle Lizenz (Installationszertifikat) | Unbefristete kommerzielle Lizenz (Installationszertifikat) |
| Quellcode und Updates | Quellcode öffentlich, Updates über Gitee/GitHub | Nach Lizenzierung Updates über privaten Git-Server, ein Jahr Quellcode-Updates inklusive | Wie Business-Version |
| Bereitstellungsform | Docker-Compose-One-Click-Deployment auf einem Server | Einzelserver-Bereitstellung (Schnellinstallation mit Docker Compose möglich) | FMQ-Dienstcluster + Web-Cluster, Hochverfügbarkeit mit Kafka und Lastverteilung |
| Anbindungsprotokolle | MQTT, GB/T 28181 (nur Live) | Zusätzlich TCP, UDP, CoAP, HTTP, Modbus, JT808 und weitere Protokolle | Wie Business-Version |
| Funktionsumfang | Kernfunktionen wie Produkt-/Geräte-/Thing-Modell-Verwaltung, Regelskripte und Berechtigungsverwaltung | Zusätzlich Visualisierungs-Dashboard, Alarmzentrale, Mandantenfähigkeit, OTA-Firmware-Updates, Datenbrücke, Ticketverwaltung, IoT-SIM-Kartenverwaltung usw. (Web-SCADA und smarter Lautsprecher sind optionale Module) | Gleiche Funktionen wie die Business-Version, andere unterstützte Geräteanzahl |
| Anwendungsfälle | Persönliches Lernen und nicht kommerzielle Nutzung | Kommerzielle Projekte kleiner und mittlerer Unternehmen | Kommerzielle Projekte mit großer Geräteanzahl und hohen Verfügbarkeitsanforderungen |
1. Plattformvorstellung
- Projekthintergrund: Das Projekt hieß ursprünglich wumei-smart (物美智能) und wurde später in FastBee (蜂信物联) umbenannt. Diese Änderung spiegelt nicht nur die Markenerneuerung wider, sondern markiert auch die Weiterentwicklung und die Erweiterung des Leistungsumfangs im IoT-Bereich.
- Grundlegende Technologien: Das Plattform-Backend basiert auf dem Spring-Boot-Framework, das Frontend verwendet u. a. Vue. Diese Technologieauswahl gewährleistet die einfache Bedienbarkeit und eine gute Benutzererfahrung der Plattform.
2. Systemfunktionen
- Produktverwaltung: Unterstützt Produktdetails, Thing-Modelle, Kategorien und Geräteautorisierung und hilft Unternehmen, ihre smarten Produkte besser zu organisieren und zu verwalten.
- Geräteverwaltung: Bietet Verwaltungsfunktionen wie Gerätedetails, Gruppierung, Protokollierung und Echtzeit-Statusüberwachung und gewährleistet einen effizienten und sicheren Gerätebetrieb.
- Thing-Modell-Verwaltung: Ermöglicht die Definition von Geräteeigenschaften, -funktionen und -ereignissen für eine effektive Interaktion zwischen Gerät und Cloud.
- Regel-Engine: Unterstützt die Erstellung von Regeln auf Basis von Groovy (Syntax wie Java), sodass das System komplexe Geschäftslogik automatisch verarbeiten kann.
- Szenenverknüpfung: Unterstützt die direkte oder visuelle Konfiguration automatisierter Szenen für eine nahtlose Zusammenarbeit smarter Geräte.
- Alarmzentrale: Kann verschiedene Kommunikationswege wie Sprache, SMS und WeCom (Enterprise WeChat) anbinden, benachrichtigt rechtzeitig über Geräteanomalien oder -ausfälle und sorgt für schnelle Reaktionen.
- Mandantensystem: Unterstützt Datenisolierung und unabhängige Konfiguration, eignet sich für Mandantenumgebungen und erhöht die Flexibilität und Sicherheit des Systems.
- Anbindung von Videoüberwachung: Unterstützt Überwachungsgeräte nach dem Protokoll GB/T 28181 mit Live-Video, Aufzeichnung und Wiedergabe sowie PTZ-Steuerung – geeignet für Anforderungen der Sicherheitsüberwachung.
- Szenenverwaltung: Unterstützt die aggregierte Anzeige mehrerer Geräte und kann um Erfassungs- und Berechnungsvariablen erweitert werden; komplexe Datenberechnungen werden unterstützt.
- Datenbrücke: Dient als Brücke zu externen Datensystemen und unterstützt u. a. die Ein- und Ausgabe von Daten.
- Datencenter: Unterstützt die Erstellung von Datenberichten, die Anzeige historischer Daten und die Datenanalyse für Geräte.
- Kommunikationsprotokolle: Unterstützt eine Vielzahl von Geräte-Kommunikationsprotokollen, darunter MQTT, Modbus, TCP, GB28182, HTTP, CoAP usw.
- IoT-SIM-Karten: Verwaltet die SIM-Karten der Geräteverbindungen, unterstützt die Anbindung verschiedener Händlerplattformen, zeigt Kartenstatus und Datenvolumen an und unterstützt Volumenalarme.
- Ticketverwaltung: Unterstützt die automatisierte, intelligente und durchgängige Verwaltung von Wartungs-, Reparatur- und Inspektionsaufgaben für Geräte oder Anlagen.
3. Technologie-Stack
- Backend-Technologien: Umfassen Spring Boot, MyBatis, Spring Security, Jwt, Redis, TDengine und mehr und gewährleisten Stabilität und Effizienz der Backend-Dienste.
- Frontend-Technologien: Nutzen moderne Frontend-Technologien wie ES6, ES7, Vue, Vuex, uView und H5 und verbessern Interaktivität und visuelles Erlebnis der Benutzeroberfläche.
- Unterstützung mobiler Endgeräte: Unterstützt mehrere mobile Plattformen wie WeChat-Mini-Programm, Android und iOS; die plattformübergreifende App-Entwicklung erfolgt über UniApp, sodass Benutzer auf verschiedenen Geräten arbeiten und verwalten können.
4. Anwendungsszenarien
FastBee eignet sich für zahlreiche Szenarien wie Smart Home, Smart Office, Smart Community, Landwirtschaftsüberwachung, Wasserwirtschaftsüberwachung und industrielle Steuerung. Diese Anwendungsszenarien decken ein breites Anforderungsspektrum vom Haushalt bis zur Industrie ab und zeigen das große Einsatzpotenzial von FastBee im IoT-Bereich.

5. Systemarchitektur
┌──────────────────────────────────────────────────────────────────┐
│ Browser / Mobilgerät │
│ Vue2 Web (PC) + Vant (H5 / Mini-Programm) │
└───────────────────────────────┬──────────────────────────────────┘
│ HTTP REST / WebSocket(MQTT)
▼
┌──────────────────────────────────────────────────────────────────┐
│ Nginx (Reverse Proxy) │
│ / → statische Frontend-Ressourcen /prod-api/ → Backend │
└───────────────────────────────┬──────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ Spring-Boot-Dienst (8080) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ fastbee-open-api (Controller-Ebene) │ │
│ │ device / product / ruleEngine / media / system / ... │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ ┌─────────────────────────▼──────────────────────────────────┐ │
│ │ fastbee-service (Service-Ebene) │ │
│ │ IotService / SceneService / NotifyService / ... │ │
│ └────────────────────────┬───────────────────────────────────┘ │
│ ┌─────────────────────────▼──────────────────────────────────┐ │
│ │ fastbee-server (Protokollanbindung) │ │
│ │ MQTT Broker(1883) / HTTP(8081) / CoAP(5683) / TCP(8888) │ │
│ └────────────────────────────────────────────────────────────┘ │
└───────────┬──────────────────┬────────────────────┬──────────────┘
│ │ │
MySQL Redis TDengine
(Metadaten/ (Cache/Echtzeitwerte) (historische
Konfiguration) Zeitreihendaten)6. Codestruktur
fastbee/
├── vue/ ← Frontend-Vue2-Projekt
│ ├── src/
│ │ ├── api/ ← API-Anfragefunktionen der Module
│ │ ├── assets/ ← Statische Ressourcen (Bilder/Icons/Styles)
│ │ ├── components/ ← Globale gemeinsame Komponenten (28 Stück)
│ │ ├── directive/ ← Globale benutzerdefinierte Direktiven
│ │ ├── lang/ ← Sprachpakete für die Internationalisierung
│ │ ├── layout/ ← Layout des Hauptrahmens
│ │ ├── plugins/ ← Registrierung der Vue-Plugins
│ │ ├── router/ ← Routing-Konfiguration
│ │ ├── store/ ← Vuex-Statusverwaltung
│ │ ├── utils/ ← Hilfsfunktionen (request/mqttTool usw.)
│ │ └── views/ ← Views der Geschäftsseiten
│ ├── package.json
│ └── vue.config.js
│
├── springboot/ ← Backend-Spring-Boot-Multimodulprojekt
│ ├── fastbee-admin/ ← Admin-Controller + Konfiguration
│ ├── fastbee-open-api/ ← Open-API-Schnittstellenebene (IoT-Geschäfts-Controller)
│ ├── fastbee-service/ ← Geschäfts-Service-Ebene (iot-service / system-service)
│ ├── fastbee-server/ ← Protokollanbindungsdienst
│ │ ├── iot-server-core/ ← Zentrale IoT-Servicelogik
│ │ ├── mqtt-broker/ ← Integrierter Netty-MQTT-Broker
│ │ ├── http-server/ ← HTTP-Geräteanbindung
│ │ ├── coap-server/ ← CoAP-Geräteanbindung
│ │ ├── sip-server/ ← SIP-Videoanbindung
│ │ └── boot-strap/ ← Starteinstieg
│ ├── fastbee-protocol/ ← Protokoll-Parsing (Modbus/eigenes Protokoll)
│ ├── fastbee-mq/ ← Message-Queue-Integration
│ ├── fastbee-notify/ ← Benachrichtigungsdienst (SMS/E-Mail/WeChat usw.)
│ ├── fastbee-plugs/ ← Plugins (OSS/OAuth/Quartz/Codegenerierung)
│ ├── fastbee-iot-data/ ← IoT-Datenverarbeitung
│ ├── fastbee-record/ ← Aufzeichnungsdienst
│ ├── fastbee-common-extend/ ← Gemeinsame Hilfserweiterungen
│ └── sql/ ← Skripte zur Datenbankinitialisierung/-aktualisierung
│
├── docker/ ← Docker-Compose-Bereitstellungsdateien
└── sdk/ ← SDK für die Geräteseite7. Beschreibung der Funktionsmodule
Geräteverwaltung
| Funktion | Beschreibung |
|---|---|
| Geräteregistrierung/-import | Geräte manuell hinzufügen oder per Excel-Stapel importieren |
| Gerätezuweisung/-rücknahme | Geräte nach Organisation/Benutzer zuweisen, Rücknahme möglich |
| Echtzeit-Statusaktualisierung | Online-/Offline-Status über das MQTT-Abo von /+/{sn}/status/post in Echtzeit aktualisieren |
| Geräte-QR-Code | QR-Code zur Bindung erzeugen, Druck möglich |
| OTA-Firmware-Update | Versionsverwaltung + Verteilung von Update-Aufgaben |
| Befehlsausgabe | Ausgabe von Thing-Modell-Eigenschaften / Funktionsaufrufe |
| Schattenmodus | Wenn das Gerät offline ist, wird der letzte Wert im Geräteschatten zwischengespeichert |
Seitenroute: /iot/device/list → views/iot/device/index.vue
Produktverwaltung
| Funktion | Beschreibung |
|---|---|
| Produktvorlage | Gerätetyp und Thing-Modell definieren |
| Thing-Modell | Drei Elemente: Eigenschaft (Property) / Funktion (Function) / Ereignis (Event) |
| Protokollkonfiguration | MQTT / HTTP / CoAP / TCP / Modbus / JT808 |
| Produktveröffentlichung | Nach der Veröffentlichung kann das Thing-Modell des Geräts nicht mehr geändert werden |
| Drag-and-drop-Editor | Visuelle Konfiguration des Panels für den Gerätelaufzeitstatus |
Regel-Engine
| Funktion | Beschreibung |
|---|---|
| Szenenverknüpfung | Visuelle Orchestrierung Trigger → Bedingung → Aktion (gesteuert von LiteFlow) |
| Gerätealarme | Auslösung nach Schwellenwert/Bereich/booleschem Wert, mit Ruhezeiten |
| Regelskripte | Groovy-/JavaScript-Skripte zur Verarbeitung von Rohdaten |
| One-Click-Auslösung | Szenenverknüpfung manuell auslösen |
Datencenter
| Funktion | Beschreibung |
|---|---|
| Echtzeitdaten | Zuletzt gemeldete Thing-Modell-Werte der Geräte (Redis-Cache) |
| Verlaufsdaten | Abfrage nach Zeitraum (TDengine-Zeitreihendatenbank) |
| Datenberichte | Zeitgesteuerte Excel-Erstellung, E-Mail-Benachrichtigung möglich |
| Datenexport | Download der Verlaufsdaten |
Videoüberwachung
| Funktion | Beschreibung |
|---|---|
| Geräteanbindung | Unterstützt das Protokoll GB28181 (SIP) |
| Echtzeit-Wiedergabe | RTMP / RTSP / FLV / HLS / WebRTC |
| Aufzeichnung und Wiedergabe | Abfrage historischer Aufzeichnungen nach Zeitraum (ZLMediaKit) |
| PTZ-Steuerung | Ausgabe von PTZ-Befehlen |
| Gegensprechfunktion | Aktive SIP-TCP-Methode |
Benachrichtigungsdienst
Unterstützte Kanäle: SMS (Alibaba Cloud/Tencent), E-Mail, WeChat-Official-Account, WeCom, DingTalk, HTTP-Push, MQTT-Push.
Systemverwaltung
Benutzer/Rollen/Organisationen (Mandanten)/Menüs/Wörterbücher/Logs/Systemüberwachung/Codegenerierung.
8. API-Schnittstellendokumentation
Die vollständige Schnittstellendokumentation ist über Swagger verfügbar:
http://localhost:8080/swagger-ui/index.html(Entwicklungsumgebung)
Alle Schnittstellen verwenden ein einheitliches Antwortformat:
{
"code": 200,
"msg": "Vorgang erfolgreich",
"data": { ... }
}Antwortformat für paginierte Listen:
{
"code": 200,
"msg": "Vorgang erfolgreich",
"rows": [ ... ],
"total": 100
}Authentifizierungsschnittstellen
| Methode | Pfad | Beschreibung |
|---|---|---|
| POST | /login | Anmeldung mit Konto und Passwort |
| POST | /register | Benutzerregistrierung |
| POST | /logout | Abmeldung |
| GET | /getInfo | Informationen zum aktuellen Benutzer abrufen |
| GET | /captchaImage | Grafisches Captcha abrufen |
| POST | /auth/sms/login | Anmeldung mit SMS-Code |
| GET | /auth/login/{loginId} | Social Login über Drittanbieter |
| POST | /auth/ssoLogin | SSO Single Sign-on |
Anmeldebeispiel:
POST /login
Content-Type: application/json
{
"username": "admin",
"password": "admin123",
"code": "1234",
"uuid": "xxx-xxx-xxx",
"sourceType": 1
}{
"code": 200,
"msg": "Vorgang erfolgreich",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs..."
}
}Nachfolgende Anfragen müssen den Header Authorization: Bearer {token} enthalten.
Geräteschnittstellen (/iot/device)
| Methode | Pfad | Berechtigung | Beschreibung |
|---|---|---|---|
| GET | /iot/device/list | iot:device:list | Paginierte Geräteliste |
| GET | /iot/device/shortList | iot:device:list | Kurze Geräteliste (Startseite) |
| GET | /iot/device/all | iot:device:list | Kurze Liste aller Geräte |
| GET | /iot/device/{deviceId} | iot:device:query | Gerätedetails |
| GET | /iot/device/getDeviceBySerialNumber/{sn} | iot:device:query | Abfrage nach Seriennummer |
| POST | /iot/device | iot:device:add | Gerät hinzufügen |
| PUT | /iot/device | iot:device:edit | Gerät ändern |
| DELETE | /iot/device/{deviceId} | iot:device:remove | Gerät löschen |
| POST | /iot/device/export | iot:device:export | Excel exportieren |
| POST | /iot/device/assignment | iot:device:assignment | Gerät einer Organisation zuweisen |
| POST | /iot/device/user/assignment | iot:device:assignment | Gerät einem Benutzer zuweisen |
| POST | /iot/device/recovery | iot:device:recovery | Gerät zurücknehmen |
| GET | /iot/device/runningStatus | iot:device:query | Laufzeitstatus |
| GET | /iot/device/thingsModelValue/{deviceId} | iot:device:query | Echtzeitwerte des Thing-Modells |
| GET | /iot/device/statistic | - | Statistik der Überwachungsdaten |
Produktschnittstellen (/iot/product)
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /iot/product/list | Paginierte Produktliste |
| GET | /iot/product/shortList | Kurze Produktliste |
| GET | /iot/product/{productId} | Produktdetails |
| POST | /iot/product | Produkt hinzufügen |
| PUT | /iot/product | Produkt ändern |
| DELETE | /iot/product/{productId} | Produkt löschen |
| PUT | /iot/product/status | Produkt veröffentlichen/zurückziehen |
| POST | /iot/product/copy?productId= | Produkt kopieren |
Thing-Modell-Schnittstellen (/iot/thingsModel)
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /iot/thingsModel/list | Liste der Thing-Modelle |
| POST | /iot/thingsModel | Thing-Modell hinzufügen |
| PUT | /iot/thingsModel | Thing-Modell ändern |
| DELETE | /iot/thingsModel/{modelId} | Thing-Modell löschen |
| POST | /iot/thingsModel/sync | Mit Gerät synchronisieren |
Regel-Engine-Schnittstellen (/iot/scene)
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /iot/scene/list | Liste der Szenenverknüpfungen |
| POST | /iot/scene | Szene hinzufügen |
| PUT | /iot/scene | Szene ändern |
| DELETE | /iot/scene/{sceneId} | Szene löschen |
| POST | /iot/scene/trigger/{sceneId} | Manuell auslösen |
Datencenter-Schnittstellen (/iot/datacenter)
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /iot/datacenter/latestData | Neueste Daten |
| GET | /iot/datacenter/historyData | Verlaufsdaten |
9. Entwicklungsrichtlinien
Namenskonventionen für das Frontend
| Typ | Konvention | Beispiel |
|---|---|---|
| Dateien/Verzeichnisse | kebab-case | device-edit.vue |
| Komponentennamen | PascalCase | DeviceCard |
| Variablen/Methoden | camelCase | deviceList, handleQuery() |
| Konstanten | UPPER_CASE | MAX_PAGE_SIZE |
| API-Dateien | camelCase | device.js, product.js |
| CSS-Klassennamen | kebab-case | .device-item |
Namenskonventionen für das Backend
| Typ | Konvention | Beispiel |
|---|---|---|
| Paketnamen | Kleinbuchstaben, punktgetrennt | com.fastbee.iot.service |
| Klassennamen | PascalCase | DeviceServiceImpl |
| Schnittstellennamen | I + PascalCase | IDeviceService |
| Methodennamen | camelCase | listDeviceByGroup() |
| Konstanten | UPPER_SNAKE | MAX_RETRY_COUNT |
| Datenbanktabellen | Kleinbuchstaben mit Unterstrich | iot_device |
| Datenbankfelder | Kleinbuchstaben mit Unterstrich | serial_number |
Konventionen für das API-Design
- RESTful-Stil, Ressourcennamen als Nomen im Plural
- Einheitliche Routing-Präfixe:
/iot/(IoT-Modul),/system/(Systemmodul) - Controller erben von
BaseControllerund nutzen@PreAuthorizefür die Berechtigungsprüfung - Betriebsprotokollierung mit der Annotation
@Log - Einheitliche Rückgabe mit
AjaxResult.success()/getDataTable()
@PreAuthorize("@ss.hasPermi('iot:device:add')")
@Log(title = "Gerät", businessType = BusinessType.INSERT)
@PostMapping
@ApiOperation("Gerät hinzufügen")
public AjaxResult add(@Validated @RequestBody Device device) {
return toAjax(deviceService.insertDevice(device));
}10. Häufige Fragen
Frontend
F: Nach npm install schlägt der Start mit einem Fehler zu patch-package fehl?
Ursache: node_modules ist nicht vollständig installiert oder es liegt ein Cache-Problem vor.
# Cache leeren und neu installieren
rm -rf node_modules package-lock.json
npm cache clean --force
npm installF: Die Schnittstellen in der Entwicklungsumgebung melden 404?
Prüfen Sie, ob VUE_APP_SERVER_API_URL in .env.development korrekt auf das Backend zeigt und ob das Backend gestartet ist.
F: Der Element-UI-Dialog (MessageBox) öffnet sich nicht?
Prüfen Sie, ob die Komponente global registriert ist; im Projekt erfolgt die Registrierung über Vue.use(Element) in main.js, ein separater Import ist nicht erforderlich.
F: Die MQTT-Verbindung schlägt fehl?
- Prüfen Sie, ob
VUE_APP_MQTT_SERVER_URLkorrekt konfiguriert ist (Entwicklungsumgebung:ws://localhost:8083/mqtt) - Prüfen Sie, ob der integrierte Broker gestartet ist (
server.broker.enabled: true+server.broker.websocket-port: 8083) - Prüfen Sie, ob das Token gültig ist (mqttTool verwendet das Token als MQTT-Passwort)
F: Bei vue-treeselect tritt ein Versionskonflikt auf?
Im Projekt wird einheitlich @riophae/vue-treeselect@0.4.0 verwendet; mischen Sie keine anderen Versionen.
F: Der Import der Komponente vue-qr meldet einen Fehler?
// ✅ Richtig (Standard-Import)
import vueQr from 'vue-qr';
// ❌ Falsch (benannter Import schlägt fehl)
import { VueQr } from 'vue-qr';Backend
F: Beim Start tritt ein Fehler bezüglich license auf?
Konfigurieren Sie in application-dev.yml den korrekten Zertifikatspfad:
license:
subject: common
licensePath: classpath:license.licFordern Sie die Zertifikatsdatei (license.lic) beim Anbieter an und legen Sie sie im Verzeichnis resources ab.
F: TDengine meldet eine Zeitüberschreitung bei der Verbindung?
- Prüfen Sie, ob TDengine gestartet ist (Standard-Port 6041)
- Prüfen Sie die
taos-Datenquellenkonfiguration inapplication-dev.yml - Falls Sie keine Zeitreihendatenbank benötigen, können Sie sie mit
taos.enabled: falseüberspringen
F: Die Regel-Engine wird nicht ausgelöst?
- Prüfen Sie, ob die Szenenverknüpfung den Status „aktiviert" hat
- Prüfen Sie die Trigger-Bedingungen (Zahlenbereich, Vergleichsoperatoren)
- Prüfen Sie die LiteFlow-Ausführungskette in den Logs
F: Das Gerät ist online, aber der Online-Status ist im Backend nicht sichtbar?
- Prüfen Sie die MQTT-Authentifizierung (EMQX-Webhook-Konfiguration)
- Prüfen Sie, ob die
serialNumberdes Geräts mit dem im System erfassten Wert übereinstimmt - Prüfen Sie in den Backend-Logs, ob der Gerätestatus verarbeitet wurde
F: Wie wechsle ich zwischen EMQX und dem integrierten Broker?
# application.yml
server:
broker:
enabled: true # true = integrierter Netty-Broker
# false = externer EMQX (spring.mqtt.host-url muss konfiguriert sein)F: Wie ist die Datenisolierung bei Mandantenfähigkeit umgesetzt?
Die Plattform isoliert Daten über das Feld tenant_id (Organisations-ID). Die Controller-Ebene ermittelt die Organisationsinformationen des angemeldeten Benutzers über SecurityUtils.getLoginUser(), und die Service-Ebene filtert bei Abfragen automatisch danach.
F: Wie rufe ich die Druid-Überwachungsseite auf?
Rufen Sie im Browser http://localhost:8080/druid/index.html auf; Standardbenutzername und -passwort sind jeweils fastbee (änderbar in application.yml).


