定义了地图服务的切片方案后,服务将立即开始尝试使用缓存。 任何可以显示地图或影像服务的 ArcGIS 应用程序都将使用缓存,但是,各个应用程序之间检索和使用切片的方式有所不同。
Web 应用程序
您可以添加缓存地图或影像服务以用作 Web 地图中的底图或业务图层。
要将缓存地图服务连接到您的 Web 地图,可以使用 ArcGIS 切片地图服务图层对象。
要将缓存影像服务连接到您的 Web 地图,可以使用 ArcGIS 切片影像服务图层对象。
切片通过使用以下地图切片请求对地图服务进行的 REST 调用从缓存目录中检索: https://<map service URL>/tile/<level>/<row>/<column>
Web 应用程序疑难解答
如果地图的执行速度比预期慢,可以检查地图图像的 URL 以验证应用程序是否正在检索缓存切片。
要验证您的应用程序是否正在检索缓存切片,请完成以下步骤:
- 在您的浏览器中打开应用程序 Web 开发人员工具。
- 单击控制台中的网络选项卡。
- 缩放并平移 Web 地图。
如果您在控制台中看到的 URL 与下方 URL 的格式类似,则您的应用程序正在使用通过 REST 请求获取的缓存切片。
https://gisserver.domain.com:6443/arcgis/rest/services/myService/MapServer/tile/10/1723/3495.jpg
如果看到其他 URL 格式,例如 exportMap 或 exportImage,则应用程序未使用您的缓存。
ArcGIS Pro
要将缓存地图服务添加到 ArcGIS Pro,请参阅将图层添加到 ArcGIS Pro 中的地图或场景。
对切片执行请求时,如果切片比例与缓存中某一给定投影的比例级别匹配,则地图服务将直接返回该切片。 但是,请求通常与缓存中的比例或投影不完全匹配。 在这些情况下,将请求下一个最接近比例的切片,并重新采样以匹配所请求的比例。 重采样比动态生成切片更快;但是,该过程将导致图像看起来与原始切片不同。
注:
重采样过程结束后,在某些比例下可能难以读取缓存的地图标注。
为了确保可读性,建议您采用与创建缓存时所用比接近的比例查看地图。
ArcGIS Pro 在本地缓存地图和影像服务内容,旨在增强会话的地图和影像图层性能。 有关 ArcGIS Pro 中缓存的工作原理的详细信息,请参阅设置缓存选项。
也可以在 ArcGIS Pro 中将缓存数据作为栅格数据集进行访问。 虽然无法查询以栅格形式访问的缓存,但是您可以在与服务器断开连接时查看切片,因为它们不依赖于地图服务。
为客户端启用本地缓存功能
显示缓存的地图或影像服务时,可以允许 ArcGIS 客户端在本地存储切片,防止当用户导航回他们已经查看过的区域时需要再次检索。
注:
用户可能需要先清除其本地缓存,然后才能看到您对缓存所做的更新。
如果您经常更新缓存,则可以选择禁用客户端本地缓存切片的功能。 这样做将确保用户拥有最新的信息,而不是可能存储在其本地缓存中的旧信息。
如果启用了本地缓存,用户可以选择是否在本地存储切片缓存。 用户可以根据需要,选择持续构建本地缓存、为每个应用程序会话构建新的本地缓存或不构建本地缓存。
定义 cacheControlMaxAge 属性
当客户端向 ArcGIS Server 发送请求以显示地图服务时,服务器上的响应通常由浏览器进行缓存,并在一段时间之内重复使用。 此行为有助于实现内容的最佳显示性能。 但您可以根据地图或影像服务及其相关数据在应用程序中的使用方式来调整浏览器使用缓存中响应的时长。
如果重复请求且尚未超过缓存的最长期限,则浏览器将使用缓存的响应而不会将请求发送到服务器。 如果最长期限已过期,则浏览器必须将请求发送到服务器,并通过与其缓存中响应相对应的相关 ETag 值设置 IF-NONE-MATCH 头。 ArcGIS Server 评估请求,并使用 ETag 值来确定响应是否更改。 如果服务器的响应与浏览器中的副本不同,则服务器会将一个新的响应发送到浏览器。 如果响应与浏览器上的副本相同,则服务器会警告浏览器继续在其缓存中使用响应。
对于不允许客户端本地缓存切片的缓存地图服务,默认值为 0。 这将导致浏览器始终重新发送请求,如果内容发生更改,则 ArcGIS Server 将处理并响应该请求。 此默认值适用于大多数应用程序。
对于允许客户端本地缓存切片的缓存地图服务,默认值为 86,400 秒(1 天)。 使用此默认值时,如果请求在 1 天内重复,则浏览器将使用存储在其本地缓存中的响应。 如果缓存地图服务不经常更新,建议将 cacheControlMaxAge 属性增加到 30 天(2,592,000 秒)或更长时间,从而最大限度地降低网络流量。
要将 cacheControlMaxAge 属性添加到服务并编辑其默认值,请执行以下操作:
- 在 Web 浏览器中打开 ArcGIS Server 管理员目录,然后以具有管理员权限的用户身份进行登录。
URL 地址格式为 http://gisserver.domain.com:6443/arcgis/admin。
- 单击服务,然后从服务列表中选择要修改的地图或影像服务。
如果此处没有列出您的服务,则可能在根文件夹下的目录中列出。
- 在服务 - <服务名称> (<服务类型>) 页面,滚动至底部然后单击编辑。
- 在服务属性对话框中,找到服务 JSON 的 "properties" 部分。
- 将 cacheControlMaxAge 属性添加到该部分,然后指定值(以秒为单位)。
以下为示例:
"properties": { "cacheControlMaxAge": "300",
- 单击保存编辑。
- 验证 cacheControlMaxAge 属性和您选择的值是否显示在属性部分中。
使用高可用性文件共享目录
针对本地 GIS 服务器站点缓存,您可以指定使用存储区域网络 (SAN) 或高可用性网络附加存储 (NAS) 的高可用性文件服务器中的目录。 该目录通常由您的信息技术人员配置。
如果您组织的 SAN 或 NAS 具有足够的空间可供缓存使用,则此方法是实现高可用性地图和影像缓存的最简单和最可靠方法。
如果您不具有此类文件服务器的访问权限,则可按如下部分所述在部署的每台计算机上创建缓存目录。
对于高可用性系统,可在云存储中备份缓存目录。 请注意,由于切片需要从云存储检索,与从本地磁盘检索切片相比,地图或影像服务缓存的最终用户可能会遭遇性能损失。 另请确保存储在云存储中的缓存使用紧凑型 v2 存储格式。
配置高可用性缓存
在站点内所有计算机中存储多个地图和影像缓存的副本可使缓存和服务实现高可用性。 在 GIS 服务器站点内的所有计算机上创建目录并将所有缓存复制到每个目录中。 参与 GIS 服务器站点的所有计算机必须具有对每个缓存目录的访问权限。
配置本地缓存目录时,应注意以下事项:
- 如果使用本地缓存目录配置服务,则无法使用按需地图缓存。
- 更新现有缓存的地理处理工具将输出到通用站点缓存目录。 如果您运行这些工具,则必须将缓存移动到每台参与 GIS 服务器计算机的本地缓存目录中。
虽然在 GIS 服务器站点的每台计算机中执行缓存目录会增加管理开销,但这却是在云中实现高可用性 GIS 服务器的唯一方法。
您也可以在本地部署中使用此方法。 如果没有高可用性文件服务器并且您的缓存不经常(或从不)更新,则建议使用此方法。
默认情况下,会将地图和影像缓存写入单独的站点缓存目录。 要配置每台参与 GIS 服务器站点计算机的缓存目录,请执行以下步骤:
- 打开服务器缓存目录的 ArcGIS 服务端点。 URL 格式为 http://gisserver.domain.com:6080/arcgis/admin/system/directories。
- 选择站点缓存。
- 单击编辑。
- 将使用本地目录设置为 TRUE。
- 指定本地缓存目录的路径。 缓存目录需建在所有计算机的同一位置处。
设置后,ArcGIS Server 将在您指定的本地缓存目录中为发布到该计算机的地图和影像服务创建缓存。
- 手动将站点缓存目录的现有缓存数据复制到每一本地缓存目录处。
在试图复制之前,请确保现有缓存已完成构建。
您可以使用 robocopy 移动缓存,例如
robocopy <location of existing cache> <local cache directory> /s