跳到内容

高可用性和负载均衡

RStudio Connect的多个实例可以英格兰vs伊朗让球在高可用性(HA)和负载平衡配置中共享相同的数据。为了简单起见,我们将这些配置称为“HA”。

HA清单

按照下面的检查清单为HA配置多个RStudio Connect实例:英格兰vs伊朗让球

  1. 安装和配置在每个节点上安装相同版本的RStudio英格兰vs伊朗让球 Connect。

  2. 迁移到PostgreSQL数据库(如果运行SQLite)。集群中的所有节点必须使用相同的PostgreSQL数据库。

  3. 每个服务器的配置服务器。DataDir指向:指向相同的共享位置;看到变量数据而且共享数据目录要求

  4. 如果数据库。Dir设置已自定义,确保它指向每个服务器上一致的共享位置;看到变量数据而且共享数据目录要求

  5. 每个服务器的配置服务器。LandingDir指向相同的共享位置(如果使用自定义登录页面);看到使用自定义登录页面而且共享数据目录要求

  6. 每个服务器的配置指标。DataPath公司目录指向唯一的服务器位置;看到指标配置附录。或者,您也可以考虑使用石墨将所有指标写入单个位置;看到指标要求

  7. 配置您的负载均衡器,将流量路由到您的RStudio连接节点与粘性会话;英格兰vs伊朗让球看到rsconnect饼干的支持卡塔尔世界杯欧洲预选赛赛程表

HA的局限性

时钟同步

RStudio Connect 英格兰vs伊朗让球HA配置中的所有节点必须有它们的时钟同步,最好使用国家结核控制规划.同步节点之间的系统时钟失败会导致未定义的行为,包括数据丢失。

一致性用户和组

英格兰vs伊朗让球RStudio Connect使用一个或多个目标帐户执行您的内容。的英格兰vs伊朗让球rstudio-connect用户及其主组(也命名为英格兰vs伊朗让球rstudio-connect)在安装RStudio Connect英格兰vs伊朗让球时创建。的英格兰vs伊朗让球rstudio-connectUser作为for的默认值应用程序。RunAs和在执行内容时使用。Unix组应用程序。SharedRunAsUnixGroup的主组应用程序。RunAs用户,在本例中,英格兰vs伊朗让球rstudio-connect

必须确保用于执行部署内容的所有Unix用户帐户和组的UID/GID一致。

id命令是检查单个Unix用户名的用户和组标识符的一种方法。系统管理员可以帮助在主机集群中以统一的方式配置帐户。

id 英格兰vs伊朗让球rstudio-connect# => uid=998(英格兰vs伊朗让球rstudio-connect) gid=998(rstudio-connect) groups=998(rstudio-connect)

节点管理

英格兰vs伊朗让球RStudio在HA配置中的连接节点不自我意识到HA。负载平衡的责任完全由负载平衡器承担,负载平衡器负责将请求定向到特定节点,并检查节点是否可以接受请求。

数据库的需求

英格兰vs伊朗让球RStudio Conn卡塔尔世界杯欧洲预选赛赛程表ect仅在使用PostgreSQL数据库时支持HA。如果你正在使用SQLite,请切换到PostgreSQL。看到改变数据库提供商部分。

共享数据目录要求

英格兰vs伊朗让球RStudio Connect管理服务器数据目录中的上传内容。此数据目录必须是共享位置。的服务器。DataDir每个节点上的配置必须指向相同的共享位置。看到变量数据部分获取有关服务器数据目录的更多信息。我们建议并支持:卡塔尔世界杯欧洲预选赛赛程表

请注意

如果选择配置,则可选数据库。Dir,(不是必需的),这也必须指向相同的共享位置。

指标要求

默认情况下,RStudi英格兰vs伊朗让球o Connect将指标写入一组RRD文件。我们不支持度量聚合,卡塔尔世界杯欧洲预选赛赛程表每个服务器必须维护一组单独的RRD文件以避免冲突。特定节点的Connect仪表板将只显示该节点的指标。看到指标配置附录中有关配置唯一标识符的信息指标。DataPath公司为每个服务器。

英格兰vs伊朗让球RStudio Connect包括可选的将指标写入石墨的支持。卡塔尔世界杯欧洲预选赛赛程表如果您希望聚合度量,请考虑使用Graphite或与Carbon协议兼容的任何监视工具。看到历史指标为更多的信息。

闪闪发光的应用

闪亮的应用程序依赖于到单个服务器的持久连接。请将您的负载平衡器配置为使用基于cookie的sticky会话,以确保Shiny应用程序在使用HA时能够正常工作。

rsconnect饼干的支持卡塔尔世界杯欧洲预选赛赛程表

对于基于cookie的粘性会话支持,您需要确保您的R客户机(包括卡塔尔世界杯欧洲预选赛赛程表RStudio IDE)使用英格兰vs伊朗让球rsconnect版本0.8.3或更高版本。版本的rsconnect在0.8.3之前,不包括对cookie的支持。卡塔尔世界杯欧洲预选赛赛程表

更新HA节点

当对HA配置中的RStudio Connect节点应用更新英格兰vs伊朗让球时,您应该遵循以下步骤以避免由于数据库模式不一致而导致的错误:

  1. 停止集群中的所有R英格兰vs伊朗让球Studio Connect节点。

  2. 遵循升级升级一个RStudio Connect节点的说明。英格兰vs伊朗让球第一次更新将升级数据库模式(如果需要),并在该实例上启动RStudio Connect。英格兰vs伊朗让球

  3. 使用相同的方法升级其余节点升级指令。

如果您在升级另一个节点时忘记停止任何RStudio 英格兰vs伊朗让球Connect节点,这些节点将使用预期较早模式版本的二进制文件,并将受到意外和潜在严重错误的影响。这些节点将在30秒内检测到过期的数据库模式并自动关闭。

降级

如果您希望从HA环境转移到单节点环境,请遵循以下步骤:

  1. 停止所有连接所有节点的服务

  2. 除非您希望继续使用负载平衡器,否则请重新配置网络,将流量直接路由到其中一个节点。

  3. 如果希望将所有共享文件数据移动到节点,则

    1. 配置服务器的服务器。DataDir指向节点上的某个位置,并将NFS共享中的所有数据复制到该位置;看到变量数据

    2. 如果使用自定义登录页面,则需要配置服务器。LandingDir指向节点上的某个位置,并将NFS共享中的自定义登录页数据复制到该位置;看到使用自定义登录页面

    3. 配置服务器的指标。DataPath公司目录以指向适当的位置。如果需要,将数据从NFS共享复制到此位置;看到指标要求

  4. 如果要将数据库移动到该节点,请在该节点上安装PostgreSQL并复制数据。将PostgreSQL数据库从一台服务器移动到另一台服务器超出了本指南的范围。请注意,我们不支持从PostgreSQL迁移回SQLi卡塔尔世界杯欧洲预选赛赛程表te。

  5. 启动Connect进程;看到停止和启动

备份、快照和数据完整性

请注意

不要试图还原RStudio Connect运行时拍摄的快照。英格兰vs伊朗让球这样的增量快照可能对安全审计很有用。此外,目录中有压缩的归档文件,如果需要,可以从RStudio IDE重新部署。英格兰vs伊朗让球

快速备份的步骤

  1. 停止RStudio Connect服务器的所英格兰vs伊朗让球有节点

    #在运行RStudio Connect的每个节点上执行英格兰vs伊朗让球Sudo systemctl停止rstu英格兰vs伊朗让球dio-connect
  2. 将RStu英格兰vs伊朗让球dio Connect的postgres数据库转储到一个文件:

    #仅由具有数据库访问权限的用户在Postgres服务器上执行#更改connect数据库的用户名称为“-U connect”pgdump -U connect connect > connect-backup.sql
  3. 复制或存档数据目录到存储

    #只在一台服务器上执行,假设您在/mnt/backup-server上有一个备份服务器Cp -rp /var/lib/英格兰vs伊朗让球rstudio-connect /mnt/backup-server/rstudio-connect-backup . sh

    #仅在一台服务器上执行Tar CVPZF /mnt/backup-server/英格兰vs伊朗让球rstudio-connect-backup.tar.gz /var/lib/rstudio-connect
  4. 完成postgres转储英格兰vs伊朗让球和数据备份后,重新启动RStudio Connect服务器。

    #在运行RStudio Connect的每个节点上执行英格兰vs伊朗让球Sudo systemctl start 英格兰vs伊朗让球rstudio-connect

快速恢复步骤

请注意

快速恢复用于现有RStudio Connect服务器集的“回滚”。英格兰vs伊朗让球如果您丢失了整个RStudio Connect主机,那么在英格兰vs伊朗让球执行快速恢复步骤之前,您需要按照说明重新安装RStudio Connect及其依赖项。

  1. 确保RStudio Co英格兰vs伊朗让球nnect完全关闭

    #在运行RStudio Connect的每个节点上执行英格兰vs伊朗让球Sudo systemctl停止rstu英格兰vs伊朗让球dio-connect
  2. 恢复RStudio Co英格兰vs伊朗让球nnect数据库

    #仅由具有数据库访问权限的用户在Postgres服务器上执行#更改connect数据库的用户名称为“-U connect”psql -U connect -d connect -1 connect-backup.sql
  3. 恢复数据目录文件

    #只在一台服务器上执行,假设您在/mnt/backup-server上有一个备份服务器Cp -rp /mnt/backup-server/英格兰vs伊朗让球rstudio-connect-backup /var/lib/rstudio-connect .使用实例

    #仅在一台服务器上执行xvpzf /mnt/backup-server/rstu英格兰vs伊朗让球dio-connect-backup.tar.gz -C /var/lib/rstudio-connect .tar.gz
  4. 恢复完成后,重新启动RS英格兰vs伊朗让球tudio Connect服务器

    #在运行RStudio Connect的每个节点上执行英格兰vs伊朗让球Sudo systemctl start 英格兰vs伊朗让球rstudio-connect

