ERDDAP MQTT 통합
ERDDAP 이제 MQTT 프로토콜을 지원하여 실시간 데이터 섭취 및 알림을 촉진합니다. 이 기능은 오픈 소스에 의해 구동됩니다. HiveMQ MQTT 클라이언트 이름 * HiveMQ 커뮤니티 에디션 브로커 라이브러리.
ERDDAP 두 가지 주요 방법으로 MQTT를 활용할 수 있습니다:
-
MQTT 클라이언트로: ERDDAP 기존의 MQTT 브로커에 참여할 수 있으며 실시간 데이터셋을 만들 수 있습니다.
-
MQTT 브로커: ERDDAP 자체 임베디드 MQTT 브로커를 호스팅 할 수 있으며 외부 고객이 데이터를 직접 게시 할 수 있습니다.
·
ERDDAP MQTT 클라이언트로
ERDDAP MQTT 클라이언트가 외부 또는 자체 임베디드 MQTT 브로커에 주제를 구독 할 수 있습니다. 이것은 새로운 것을 사용하여 달성됩니다. EDDTableMqtt에서 dataset 유형, 기존과 비슷한 기능 다운로드 데이터셋.
현재 클라이언트 구현만 지원 관련 기사 관련 기사
윤곽: EDDTableMqtt에서
MQTT 브로커에 가입하는 데이터셋을 구성하려면, 유형의 데이터셋을 정의 EDDTableMqtt에서 내 계정 datasets.xml 파일. 뒤에 오는 윤곽 꼬리표는 안에 유효합니다 <dataset> 구획:
<!-- Example configuration for an EDDTableFromMqtt dataset in datasets.xml -->
<dataset type="EDDTableFromMqtt" datasetID="mqtt_realtime_data" active="true">
<!-- The hostname or IP address of the MQTT broker. -->
<serverHost>broker.example.com</serverHost>
<!-- The port number of the MQTT broker. -->
<serverPort>1883</serverPort>
<!-- A unique identifier for this MQTT client. -->
<clientId>erddap-subscriber-1</clientId>
<!-- The username for broker authentication (optional). -->
<username>user</username>
<!-- The password for broker authentication (optional). -->
<password>secret</password>
<!-- A comma-separated list of MQTT topics to subscribe to. -->
<topics>sensor/+/data, another/topic</topics>
<!-- Set to 'true' to use a secure SSL/TLS connection. Default is 'false'. -->
<useSsl>false</useSsl>
<!-- The session expiry interval in seconds. -->
<sessionExpiryInterval>3600</sessionExpiryInterval>
<!-- The connection timeout in seconds. -->
<connectionTimeout>10</connectionTimeout>
<!-- Set to 'true' to enable automatic reconnection. Default is 'true'. -->
<automaticReconnect>true</automaticReconnect>
</dataset>
·
ERDDAP MQTT 브로커
ERDDAP 임베디드 MQTT 브로커를 실행할 수 있습니다, 이는 두 가지 주요 목적을 제공:
-
자료 Ingestion: 외부 MQTT 클라이언트가 실시간 데이터셋을 만들기 위해 게시된 데이터를 수신합니다.
-
경고 : Dataset 변경에 대한 알림을 게시하려면.
임베디드 브로커
임베디드 MQTT 브로커는 기본적으로 비활성화됩니다. 활성화하려면 다음 플래그를 추가하십시오. 설정.xml ::
<!-- Enables the embedded HiveMQ broker. Default is 'false'. --> <enableMqttBroker> 한국어 </enableMqttBroker>
브로커 구성 및 데이터 디렉토리
브로커의 구성 및 데이터 파일에 대한 사용자 지정 디렉토리를 지정할 수 있습니다. 설정.xml · 이 태그가 비어있는 경우, ERDDAP HiveMQ 라이브러리에 의해 지정된 기본 디렉토리를 사용합니다. 로깅 및 확장을 포함한 더 고급 구성 세부 사항은 공식을 참조하시기 바랍니다. HiveMQ 커뮤니티 에디션 위키 ·
<!-- The parent directory for all MQTT-related files. -->
<bigParentDirectory>/opt/erddap/mqtt/</bigParentDirectory>
<!-- The path to the embedded MQTT broker's configuration folder. -->
<mqttConfigFolder>/opt/erddap/mqtt/conf/</mqttConfigFolder>
<!-- The path to the embedded MQTT broker's data folder. -->
<mqttDataFolder>/opt/erddap/mqtt/data/</mqttDataFolder>
사용 사례 1: MQTT 클라이언트에서 데이터를 섭취
임베디드 브로커를 사용하여 실시간 데이터셋을 구축하려면 구성할 수 있습니다. EDDTableMqtt에서 데이터셋 (위에서 설명한) same 안에 ERDDAP 인스턴스는 자신의 로컬 브로커에 연결 . 외부 MQTT 클라이언트는 그 때 자료를 이행할 수 있습니다 ERDDAP 브로커, EDDTableMqtt에서 dataset는 구독하고 ingest.
사용 사례 2 : Dataset 변경 알림 게시
ERDDAP dataset 변경에 대한 알림을 게시 할 수 있습니다. (e.g., 업데이트 또는 재로드) MQTT 브로커의 주제에. 첫째, 브로커가 활성화되거나 외부 하나를 사용할 수 있도록합니다. 그런 다음 알림 기능을 활성화하십시오. 설정.xml ::
<!-- Set to 'true' to publish dataset change notifications via MQTT. Default is 'false'. --> <publishMqttNotif> 한국어 </publishMqttNotif>
이 기능을 사용할 때 ERDDAP 내부 MQTT 클라이언트를 사용하여 메시지를 게시합니다. 이 클라이언트를 위한 연결 조정은 안으로 주문을 받아서 만들어질 수 있습니다 설정.xml · 아래 표는 사용 가능한 설정과 기본 값을 나열합니다.
| 주요 특징 | 제품정보 | 기본 값 | 이름 * |
|---|---|---|---|
<mqttServerHost> | 이름 * | 지역호스트 | 브로커 호스트는 알림을 게시합니다. |
<mqttServerPort> | 뚱 베어 | 1883년 | 알림 브로커의 포트. |
<mqttClientId> | 이름 * | erddap 클라이언트 | 알림 게시자의 클라이언트 ID. |
<mqttUserName> | 이름 * | erddap 사용자 이름 | 알림 게시자의 사용자 이름. |
<mqttPassword> | 이름 * | erddap 패스워드 | 알림 게시자의 비밀번호. |
<mqttSsl> | 한국어 | 이름 * | 알림 연결에 SSL/TLS를 사용하십시오. |
<mqttKeepAlive> | 뚱 베어 | 60명 | 초에 있는 지속 가능한 간격. |
<mqttCleanStart> | 한국어 | 이름 * | 깨끗한 세션 시작 (각 세션 상태 없음) · |
<mqttSessionExpiry> | 뚱 베어 | 10대 | 몇 초 만에 세션 만료 간격. |
<mqttConnectionTimeout> | 뚱 베어 | 10대 | 몇 초에 연결 타임아웃. |
<mqttAutomaticReconnect> | 한국어 | 한국어 | 연결이 손실되면 자동으로 다시 연결됩니다. |
·
환경 변수 파싱 datasets.xml
새로운 기능은 환경 변수를 사용할 수 있도록 도입되었습니다. datasets.xml · 이름 * 기본 설정 ·
이 기능을 비활성화하려면 다음 플래그를 추가하십시오. 설정.xml ::
xml의
<enableEnvParsing> 이름 * </enableEnvParsing>