在生产中升级Cassandra db模式

时间:2018-01-30 09:02:35

标签: cassandra production

该查询是我们今天在分布式云环境中面临的最常见问题。

我们在实现应用程序之前设计cassandra模式(版本,v1),并将使用相同的模式从应用程序(版本,v1)查询(或使用)。 现在,当需要增强应用程序时,如何处理多个问题,而不会停止(中断)最终用户的服务。

  1. 假设app1有三个实例,使用带有三个群集节点的db作为后端。
  2. 通过添加新列并删除一列来增强应用和数据库架构。由于应用程序应始终高度可用,因此其中一个应用程序实例接收数据并使用已删除列查询数据库,这可能会导致列族不匹配。
  3. 查询: 阻止服务并使用新版本重新部署所有应用程序是唯一的解决方案吗?

    如何在这种情况下处理数据库升级。

1 个答案:

答案 0 :(得分:1)

您需要分两个阶段进行部署。首先部署需要新列的v2,然后停止使用要删除的列。一旦在所有主机上部署了v2,就可以安全地删除不必要的列。