Skip to content

Saturn2.1.2版本升级指南

hebelala edited this page Sep 30, 2017 · 42 revisions

1.背景

Saturn 2.1.2版本提供了高可用性的改进,增加了很多功能,同时包含了过去诸多版本的bug fixing。

1.1高可用改进

Saturn 2.1.2版本在高可用方面做了很大的改进。假如ZK集群crash,可以通过Saturn console界面进行切换:将crash的ZK集群所管治的所有域切换到新的ZK集群中去。切换后,executor无须重启即可自动发现新的ZK集群,并且恢复工作。

1.2新功能

Console

  • 限制同一个域的作业数量不超过设定的最大数量。
  • 增加了作业配置历史版本恢复功能。
  • 将注册中心信息通过数据库表进行管理。
  • 将多个ZK集群的域合并到左边的导航树中。
  • 限制Console只能对特定的zk集群进行Sharding管理和Dashboard的统计。

Executor

  • ZK client connection/session timeout可通过环境变量配置
  • ZK集群自动发现

2. 适用范围

由于新版本做了改进和功能修改,因此,一些配置需要变化。另外,对于已有的运行数据,需要做一定的复制迁移。 此次升级适用于所有低于2.1.2的版本。

3. 升级步骤

3.1 Console升级步骤

3.1.1获取并安装Console的2.1.2版本发布包

Saturn Release下载saturn console 2.1.2版本。

3.1.2安装mysql,并创建Saturn数据库表

安装mysql5.0及以上版本,并创建数据库,编码格式为UTF-8。(如果旧版本已经已经安装并使用了数据库,只需要根据2.1.2版本的DDL sql,升级数据库表结构即可)

创建数据库表,表结构的定义在https://raw.githubusercontent.com/vipshop/Saturn/doc/sql/saturn-console-2.1.2.sql

3.1.3初始化Zk集群信息

根据当前的ZK集群,初始化ZK集群信息,参考以下的sql,插入ZK集群信息。有多少个ZK集群,就需要插入对应的数据。

    insert into zk_cluster_info (zk_cluster_key, alias, connect_string) values('/saturn','zk集群1','localhost:2181')

注意:以上sql中的values是样例,请根据实际数据进行更改。

3.1.4配置环境变量

Saturn Console2.1.2版本的环境变量变化如下:

去除

REG_CENTER_JSON_PATH

增加

VIP_SATURN_CONSOLE_CLUSTER(每台Console的集群ID,用来做限定ZK集群的Sharding服务和Dashboard计算,需要配合系统配置一起使用,参考3.1.8节

变化

以下的跟数据库相关的环境变量,在2.1.2版本之前是可选的,在2.1.2版本为必须设定的,因此必须设置以下的环境变量

SATURN_CONSOLE_DB_URL (例如 jdbc:mysql://a.b.c.d:3306/saturn_console)

SATURN_CONSOLE_DB_USERNAME (数据库用户)

SATURN_CONSOLE_DB_PASSWORD (数据库密码)

3.1.5 启动Console

启动Console

3.1.6 复制域和作业数据到数据库(_如果不需要迁移旧数据,请参考3.1.7)

由于2.1.2版本通过数据库表存放域名和作业配置,因此,需要将当前运行的ZK数据复制到数据库表中。

  • (1).复制域信息
    进入控制台->注册中心信息->域与集群管理菜单,点击“初始化映射表”,操作完成后即可将ZK的所有域名复制到数据库表中。
  • (2).修改域名的业务组
    初始化映射表后,域名是没有业务组信息的,可通过更新数据库表namespace_zkcluster_mapping中记录的name字段来更新业务组。后续,saturn-console界面将支持修改业务组。
  • (3).复制作业配置信息
    通过url进入/export_job_config_page页面,点击“复制全量配置”,操作完成后即可将ZK的所有作业配置信息复制到数据库表中。

3.1.7 复制域和作业数据到数据库(_如果是迁移旧数据,请参考3.1.6)

手动在表中namespace_zkcluster_mapping添加zk集群与域名的映射关系。 主要的几个字段:

  • is_deleted(是否删除,0为正常状态,1为删除状态)
  • zk_cluster_key(集群key,对应zk_cluster_info中的zk_cluster_key的值)
  • namespace(域名)
  • name(业务组,多级域名用/分割,例如/父业务组名/子业务组名)

3.1.8 配置Console能进行sharding和Dashboard计算的映射关系

通过url进入/system_config页面,参考里面的配置字段说明,配置CONSOLE_ZK_CLUSTER_MAPPING参数。

3.2 Executor升级步骤

3.2.1获取并安装Executor的2.1.2版本发布包

Saturn Release下载Saturn Executor 2.1.2版本。

3.2.2配置环境变量

去除

因为新版本的Executor是通过Saturn Console的RestAPI,获取ZK地址,因此,此环境变量不需要配置。

VIP_SATURN_ZK_CONNECTION

增加

VIP_SATURN_CONSOLE_URI(指向Saturn Console的访问url,多个使用英文逗号隔开)

可选

以下的环境变量为可选的配置

VIP_SATURN_ZK_CLIENT_SESSION_TIMEOUT(zk会话超时时间)
VIP_SATURN_ZK_CLIENT_CONNECTION_TIMEOUT(zk连接超时时间)