在生产环境中升级Cassandra db模式

在生产环境中升级Cassandra db模式,cassandra,production,Cassandra,Production,查询是我们今天在分布式云环境中面临的最常见的问题 我们在实现应用程序之前设计cassandra模式(版本,v1),并将使用相同的模式从应用程序(版本,v1)查询(或使用)。 现在,当应用程序需要增强时,如何在不停止(中断)向最终用户提供服务的情况下处理出现的多个问题 假设app1有三个实例,使用db和三个集群节点作为后端 通过添加新列并删除一列,增强了app和db架构。由于应用程序应始终具有高可用性,其中一个应用程序实例接收数据并使用删除的列查询数据库,这可能导致列族不匹配 查询: 阻止服务和重

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

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

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


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

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