-
Notifications
You must be signed in to change notification settings - Fork 700
Saturn2.1.2版本升级指南
Saturn 2.1.2版本提供了高可用性的改进,增加了很多功能,同时包含了过去诸多版本的bug fixing。
Saturn 2.1.2版本在高可用方面做了很大的改进。假如ZK集群crash,可以通过Saturn console界面进行切换:将crash的ZK集群所管治的所有域切换到新的ZK集群中去。切换后,executor无须重启即可自动发现新的ZK集群,并且恢复工作。
Console
- 限制同一个域的作业数量不超过设定的最大数量。
- 增加了作业配置历史版本恢复功能。
- 将注册中心信息通过数据库表进行管理。
- 将多个ZK集群的域合并到左边的导航树中。
- 限制Console只能对特定的zk集群进行Sharding管理和Dashboard的统计。
Executor
- ZK client connection/session timeout可通过环境变量配置
- ZK集群自动发现
由于新版本做了改进和功能修改,因此,一些配置需要变化。另外,对于已有的运行数据,需要做一定的复制迁移。 此次升级适用于所有低于2.1.2的版本。
从Saturn Release下载saturn console 2.1.2版本。
安装mysql5.0及以上版本,并创建数据库,编码格式为UTF-8。(如果旧版本已经已经安装并使用了数据库,只需要根据2.1.2版本的DDL sql,升级数据库表结构即可)
创建数据库表,表结构的定义在https://raw.githubusercontent.com/vipshop/Saturn/doc/sql/saturn-console-2.1.2.sql
根据当前的ZK集群,初始化ZK集群信息,参考以下的sql,插入ZK集群信息。有多少个ZK集群,就需要插入对应的数据。
insert into zk_cluster_info (zk_cluster_key, alias, connect_string) values('/saturn','zk集群1','localhost:2181')
注意:以上sql中的values是样例,请根据实际数据进行更改。
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 (数据库密码)
启动Console
由于2.1.2版本通过数据库表存放域名和作业配置,因此,需要将当前运行的ZK数据复制到数据库表中。
- (1).复制域信息
进入控制台->注册中心信息->域与集群管理菜单,点击“初始化映射表”,操作完成后即可将ZK的所有域名复制到数据库表中。 - (2).修改域名的业务组
初始化映射表后,域名是没有业务组信息的,可通过更新数据库表namespace_zkcluster_mapping中记录的name字段来更新业务组。后续,saturn-console界面将支持修改业务组。 - (3).复制作业配置信息
通过url进入/export_job_config_page页面,点击“复制全量配置”,操作完成后即可将ZK的所有作业配置信息复制到数据库表中。
手动在表中namespace_zkcluster_mapping添加zk集群与域名的映射关系。 主要的几个字段:
- is_deleted(是否删除,0为正常状态,1为删除状态)
- zk_cluster_key(集群key,对应zk_cluster_info中的zk_cluster_key的值)
- namespace(域名)
- name(业务组,多级域名用/分割,例如/父业务组名/子业务组名)
通过url进入/system_config页面,参考里面的配置字段说明,配置CONSOLE_ZK_CLUSTER_MAPPING参数。
从Saturn Release下载Saturn Executor 2.1.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连接超时时间)