第 2 部分 - 了解 Tableau Server 部署参考体系结构
下图显示了相关的 Tableau Server 进程以及它们在参考架构中的部署方式。此部署被认为是适合企业的最小 Tableau Server 部署。
本主题中的流程图旨在显示每个节点的主要定义流程。许多支持进程也在图中未显示的节点上运行。有关所有进程的列表,请参见本指南的配置部分,即第 4 部分 - 安装并配置 Tableau Server。
Tableau Server 进程
Tableau Server 参考体系结构是一个四节点的 Tableau Server 群集部署,在 PostgreSQL 上有外部存储库:
- Tableau Server 初始节点(节点 1):运行所需的 TSM 管理和许可服务,这些服务只能在群集中的单个节点上运行。在企业情境中,Tableau Server 初始节点是群集中的主节点。此节点还与节点 2 一起运行冗余应用程序服务。
- Tableau Server 应用程序节点(节点 1 和节点 2):这两个节点提供客户端请求、连接并查询数据源以及数据节点。
- Tableau Server 数据节点(节点 3 和节点 4):两个专用于管理数据的节点。
- 外部 PostgreSQL:此主机运行 Tableau Server 存储库进程。对于 HA 部署,您必须运行额外的 PostgreSQL 主机以实现主动/被动冗余。
您还可以在 Amazon RDS 上运行 PostgreSQL。有关在 RDS 上运行存储库与在 EC2 实例上运行存储库之间的差异的详细信息,请参见“Tableau Server 外部存储库”(Linux(链接在新窗口中打开))。
使用外部存储库部署 Tableau Server 需要 Tableau Advanced Management 许可证。
如果您的组织没有内部 DBA 专业知识,您可以选择在默认的内部 PostgreSQL 配置中运行 Tableau Server 存储库进程。在默认情况下,存储库在具有嵌入式 PostgreSQL 的 Tableau 节点上运行。在这种情况下,我们建议在专用 Tableau 节点上运行存储库,并在其他专用节点上运行被动存储库以支持存储库故障转移。请参见“存储库故障转移 (Linux(链接在新窗口中打开))”。
例如,本指南中描述的 AWS 实现解释了如何在 EC2 实例上运行的 PostgreSQL 上部署外部存储库。
可选:如果您的组织使用外部存储,您可以将 Tableau 文件存储部署为外部服务。本指南不包括核心部署方案中的外部文件存储。请参见“使用外部文件存储安装 Tableau Server(Linux(链接在新窗口中打开))”。
使用外部文件存储部署 Tableau Server 需要 Tableau Advanced Management 许可证。
PostgresSQL 存储库
Tableau Server 存储库是用于存储服务器数据的 PostgresSQL 数据库。此数据包括有关 Tableau Server 用户、组和组分配、权限、项目、数据源和数据提取元数据的信息以及刷新信息。
默认的 PostgresSQL 部署会消耗将近 50% 的系统内存资源。根据其使用情况(用于生产和大型生产部署),资源使用量可能会上升。因此,我们建议在未运行任何其他资源密集型服务器组件(比如 VizQL、后台程序或数据引擎)的计算机上运行存储库进程。与任何这些组件一起运行存储库进程将产生 IO 争用、资源约束,并降低部署的整体性能。
节点 1:初始节点
初始节点运行少量重要进程,并与节点 2 共享应用程序负载。
您在其中安装 Tableau 的第一台计算机(即“初始节点”)有一些特有的特征。三个进程只能运行在初始节点上,并且不能转移到任何其他节点(除非在出现故障的情况下):许可证服务(许可证管理器)、激活服务和 TSM 控制器(管理控制器)。
节点 1 故障转移和自动恢复
许可、激活和 TSM 控制器服务对于 Tableau Server 部署的运行状况至关重要。如果节点 1 发生故障,用户仍然可以连接到 Tableau Server 部署,因为正确配置的参考架构会将请求路由到节点 2。但是,如果没有这些核心服务,部署将处于挂起失败的临界状态。请参见初始节点自动恢复。
节点 1 和 2:应用程序服务器
节点 1 和 2 运行 Tableau Server 进程,这些进程提供客户端请求、查询数据源、生成可视化项、处理内容和管理以及其他核心 Tableau 业务逻辑。应用服务器不存储用户数据。
注意:“应用程序服务器”是一个术语,也指 TSM 中列出的 Tableau Sever 进程。“应用程序服务器”的基础进程是 VizPortal。
并行运行时,节点 1 和节点 2 可扩展以服务来自反向代理服务器上运行的负载平衡逻辑的请求。作为冗余节点,如果这些节点之一出现故障,则客户端请求和服务由其余节点处理。
参考架构的设计使互补的应用程序进程在同一台计算机上运行。这意味着进程不会争用计算资源并产生争用。
例如,VizQL(应用程序服务器上的一个核心处理服务)受到 CPU 和内存的高度限制;VizQL 占用计算机上 CPU 和内存的近 60-70%。因此,设计参考体系结构的目的是使其他受内存或 CPU 约束的进程与 VizQL 不在同一节点上。测试表明,负载量或用户数不会影响 VizQL 节点上的内存或 CPU 使用率。例如,减少负载测试中的并发用户数只会影响仪表板或可视化项加载过程的性能,而不会降低资源利用率。因此,根据使用高峰期的可用内存和 CPU,您可以考虑添加更多 VizQL 进程。作为典型工作簿的起始位置,为每个 VizQL 进程分配 4 个内核。
扩展应用服务器
参考架构旨在依据基于使用的模型进行扩展。作为一般起点,我们建议至少使用两个应用程序服务器,每个应用程序服务器最多支持 1000 个用户。随着用户群的增加,计划每增加 1000 个用户就添加一个应用程序服务器。监控使用情况和性能,为您的组织调整每台主机的用户群。
节点 3 和 4:数据服务器
由于以下原因,文件存储、数据引擎 (Hyper) 和后台程序进程位于节点 3 和 4 上的同一位置:
- 数据提取优化:在同一节点上运行后台程序、Hyper 和文件存储可优化性能和可靠性。在提取过程中,后台程序查询目标数据库,在同一节点上创建 Hyper 文件,然后上载到文件存储。通过将这些过程放置在同一节点上,数据提取创建工作流程不需要跨网络或节点复制大量数据。
- 免费资源平衡:后台程序主要占用大量 CPU。数据引擎是一个占用大量内存的进程。将这些进程结合起来可以最大限度地利用每个节点上的资源。
- 数据进程的整合:由于这些进程都是后端数据进程,因此有必要在最安全的数据层中运行它们。在参考架构的未来版本中,应用程序和数据服务器将在不同的层中运行。但是,由于 Tableau 架构中的应用程序依赖性,此时应用程序和数据服务器必须在同一层中运行。
扩展数据服务器
与应用程序服务器一样,规划 Tableau 数据服务器所需的资源需要基于使用的建模。通常,假设每个数据服务器每天最多可以支持 2000 个数据提取刷新作业。随着数据提取作业的增加,请在没有文件存储服务的情况下添加其他数据服务器。通常,双节点数据服务器部署适用于为文件存储服务使用本地文件系统的部署。请注意,添加更多应用程序服务器不会以线性方式影响数据服务器的性能或规模。事实上,除了来自额外用户查询的一些开销外,添加更多应用程序主机和用户的影响很小。