“订阅 Kafka 主题以获取文本”输入连接器可用于从 Apache Kafka 主题检索和改编格式化为分隔文本的事件数据记录。 文本分隔符通常为逗号,因此这种类型的文本数据有时被称为逗号分隔值数据,但是 ArcGIS GeoEvent Server 可以使用任何 ASCII 可打印字符作为分隔符来分隔数据属性值。 有关 Apache Kafka 入门知识的详细信息,请参阅 Apache Kafka 简介。
用法说明
使用“订阅 Kafka 主题以获取文本”输入连接器时,应记住以下事项:
- 此输入连接器可用于使用 Kafka 主题中格式化文本或分隔文本形式的数据。 此输入连接器是 Kafka 的用户。
- 此输入连接器可将文本入站适配器与 Kafka 入站传输进行配对。
- 分隔文本不是必须包含表示几何的数据。 因此,该输入连接器可用于从 Kafka 检索和处理非空间数据。
- 适配器支持根据 x、y 和 z 属性字段构造点几何的功能。
- 要解析 Kafka 中的分隔文本,需要使用消息分隔符和属性分隔符参数。 消息分隔符可指示用于标识数据记录结尾的字符;默认为换行符 (\n)。 属性分隔符可指定用于在单行文本中将一个属性值与另一个属性值分开的字符;默认为逗号 (,)。 指定为字符或 Unicode 值的任何 ASCII 可打印字符都可以用作消息或属性分隔符。
- Kafka 入站传输支持 TLS 1.2 和 SASL 安全协议,其使用 Kafka 集群或 broker 进行身份验证。
参数
以下是“订阅 Kafka 主题以获取文本”输入连接器的参数:
参数 | 描述 |
---|---|
名称 | 用于在 GeoEvent Manager 中引用的输入连接器的描述性名称。 |
使用自定义 Kafka 属性覆盖 | 指定是否覆盖默认 GeoEvent Server Kafka 客户端属性。 默认为否。
|
Kafka Bootstrap Servers (条件分析) | 用于建立与 hostname:port 集群初始连接的 Kafka 对列表。 Hostname:port 对必须使用逗号分隔,例如broker0.example.com:9092,broker1.example.com:9092,broker2.example.com:9092。 此参数将在使用自定义 Kafka 属性覆盖设置为否时显示。 |
主题名称 | Kafka 主题的名称或 Kafka 主题列表,用于使用感兴趣的数据。 多个主题必须使用分号分隔。
注:在 Kafka 10.8 及更高版本中可以指定多个 ArcGIS GeoEvent Server 主题。 注:不能保证特定主题的数据顺序。 |
用户数量 | 指定每个用户群组的用户数量。 默认用户数量为 1。 注:用户数量受 Kafka 主题的分区数量限制。 有关用户实例的详细信息,请参阅 Apache Kafka 简介。 |
用户群组 ID (条件分析) | 可选字符串,用于唯一标识一组用户的用户群组。 此参数也称为用户群组名称。 如果未指定用户组 ID,GeoEvent Server 会分配一个名为 geoevent-consumer 的静态用户组 ID。 此静态用户组 ID 将在所有未指定用户组 ID 的 Kafka 连接器实例之间共享。 强烈建议您指定自定义用户群组 ID。 有关用户群组的详细信息,请参阅 Apache Kafka 简介。 此参数将在使用自定义 Kafka 属性覆盖设置为否时显示。 |
Kafka 属性文件的已注册文件夹 (条件分析) | 使用 GeoEvent Server 注册的文件夹,其中包含 Kafka .properties 文件。 当使用自定义 Kafka 属性覆盖设置为是时,Kafka .properties 文件将定义自定义 Kafka 属性。 确保使用 GeoEvent Server 注册的文件夹为 Kafka .properties 文件所在位置的完整路径。 此参数将在使用自定义 Kafka 属性覆盖设置为是时显示。 |
Kafka 属性文件名称 (条件分析) | Kafka .properties 文件的名称,该文件包含用于客户端配置的自定义 Kafka 属性。 指定的文件名称不应包含 .properties 扩展名。
此参数将在使用自定义 Kafka 属性覆盖设置为是时显示。 |
从头开始 | 指定是从主题的开始偏移还是从用户的上次偏移开始使用记录。 默认为是。
注:有关偏移的详细信息,请参阅 Apache Kafka 配置。 |
事件分隔符 | 单个文字字符,表示事件数据记录的结束。 Unicode 值可用于指定字符分隔符。 该字符不应用引号括起。 换行符 (\n) 是常见的记录结束分隔符。 |
字段分隔符 | 用于将消息中的一个属性值与另一个属性值分开的单个文字字符。 Unicode 值可用于指定字符分隔符。 该字符不应用引号括起。 逗号是常见的属性分隔符。 |
创建 GeoEvent 定义 | 指定是否应将新的或现有的 GeoEvent 定义用于入站事件数据。 GeoEvent Server 需要 GeoEvent 定义,以了解入站事件数据属性字段和数据类型。
|
GeoEvent 定义名称(新) (条件分析) | 分配给新 GeoEvent 定义的名称。 如果已存在具有指定名称的 GeoEvent 定义,则会使用现有的 GeoEvent 定义。 收到的第一个数据记录将用于确定后续数据记录的预期方案,将根据第一个数据记录的方案创建新的 GeoEvent 定义。 此参数在创建 GeoEvent 定义设置为是时显示,设置为否时隐藏。 |
GeoEvent 定义名称(现有) (条件分析) | 在调整接收数据以创建事件数据以供 GeoEvent 服务处理时使用的现有 GeoEvent 定义的名称。 此参数在创建 GeoEvent 定义设置为否时显示,设置为是时隐藏。 |
从字段构建几何 | 指定输入连接器是否应使用作为属性接收的坐标值构造点几何。 默认为否。
|
X 几何字段 (条件分析) | 入站事件数据中包含点位置 x 坐标部分(例如水平或经度)的属性字段。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Y 几何字段 (条件分析) | 入站事件数据中包含点位置 y 坐标部分(例如垂直或纬度)的属性字段。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Z 几何字段 (条件分析) | 入站事件数据中包含点位置 z 坐标部分(例如深度或高度)的字段的名称。 如果留空,则将省略 z 值,并将构建 2D 点几何。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
默认空间参考 | 当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。 |
预期日期格式 | 该模式用于匹配日期/时间值的预期字符串表示形式,并将它们转换为 Java 日期值。 模式的格式遵循 Java SimpleDateFormat 类约定。 而 GeoEvent Server 更偏好以 ISO 8601 标准表示的日期/时间值,通常被识别为日期值的日期/时间值的多个字符串表示可以转换为 Java 日期值,且无需指定预期日期格式模式。 其中包括:
如果收到的日期/时间值使用并非上述五种之一的约定表示,则必须指定一个预期日期格式模式以便 GeoEvent Server 了解如何调整日期/时间值。 |
数字格式化语言 | 从数据值格式化数字时用于区分区域设置敏感行为的区域设置标识符 (ID)。 默认值为安装 GeoEvent Server 的计算机的区域设置。 有关详细信息,请参阅 Java 支持的区域设置。 |
需要身份验证 | 指示连接到 Kafka 集群(或 Kafka broker)是否需要身份验证。 默认为否。
|
身份验证方式 (条件分析) | 指定用于保护 Kafka 集群的安全协议。 可用安全协议包括 TLS 1.2 和 SASL。
注:在使用 Kerberos 时,请确保运行 ArcGIS GeoEvent Server 的操作系统用户账户具有 Kerberos 设置和配置中密钥表文件的读取权限。 此参数在需要身份验证设置为是时显示。 |
凭据文件的已注册文件夹 (条件分析) | 使用 GeoEvent Server 注册的文件夹中包含 Kafka 集群的 PKI 文件(x509 证书)。 确保使用 GeoEvent Server 注册的文件夹为 Kafka 集群证书所在位置的完整路径。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
凭据配置文件 (条件分析) | Kafka 集群 PKI 文件的名称(x509 证书)。 必须以 PKCS#12 格式存储此证书及其关联私钥,表示为具有 .p12 或 .pfx 扩展名的文件。 请输入文件名和扩展名。
注:此参数仅支持证书文件名称和扩展名。 证书的相对路径不应在此参数中指定。 使用凭据文件的已注册文件夹参数注册证书文件的完整路径。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
Keystore 密码 (条件分析) | Kafka 集群 PKI 文件的密码(x509 证书)。 也称为证书的私钥。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
SASL 身份验证类型 (条件分析) | 指定 Kafka 集群支持的 SASL 身份验证机制类型。 可用 SASL 身份验证类型包括 SASL GSSAPI (Kerberos) 和 SASL PLAIN。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL。 |
Kerberos 主体 (条件分析) | 特定用户的 kerberos 主体,例如 GeoEventKafkaClient1@example.com。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
使用密钥表 (条件分析) | 指示是否在 Kerberos 设置中使用密钥表。 默认为是。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
存储密钥 (条件分析) | 指示是否在 Kerberos 设置中存储密钥。 默认为是。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
用户名 (条件分析) | 指定用于使用 Kafka 集群进行身份验证的用户名。 也称为与某些云提供商的连接字符串。 有关正确的语法,请参阅所选云提供商的文档。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/PLAIN。 |
密码 (条件分析) | 指定用于使用 Kafka 集群进行身份验证的密码。 有关正确的语法,请参阅所选云提供商的文档。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/PLAIN。 |
注意事项和限制
使用“订阅 Kafka 主题以获取文本”输入连接器时,需要牢记几点注意事项:
- 对用户的管理和优化不足会导致“订阅 Kafka 主题以获取文本”输入连接器的某些实例无法检索任何数据。 用户组中的用户数量受到 Kafka 主题分区数量的限制。 如果用户组中的用户数量超过 Kafka 主题的可用分区数量,则超出的用户将无法使用数据。 为避免发生上述情况,需考虑对用户数量进行优化,使其最好与 Kafka 主题的分区数量保持一致,或者为每个连接器实施不同的用户组。 有关用户和用户组的详细信息,请参阅 Kafka 文档。
- “订阅 Kafka 主题以获取文本”输入连接器是 Kafka 的客户端用户。 此输入连接器适用的注意事项与 Kafka 的任何其他客户端用户的注意事项相同。 例如,如果此输入连接器未从 Kafka 主题接收数据,但是 Kafka 的独立客户端用户从中接收数据,则需考虑拥有两个客户端用户所涉及的因素。 这包括但不限于配置的用户组 ID、主题上可用的分区数量以及现有用户的数量。 或者,如果输入连接器快速连续地停止或启动,请从用户角度考虑对 Kafka 产生的影响。 重新平衡 Kafka 主题的分区可能会使输入连接器无法立即作为同一用户组下的用户重新加入。