“将要素发送至流服务”输出连接器可用于通过流服务的 WebSocket 将事件数据作为要素 JSON 进行广播。 客户端应用程序可以订阅流服务的 WebSocket 以接收正在广播的要素记录。
流服务类似于传统地图和要素服务,因为在浏览 ArcGIS Server REST 服务目录的内容时,可以找到这些流服务。 流服务是一种 ArcGIS Server 服务,仅当将 ArcGIS GeoEvent Server 许可角色添加到 ArcGIS Enterprise 时才可用。 只能将流服务发布到运行 ArcGIS GeoEvent Server 的计算机。 发布服务需要 GIS Server 许可角色。 流服务强调客户端-服务器工作流的低延迟实时数据传播。 流服务与传统地图和要素服务之间的关键区别在于:流服务通常不提供数据持久性。 流服务的存储最新选项是此类概化的例外。 流服务利用 WebSocket 技术与客户端建立双向通信和数据传播。 客户端订阅实时接收数据,而非轮询地理数据库以检索数据。
除非“将要素发送至流服务”输出连接器已配置并整合到 GeoEvent 服务中,否则已发布的流服务将不会接收或广播任何数据。
有关流服务的详细信息,请参阅流服务。 流服务教程包括练习以更加熟悉流服务。 Esri Community 博客流服务、存储最新和相关功能中提供了流服务功能的视频。
用法说明
使用“将要素发送至流服务”输出连接器时,应记住以下事项:
- 可以使用此输出连接器将事件记录数据格式化为要素 JSON 并通过流服务的 WebSocket 来广播要素记录。
- 此输出连接器可将 JSON 出站适配器与流服务出站传输进行配对。
- 要使用流服务,您必须拥有许可的 ArcGIS Server 和 ArcGIS GeoEvent Server,并且必须运行 GeoEvent Server 服务。
- 如果 ArcGIS Server 下的 GeoEvent Server 正在运行,则可以将其与 ArcGIS Enterprise门户进行联合,但是在利用流服务时,如果未联合 ArcGIS Server,则管理通常更加简单。
- 要引用服务图层,可以使用浏览到服务选项,或使用参考服务类型参数中的服务 URL 选项来指定 URL。 这两个选项都需要首先建立已注册数据存储连接。
- 配置新输出时提供的发布流服务选项可用于直接在 GeoEvent Manager 中发布流服务。
- 要发布流服务,您必须具有现有 GeoEvent 定义,其架构可反映流服务中的所需字段。
- 流服务的基础 WebSocket 将作为 GeoEvent Server(而非 ArcGIS Enterprise)的一部分运行。 使用默认服务器连接发布流服务,并且此服务器连接的 URL 反映 ArcGIS Enterprise 门户端点时,服务发布机制会将流服务发布到正在运行 GeoEvent Server 的计算机。 已发布的服务将作为内容项注册到 ArcGIS Enterprise 门户。
- 为了实现工作流分离,建议您将部署 ArcGIS Enterprise 的服务器计算机与用于运行 GeoEvent Server 的计算机分离。 GeoEvent Server 中的默认服务器连接将维护相关信息,这些信息有助于识别应发布流服务的正确计算机。
参数
以下是“将要素发送至流服务”输出连接器的参数:
参数 | 描述 |
---|---|
名称 | 用于在 GeoEvent Manager 中引用的输出连接器的描述性名称。 |
已注册服务器连接 | 在 GeoEvent Server 中注册为数据存储的 ArcGIS Server 或 ArcGIS Enterprise 连接。 注:必须将流服务发布到使用 GeoEvent Server 许可角色许可并配置的 ArcGIS Server。 发布服务需要 GIS Server 许可角色。 注册的服务器连接中的凭据必须具有管理权限才能发布服务。 有关注册服务器连接的详细信息,请参阅管理数据存储。 |
参考服务类型 | 指定参考服务的选项。
|
文件夹 (条件分析) | ArcGIS Server 服务目录中发现的 ArcGIS Server 服务文件夹。 目前,无法将流服务发布到 ArcGIS Enterprise 门户内容项文件夹。 当 GeoEvent Server 与 ArcGIS Enterprise 门户联合时,将流服务发布到 Root 文件夹。 参考服务类型参数在设置为浏览到服务时显示,设置为服务 URL 时隐藏。 |
流服务名称 (条件分析) | 要将已处理事件数据作为要素记录发送到的流服务的名称。 参考服务类型参数在设置为浏览到服务时显示,设置为服务 URL 时隐藏。 注:必须将流服务发布到使用 GeoEvent Server 许可角色许可的 ArcGIS Server。 不支持将流服务发布到未获得许可并配置为 GeoEvent Server 的 ArcGIS Server。 注册的服务器连接中的凭据必须具有管理权限才能发布服务。 有关注册服务器连接的详细信息,请参阅管理数据存储。 |
服务 URL (条件分析) | 流服务的 URL。 注:通过 URL 引用流服务时,必须建立数据存储连接。 流服务必须是可公开访问的,或者与其凭据建立数据存储连接的用户共享。 参考服务类型参数在设置为服务 URL 时显示,设置为浏览到服务时隐藏。 |
更新间隔(秒) | 通过将已处理事件记录作为要素记录发送到指定流服务,指定输出连接器将刷新其已处理事件记录缓存的时间间隔(以秒为单位)。 默认为 0.1 秒,这意味着将缓存来自已处理事件记录的数据,并且缓存每秒刷新十次。 作为要素记录广播的事件记录必须具有最小化属性和简化的几何形状,以支持低延迟实时数据传播的流服务重点。 |
格式化的 JSON | 指定是否使用空格缩进和换行格式来修饰要素 JSON 字符串。 此 JSON(有时称为 PJSON)通常仅在写入可在文本编辑器中查看其内容的系统文件时适用。 默认为否。
|
强制使用唯一追踪 ID | 指定事件记录已标记 TRACK_ID 的字段是否应该用作唯一标识符来更新流服务广播的要素记录。 默认为否。 注:目前,此参数在 GeoEvent Server 中尚未实现,并且必须保持为其默认值否。请参阅下方的注意事项和限制部分。 |
注意事项和限制
强制使用唯一 TrackID 参数旨在为订阅客户端应用程序提供信息,允许其行为从要素记录接收器更改为允许要素记录更新的接收器。 如果参数设置为否,则订阅流服务广播的默认客户端会将每个要素记录视为新观测。 总体行为会模拟添加要素工作流,在此工作流中会为每个要素记录广播显示新要素记录。 将强制使用唯一 TrackID 参数设置为是可将行为更改为模拟更新要素工作流,其中最新要素记录的位置和属性可以在流服务广播新要素记录时更新。
实际上,如何设置强制使用唯一 TrackID 参数无关紧要。 更改此参数值不会更改已发布的流服务的 JSON 规范。 StreamLayer 的 ArcGIS Enterprise 和 ArcGIS Online web 地图实现目前使用服务的 timeInfo 规范下发现的流服务指定 trackIdField 来控制流图层是否显示具有每个广播的要素记录的新要素记录或将之前接收的要素记录更新为广播的新要素记录。 使用 ArcGIS Maps SDK for JavaScript 实现的 Web 制图应用程序可以模拟此行为或实现其自己的行为。
建议将强制使用唯一 TrackID 参数设置为默认值否,并且通过标记属性字段的方式控制添加要素或更新要素的行为,该属性字段的值需能够用于唯一地标识传感器或可跟踪资产。
如果使用具有已标记 TRACK_ID 的属性字段的 GeoEvent 定义来发布流服务,则客户端应用程序可以从已发布服务的指定 trackIdField 中检索属性字段的名称,并在广播新要素记录时更新图层的缓存或要素显示。 如果使用 GeoEvent 定义来发布流服务,该 GeoEvent 定义没有已标记 TRACK_ID 的属性字段,则发布的流服务在其规范中将不包含 trackIdField 值,并且客户端必须默认将广播的每个要素视为与任何特定传感器或可跟踪资产无关的唯一观测。