From 8572fd106828df57e651ca51cfae0ddada53b28b Mon Sep 17 00:00:00 2001 From: W1y1r <2730956796@qq.com> Date: Thu, 27 Mar 2025 16:08:00 +0800 Subject: [PATCH 1/2] Change port number for cross gateway transmission --- .../Master/Table/User-Manual/Data-Sync_timecho.md | 15 ++++++++++++++- .../Master/Tree/User-Manual/Data-Sync_timecho.md | 1 + .../V1.3.x/User-Manual/Data-Sync_timecho.md | 1 + .../dev-1.3/User-Manual/Data-Sync_timecho.md | 1 + .../latest-Table/User-Manual/Data-Sync_timecho.md | 14 ++++++++++++++ .../latest/User-Manual/Data-Sync_timecho.md | 1 + .../Master/Table/User-Manual/Data-Sync_timecho.md | 1 + .../Master/Tree/User-Manual/Data-Sync_timecho.md | 1 + .../V1.3.x/User-Manual/Data-Sync_timecho.md | 1 + .../dev-1.3/User-Manual/Data-Sync_timecho.md | 2 ++ .../latest-Table/User-Manual/Data-Sync_timecho.md | 1 + .../latest/User-Manual/Data-Sync_timecho.md | 1 + 12 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index 655087533..7fbcf451b 100644 --- a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -401,7 +401,20 @@ WITH SINK ( 'rate-limit-bytes-per-second' = '1048576' -- Maximum bytes allowed per second ) ``` - +**Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. + +| Gateway Type | Model | Return Packet Limit | Send Limit | +| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | +| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | +| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | +| Unknown | WISGAP | No Limit | No Limit | +| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | +| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | +| Unknown | DPtech ISG5000 | No Limit | No Limit | +| Unknown | GAP‌‌ + XL—GAP | No Limit | No Limit | + ### 3.8 Encrypted Synchronization IoTDB supports SSL encryption during synchronization to securely transmit data between IoTDB instances. By configuring SSL-related parameters such as the certificate path (`ssl.trust-store-path`) and password (`ssl.trust-store-pwd`), data can be protected by SSL encryption during synchronization. diff --git a/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md b/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md index 4db269933..e85c7cc68 100644 --- a/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md @@ -445,6 +445,7 @@ with sink ( 'node-urls' = '10.53.53.53:9780', -- The URL of the data service port of the DataNode node on the target IoTDB ``` **Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. | Gateway Type | Model | Return Packet Limit | Send Limit | | ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | diff --git a/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md b/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md index 819ab8e51..f61c5c9f1 100644 --- a/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md @@ -445,6 +445,7 @@ with sink ( 'node-urls' = '10.53.53.53:9780', -- The URL of the data service port of the DataNode node on the target IoTDB ``` **Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. | Gateway Type | Model | Return Packet Limit | Send Limit | | ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | diff --git a/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md b/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md index 819ab8e51..f61c5c9f1 100644 --- a/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md @@ -445,6 +445,7 @@ with sink ( 'node-urls' = '10.53.53.53:9780', -- The URL of the data service port of the DataNode node on the target IoTDB ``` **Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. | Gateway Type | Model | Return Packet Limit | Send Limit | | ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | diff --git a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index 655087533..5e405e2d4 100644 --- a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -402,6 +402,20 @@ WITH SINK ( ) ``` +**Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. + +| Gateway Type | Model | Return Packet Limit | Send Limit | +| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | +| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | +| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | +| Unknown | WISGAP | No Limit | No Limit | +| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | +| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | +| Unknown | DPtech ISG5000 | No Limit | No Limit | +| Unknown | GAP‌‌ + XL—GAP | No Limit | No Limit | + ### 3.8 Encrypted Synchronization IoTDB supports SSL encryption during synchronization to securely transmit data between IoTDB instances. By configuring SSL-related parameters such as the certificate path (`ssl.trust-store-path`) and password (`ssl.trust-store-pwd`), data can be protected by SSL encryption during synchronization. diff --git a/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md b/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md index 4db269933..e85c7cc68 100644 --- a/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md @@ -445,6 +445,7 @@ with sink ( 'node-urls' = '10.53.53.53:9780', -- The URL of the data service port of the DataNode node on the target IoTDB ``` **Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. | Gateway Type | Model | Return Packet Limit | Send Limit | | ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | diff --git a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index fc65c8d9f..38f9230a5 100644 --- a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -383,6 +383,7 @@ with sink ( ) ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | diff --git a/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md index c91ef222d..98aad46be 100644 --- a/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md @@ -441,6 +441,7 @@ with sink ( ) ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | diff --git a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md index 7d9b059a5..17380666a 100644 --- a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md @@ -441,6 +441,7 @@ with sink ( ) ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | diff --git a/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md index 7d9b059a5..fa1968879 100644 --- a/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md @@ -442,6 +442,8 @@ with sink ( ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 + | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | | 正向型 | 南瑞 Syskeeper-2000 正向型 | 全 0 / 全 1 bytes | 无限制 | diff --git a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index fc65c8d9f..38f9230a5 100644 --- a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -383,6 +383,7 @@ with sink ( ) ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | diff --git a/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md index c91ef222d..98aad46be 100644 --- a/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md @@ -441,6 +441,7 @@ with sink ( ) ``` **注意:目前支持的网闸型号** +> 其他型号的网闸设备,请与天谋商务联系确认是否支持。 | 网闸类型 | 网闸型号 | 回包限制 | 发送限制 | | ------------ | -------------------------------------------- | ----------------- | --------------- | From 5f693a75ee3c02775b1c5f8d8c18e7c098b4fe16 Mon Sep 17 00:00:00 2001 From: W1y1r <2730956796@qq.com> Date: Thu, 27 Mar 2025 16:18:02 +0800 Subject: [PATCH 2/2] Supporting gateway models requires modification of description information --- .../public/img/cross-network-gateway.png | Bin 0 -> 78101 bytes .../Table/User-Manual/Data-Sync_timecho.md | 27 ++++++++-------- .../Tree/User-Manual/Data-Sync_timecho.md | 2 +- .../User-Manual/Data-Sync-old_timecho.md | 2 +- .../V1.3.x/User-Manual/Data-Sync_timecho.md | 2 +- .../dev-1.3/User-Manual/Data-Sync_timecho.md | 2 +- .../User-Manual/Data-Sync_timecho.md | 30 +++++++++--------- .../latest/User-Manual/Data-Sync_timecho.md | 2 +- .../Table/User-Manual/Data-Sync_timecho.md | 2 +- .../Tree/User-Manual/Data-Sync_timecho.md | 2 +- .../V1.2.x/User-Manual/Data-Sync_timecho.md | 2 +- .../User-Manual/Data-Sync-old_timecho.md | 2 +- .../V1.3.x/User-Manual/Data-Sync_timecho.md | 2 +- .../dev-1.3/User-Manual/Data-Sync_timecho.md | 2 +- .../User-Manual/Data-Sync_timecho.md | 2 +- .../latest/User-Manual/Data-Sync_timecho.md | 2 +- 16 files changed, 42 insertions(+), 41 deletions(-) create mode 100644 src/.vuepress/public/img/cross-network-gateway.png diff --git a/src/.vuepress/public/img/cross-network-gateway.png b/src/.vuepress/public/img/cross-network-gateway.png new file mode 100644 index 0000000000000000000000000000000000000000..b07a28951c98240c5a4468c608f4fef378f9f7a8 GIT binary patch literal 78101 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 B*x&#F literal 0 HcmV?d00001 diff --git a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index 7fbcf451b..09588da51 100644 --- a/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -373,7 +373,7 @@ WITH SINK ( This example demonstrates synchronizing data from one IoTDB to another through a unidirectional air gap. The data pipeline is shown below: -![](/img/e5.png) +![](/img/cross-network-gateway.png) In this example, the `iotdb-air-gap-sink` plugin is used (currently supports specific air gap models; contact Timecho team for details). After configuring the air gap, execute the following statement on IoTDB A, where `node-urls` is the URL of the DataNode service port on the target IoTDB. @@ -386,6 +386,19 @@ WITH SINK ( 'node-urls' = '10.53.53.53:9780' -- URL of the DataNode service port on the target IoTDB ) ``` +**Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. + +| Gateway Type | Model | Return Packet Limit | Send Limit | +| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | +| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | +| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | +| Unknown | WISGAP | No Limit | No Limit | +| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | +| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | +| Unknown | DPtech ISG5000 | No Limit | No Limit | +| Unknown | GAP‌‌ + XL—GAP | No Limit | No Limit | ### 3.7 Compressed Synchronization @@ -401,19 +414,7 @@ WITH SINK ( 'rate-limit-bytes-per-second' = '1048576' -- Maximum bytes allowed per second ) ``` -**Notes: Currently supported gateway models** -> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. -| Gateway Type | Model | Return Packet Limit | Send Limit | -| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | -| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | -| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | -| Unknown | WISGAP | No Limit | No Limit | -| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | -| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | -| Unknown | DPtech ISG5000 | No Limit | No Limit | -| Unknown | GAP‌‌ - XL—GAP | No Limit | No Limit | ### 3.8 Encrypted Synchronization diff --git a/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md b/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md index e85c7cc68..280980344 100644 --- a/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md @@ -433,7 +433,7 @@ with sink ( This example is used to demonstrate the scenario where data from one IoTDB is synchronized to another IoTDB through a unidirectional gateway, as shown in the figure below: -![](/img/pipe5.jpg) +![](/img/cross-network-gateway.png) In this example, the iotdb-air-gap-sink plugin in the sink task needs to be used . After configuring the gateway, execute the following statement on A IoTDB. Fill in the node-urls with the URL of the data service port of the DataNode node on the target IoTDB configured by the gateway, as detailed below: diff --git a/src/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md b/src/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md index 47671ea71..0fb367524 100644 --- a/src/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md +++ b/src/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md @@ -436,7 +436,7 @@ with sink ( This example is used to demonstrate the scenario where data from one IoTDB is synchronized to another IoTDB through a unidirectional gateway, as shown in the figure below: -![](/img/pipe5.jpg) +![](/img/cross-network-gateway.png) In this example, the iotdb-air-gap-sink plugin in the sink task needs to be used (currently supports some gateway models, for specific models, please contact Timecho staff for confirmation). After configuring the gateway, execute the following statement on A IoTDB. Fill in the node-urls with the URL of the data service port of the DataNode node on the target IoTDB configured by the gateway, as detailed below: diff --git a/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md b/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md index f61c5c9f1..b6132dba1 100644 --- a/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md @@ -433,7 +433,7 @@ with sink ( This example is used to demonstrate the scenario where data from one IoTDB is synchronized to another IoTDB through a unidirectional gateway, as shown in the figure below: -![](/img/pipe5.jpg) +![](/img/cross-network-gateway.png) In this example, the iotdb-air-gap-sink plugin in the sink task needs to be used . After configuring the gateway, execute the following statement on A IoTDB. Fill in the node-urls with the URL of the data service port of the DataNode node on the target IoTDB configured by the gateway, as detailed below: diff --git a/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md b/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md index f61c5c9f1..b6132dba1 100644 --- a/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md @@ -433,7 +433,7 @@ with sink ( This example is used to demonstrate the scenario where data from one IoTDB is synchronized to another IoTDB through a unidirectional gateway, as shown in the figure below: -![](/img/pipe5.jpg) +![](/img/cross-network-gateway.png) In this example, the iotdb-air-gap-sink plugin in the sink task needs to be used . After configuring the gateway, execute the following statement on A IoTDB. Fill in the node-urls with the URL of the data service port of the DataNode node on the target IoTDB configured by the gateway, as detailed below: diff --git a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index 5e405e2d4..8cc67b8b1 100644 --- a/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -373,7 +373,7 @@ WITH SINK ( This example demonstrates synchronizing data from one IoTDB to another through a unidirectional air gap. The data pipeline is shown below: -![](/img/e5.png) +![](/img/cross-network-gateway.png) In this example, the `iotdb-air-gap-sink` plugin is used (currently supports specific air gap models; contact Timecho team for details). After configuring the air gap, execute the following statement on IoTDB A, where `node-urls` is the URL of the DataNode service port on the target IoTDB. @@ -387,6 +387,20 @@ WITH SINK ( ) ``` +**Notes: Currently supported gateway models** +> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. + +| Gateway Type | Model | Return Packet Limit | Send Limit | +| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | +| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | +| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | +| Unknown | WISGAP | No Limit | No Limit | +| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | +| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | +| Unknown | DPtech ISG5000 | No Limit | No Limit | +| Unknown | GAP‌‌ + XL—GAP | No Limit | No Limit | + ### 3.7 Compressed Synchronization IoTDB supports specifying data compression methods during synchronization. The `compressor` parameter can be configured to enable real-time data compression and transmission. Supported algorithms include `snappy`, `gzip`, `lz4`, `zstd`, and `lzma2`. Multiple algorithms can be combined and applied in the configured order. The `rate-limit-bytes-per-second` parameter (supported in V1.3.3 and later) limits the maximum number of bytes transmitted per second (calculated after compression). If set to a value less than 0, there is no limit. @@ -402,20 +416,6 @@ WITH SINK ( ) ``` -**Notes: Currently supported gateway models** -> For other models of network gateway devices, Please contact timechodb staff to confirm compatibility. - -| Gateway Type | Model | Return Packet Limit | Send Limit | -| ---------------------- | ------------------------------------------------------------ | ------------------- | ---------------------- | -| Forward Gate | NARI Syskeeper-2000 Forward Gate | All 0 / All 1 bytes | No Limit | -| Forward Gate | XJ Self-developed Diaphragm | All 0 / All 1 bytes | No Limit | -| Unknown | WISGAP | No Limit | No Limit | -| Forward Gate | KEDONG StoneWall-2000 Network Security Isolation Device | No Limit | No Limit | -| Reverse Gate | NARI Syskeeper-2000 Reverse Direction | All 0 / All 1 bytes | Meet E Language Format | -| Unknown | DPtech ISG5000 | No Limit | No Limit | -| Unknown | GAP‌‌ - XL—GAP | No Limit | No Limit | - ### 3.8 Encrypted Synchronization IoTDB supports SSL encryption during synchronization to securely transmit data between IoTDB instances. By configuring SSL-related parameters such as the certificate path (`ssl.trust-store-path`) and password (`ssl.trust-store-pwd`), data can be protected by SSL encryption during synchronization. diff --git a/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md b/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md index e85c7cc68..280980344 100644 --- a/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md +++ b/src/UserGuide/latest/User-Manual/Data-Sync_timecho.md @@ -433,7 +433,7 @@ with sink ( This example is used to demonstrate the scenario where data from one IoTDB is synchronized to another IoTDB through a unidirectional gateway, as shown in the figure below: -![](/img/pipe5.jpg) +![](/img/cross-network-gateway.png) In this example, the iotdb-air-gap-sink plugin in the sink task needs to be used . After configuring the gateway, execute the following statement on A IoTDB. Fill in the node-urls with the URL of the data service port of the DataNode node on the target IoTDB configured by the gateway, as detailed below: diff --git a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md index 38f9230a5..a5af87fa5 100644 --- a/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/Master/Table/User-Manual/Data-Sync_timecho.md @@ -371,7 +371,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md index 98aad46be..66e4a73d9 100644 --- a/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/Master/Tree/User-Manual/Data-Sync_timecho.md @@ -429,7 +429,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/V1.2.x/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/V1.2.x/User-Manual/Data-Sync_timecho.md index 2a21afe78..ec8e0b7c5 100644 --- a/src/zh/UserGuide/V1.2.x/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/V1.2.x/User-Manual/Data-Sync_timecho.md @@ -279,7 +279,7 @@ with connector ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个IoTDB的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 connector 任务中的iotdb-air-gap-connector 插件(目前支持部分型号网闸,具体型号请联系天谋科技工作人员确认),配置网闸后,在 A IoTDB 上执行下列语句,其中ip和port填写网闸信息,详细语句如下: diff --git a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md index cca2529ee..e039fb2e9 100644 --- a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md +++ b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync-old_timecho.md @@ -431,7 +431,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件(目前支持部分型号网闸,具体型号请联系天谋科技工作人员确认),配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md index 17380666a..954e3d4b7 100644 --- a/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/V1.3.x/User-Manual/Data-Sync_timecho.md @@ -429,7 +429,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md index fa1968879..e9a71bfc6 100644 --- a/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/dev-1.3/User-Manual/Data-Sync_timecho.md @@ -429,7 +429,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md index 38f9230a5..a5af87fa5 100644 --- a/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/latest-Table/User-Manual/Data-Sync_timecho.md @@ -371,7 +371,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: diff --git a/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md b/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md index 98aad46be..66e4a73d9 100644 --- a/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md +++ b/src/zh/UserGuide/latest/User-Manual/Data-Sync_timecho.md @@ -429,7 +429,7 @@ with sink ( 本例子用来演示将一个 IoTDB 的数据,经过单向网闸,同步至另一个 IoTDB 的场景,数据链路如下图所示: -![](/img/%E6%95%B0%E6%8D%AE%E4%BC%A0%E8%BE%931.png) +![](/img/cross-network-gateway.png) 在这个例子中,需要使用 sink 任务中的 iotdb-air-gap-sink 插件,配置网闸后,在 A IoTDB 上执行下列语句,其中 node-urls 填写网闸配置的目标端 IoTDB 中 DataNode 节点的数据服务端口的 url,详细语句如下: