# 升级 Typesense
在更新 Typesense 版本之前,请确保您已阅读从当前版本到目标版本之间的所有发布说明 (opens new window)。
虽然我们努力尽量减少版本间的破坏性变更,但有时仍可能存在影响搜索行为的默认值变更或行为变化。因此我们建议在更新生产环境前,先在测试环境中进行版本升级测试。
我们还建议准备一组测试搜索词和预期结果,用于验证版本间的行为变化。
# Typesense Cloud
如果您在 Typesense Cloud 上运行 Typesense:
- 登录后点击顶部导航栏的 "Clusters" 链接
- 点击您的 Typesense Cloud 集群仪表板链接
- 在左侧面板点击 "Cluster Configuration" 部分
- 点击页面顶部的 "Modify" 按钮
- 在下一个界面中,您可以选择升级时间窗口,并指定要修改的配置参数
- 点击页面底部的 "Schedule Change"
升级完成后,您将在账户页面设置的集群警报邮箱收到通知邮件。
Typesense Cloud 支持以下配置变更:
- 升级 Typesense Server 版本
- 降级 Typesense Server 版本(当版本支持时)
- 升级或降级内存容量
- 升级或降级 CPU 核心数
- 启用或禁用高性能磁盘
- 启用或禁用 GPU 加速
- 启用高可用性
对于其他类型的配置变更,您需要重新创建一个具有所需配置的新集群并在其中重建索引。
# Typesense Cloud 上的零停机升级
对于启用了高可用性(High Availability)和/或搜索交付网络(Search Delivery Network)的集群:升级将逐个节点进行。因此集群中的其他节点会继续处理流量,您应该会看到一个零停机时间的升级。 了解更多高可用性适用场景 (opens new window)的相关信息。
重要提示
当您拥有启用高可用性的集群时,在触发配置变更前,请确保您已按照此文档所述配置客户端库,包含集群仪表板中显示的所有主机名。
对于单节点非高可用性集群:升级过程中会有约5-60分钟的停机时间,具体取决于数据集大小。建议您启用集群的高可用性功能以避免此类停机。请注意,集群一旦启用高可用性后将无法关闭该功能。
# Typesense 自托管版本
更新Typesense的过程非常简单 - 安装新版本的Typesense并重启服务即可。您不需要重新索引任何文档。 Typesense会自动使用磁盘上的原始数据,并根据需要在新版本上重建内存索引。
如果您使用Docker镜像,只需停止正在运行的容器,然后用新版本执行docker run
命令。请确保传递给docker run
的参数与之前相同。
如果您通过预编译二进制文件或包管理器安装Typesense,只需下载新版本的Typesense,替换二进制文件,或使用包管理器升级DEB/RPM包并重启进程即可。
# 自托管环境下的零停机升级
如果您在多节点高可用配置中部署了Typesense,可以通过滚动升级实现零停机升级。
操作时,请确保每次只更新一个节点,等待刚更新的节点/health
端点返回状态码200
后,再继续更新下一个节点。
# 升级顺序
升级过程中,需要确保集群领导者(leader)节点始终使用旧版Typesense。
换句话说,您需要先升级所有跟随者(follower)节点,最后升级领导者节点。
可以通过/debug
端点响应中的state
字段值来判断节点角色。
State | 角色 |
---|---|
1 | LEADER |
4 | FOLLOWER |
- 在领导者节点触发快照创建进行数据备份
- 任选一个跟随者节点,停止Typesense服务,通过tar包/DEB/RPM安装器/Docker替换二进制文件(下方提供各安装方式的代码片段)
- 重新启动Typesense服务,等待节点以跟随者身份重新加入集群并完成数据同步(
/health
应返回健康状态) - 对其余_跟随者_节点重复步骤2-3,此时保持领导者节点不受影响
- 所有跟随者升级到目标版本后,停止领导者节点的Typesense服务
- 其他节点将自动选举出新领导者并继续工作
- 在原领导者节点替换二进制文件后重新启动Typesense服务
- 该节点将以跟随者身份重新加入集群,升级完成
(注:保持所有代码块/命令/链接/锚点不变,仅翻译说明性文本)