备份与恢复详细说明

英格兰vs伊朗让球RStudio Connect有两个数据源,对于正常操作,它们应该彼此一致:数据目录和数据库。

在单节点配置中,数据目录通常是主机节点上的某个目录,数据库也是位于主机节点上的一个SQLite文件。

在HA、多节点配置中,数据目录通常位于NFS共享上,数据库是postgres数据库,通常托管在其他地方。

在备份单个节点时,只需停止节点,复制数据目录和数据库文件,然后重新启动节点即可。

对于多节点配置,还可以停止所有节点,复制数据目录,转储数据库使用pg_dump,然后重新启动所有节点。这是保证您的RStudio Connect环境可以在没有任何不一致的情况下恢复的唯一方法英格兰vs伊朗让球。

为了解决日常数据丢失的问题,一些用户可能希望在Connect运行时使用相同的方法对数据库和数据目录进行增量快照。这些不保证是一致的,您不应该尝试用它们来恢复RStudio Connect安装。英格兰vs伊朗让球值得注意的是:

  • 根据两个快照之间的时间间隔,数据库可能有数据目录快照中没有反映的记录,反之亦然。

  • 因为网络化的文件系统可能会锁定当前正在使用的某些文件,快照过程可能会比开始的时间晚得多,从而导致快照与任何状态都不一致。

    • 示例:假设成功复制了应用程序X v0.1,而应用程序Y在NFS上被锁定。在等待app Y解锁的同时,上传的是app X v0.2。然后创建app Z。快照将反映应用X v0.1, Y和Z,尽管唯一一致的状态是“应用X v0.1, Y”和“应用X v0.2, Y, Z”。
  • 复制数据目录并对数据库进行快照将在网络文件系统和数据库上产生争用,这可能导致用户的服务变慢或中断。考虑在用户活动较低时警告用户和/或执行增量快照。

认识到您将无法恢复整个备份,因此只快照数据目录或数据库中您希望保留的那些部分可能是有用的。例如,你可以用rsync查找自上次备份执行以来添加的新包,并将它们复制到快照目录。

HA细节

并发计划文档渲染

应用程序。ScheduleConcurrency配置设置指定一台主机上可以并发运行的计划作业数量。缺省情况下,两个调度作业可以同时运行。

具有强大处理能力的主机可以增加此设置。如果您的环境有许多长时间运行的报告,这将很有帮助。

特定主机可以通过设置禁用处理计划的作业应用程序。ScheduleConcurrency为零。

;/etc/英格兰vs伊朗让球rstudio-connect / rstudio-connect.gcfg(应用程序)ScheduleConcurrency0

请注意

如果每个主机都设置,则不会执行调度作业应用程序。ScheduleConcurrency为零。

应用程序。ScheduleConcurrency设置不会影响临时呈现请求、托管api或应用程序。

并发应用程序和Ad-Hoc渲染

与应用程序、托管api、特别呈现请求和包部署相关联的每个进程都运行在发起请求的服务器上。我们依赖您的负载均衡器将这些请求分发到适当的Connect节点。每个服务器强制执行应用程序的最小和最大进程限制。例如,如果一个应用程序允许最多10个进程,那么每个服务器将强制执行最多10个进程。看到调度器更多信息请参见配置附录。

轮询

英格兰vs伊朗让球RStudio Connect节点轮询数据目录中新的调度作业:

  • 每隔5秒,然后

  • 每次完成预定的工作后。

废弃的过程

在处理计划的作业时,RStudio Connect节点通过“心跳”定期更新数英格兰vs伊朗让球据库中作业的元数据。如果节点脱机且“心跳”停止,则另一个节点最终将认领放弃的作业并再次运行它。因此,如果在运行计划报表时服务器脱机或Connect进程关闭,则计划作业可能会运行两次。

废弃的闪闪发光的应用

Shiny应用程序依赖于到单个服务器的持久连接。如果与特定Shiny应用程序会话相关联的服务器宕机,那么Shiny应用程序将会失败。但是,只要刷新应用程序,就会在可用的服务器上产生一个新的会话,假设负载平衡器检测到失败的节点并将您指向一个正在工作的节点。

控件支持客户端重新连接的闪亮应用程序卡塔尔世界杯欧洲预选赛赛程表会话allowReconnect美元(真正的)特性将自动将Shiny应用程序重新连接到工作节点。看到https://shiny.英格兰vs伊朗让球rstudio.com/articles/reconnecting.html