升级指南 | 如何从Apinto v0.6升级到v0.7

前言

Apinto v0.7版本已经发布,由于该版本主要是针对Raft协议的实现进行了一次升级,使用etcd的kv实现替换了eosc自研的kv实现,导致新旧版本数据不兼容,若直接使用0.7版本替换旧版本,会导致数据加载失败。

Raft协议升级考虑

  • 由于早期选型时对etcd的源码调研不够完整,旧版本只使用了etcd的raft协议实现,eosc重新实现了kv的处理,该实现的可靠性、性能未经证明
  • 本次升级抛弃了eosc自己实现的kv,使用etcd内置的kv实现,该模型及代码经历过海量用户长时间、大规模的使用,可靠性、性能方面具有一定保证,并且方便以后同步升级到etcd的新版本

为了确保前后数据可以正常迁移备份,官方提供工具库apinto-import进行数据的导入操作,确保数据正常迁移。升级操作分为单节点升级和集群升级两种情况,详细操作如下

单节点升级

1、将旧数据导出,浏览器访问接口:{ip}:{port}/export

2、关闭旧节点

./apinto stop

3、下载并解压新版本节点

cd {存放目录} && wget https://github.com/eolinker/apinto/releases/download/v0.7.0/apinto-v0.7.0.linux.x64.tar.gz && tar -zxvf apinto-v0.7.0.linux.x64.tar.gz && cd apinto

4、启动新节点

./apinto start

5、下载并解压导入程序

wget https://github.com/eolinker/apinto-import/releases/download/v1.0.0/apinto-import-v1.0.0.linux.x64.tar.gz && tar -zxvf apinto-import-v1.0.0.linux.x64.tar.gz && cd apinto-import

6、导入配置数据(当前版本只支持zip类型文件)

./apinto-import import -path "{压缩包名称}" --apinto-address {apinto访问地址}

示例:

./apinto-import import "export_2022-07-29 161215.zip" --apinto-address http://127.0.0.1:9400

集群节点升级

1、下载并解压导入程序

wget https://github.com/eolinker/apinto-import/releases/download/v1.0.0/apinto-import-v1.0.0.linux.x64.tar.gz && tar -zxvf apinto-import-v1.0.0.linux.x64.tar.gz && cd apinto-import

2、将旧数据导出,浏览器访问接口:{ip}:{port}/export

3、进入任意节点服务器(下述描述为节点A),让该节点离开集群

./apinto leave

4、关闭节点A

./apinto stop

5、下载并解压新版本节点

cd {存放目录} && wget https://github.com/eolinker/apinto/releases/download/v0.7.0/apinto-v0.7.0.linux.x64.tar.gz && tar -zxvf apinto-v0.7.0.linux.x64.tar.gz && cd apinto

6、启动新节点A

./apinto start

7、导入配置数据

./apinto-import import -path "{压缩包名称}" -apinto-address {apinto访问地址}

示例:

./apinto-import import -path "export_2022-07-29 161215.zip" -apinto-address http://127.0.0.1:9400

8、进入到剩余的其他节点,依次执行步骤3、4、5、6

9、新节点加入节点A所在集群

./apinto join --ip {新节点广播ip} --addr={节点A请求地址}

示例:

./apinto join --ip 10.18.0.1 --addr=10.18.0.2:9400

写在最后

目前Apinto 及其周边项目已经开源,我们希望通过Apinto强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展Apinto的插件,以满足不同的业务市场需求。
Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。
这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

  • 查找bugs,取得性能上的提升

  • 帮助完善文档,提供用户操作体验

  • 提交你们的issue,让我们知道您的奇思妙想

  • 参与自定义插件的开发,丰富apinto的能力

  • ...

欢迎各位开源爱好者参与到Apinto 项目中,和我们一起为开源事业贡献自己的力量。

联系我们