十七、迁移
17.1 标准版到企业版
从基于Axon服务器SE的部署迁移到基于Axon服务器EE的部署有多种好处,Axon提供了一种简单的机制来实现这一点。升级过程主要涉及将事件/快照数据从Axon Server SE节点移动到Axon Server EE集群。
- 升级前流程
Axon Server SE中的所有事件/快照数据(*.events/*.Snapshots)将位于${Axon_SE_Server_home}/Data/default文件夹下,为Axon服务器EE集群提供为默认上下文设置的所需数量的节点。完成并验证后,关闭集群中的所有节点
- 升级过程
将事件/快照数据从单个SE节点复制并替换到EE集群上的每个节点。这些文件应该被复制到每个ee节点的${axon_ee_server_home}/data/default_u位置
重新启动节点
- 验证
登录到Axon服务器EE控制台并查询存储以检查迁移的事件数据是否存在
- 注意
Axon服务器SE上的controldb文件只包含允许访问服务器的用户的信息。Axon Server SE中的用户没有分配给任何上下文或角色。建议不要复制此文件,并在Axon Server EE中重新创建这些用户,并为其分配适当的角色/上下文。
事件数据从默认上下文从Axon SE迁移到Axon EE中的默认上下文只能完成。无法将数据移动到任何其他上下文。
客户机访问Axon Server SE的任何令牌设置也必须在Axon Server EE群集上设置。
17.2 非Axon服务器到Axon服务器
Axon EE服务器包包含一个迁移工具,用于从已经存在的RDBMS事件存储迁移到新的axon EE服务器实例。该工具从现有存储中读取事件和快照,并将它们推送到Axon EE服务器。
迁移工具维护其迁移的状态,因此可以多次运行。
- 升级前流程
为Axon服务器EE群集提供所需数量的节点设置。启动所有节点。
在任何一个管理节点上,创建一个新文件应用程序属性以下位置${axon_ee_server_home}包含定义现有事件存储和目标axon服务器的属性
axoniq.axonserver.servers-Axon服务器群集的主机名和端口的逗号分隔列表。
axoniq.datasource.eventstore.url-包含现有事件存储的JDBC数据存储的url
axoniq.datasource.eventstore.username-连接到包含现有事件存储的JDBC数据存储的用户名
axoniq.datasource.eventstore.password—连接到包含现有事件存储的JDBC数据存储的密码
axon.serializer.events*=jackson-默认设置要求使用XstreamSerializer序列化当前事件存储中的数据。如果使用JacksonSerializer序列化数据,请添加此属性。
在${axon_ee_server_home}下创建一个名为libs的文件夹。根据数据库的类型(Postgres/MySql),所需的JDBC驱动程序jar文件应该放在这个目录中。
- 升级过程
运行命令axonserver-migration.jar
迁移数据的时间将根据现有数据存储的大小和群集中设置的节点数而变化。
- 验证
登录到Axon服务器EE控制台并查询存储以检查迁移的事件数据是否存在。
- 注意
迁移工具只将事件存储数据迁移到Axon服务器。它不会更新token_entry表中的跟踪令牌值。跟踪令牌高度依赖于所使用的实际事件存储的实现。迁移它们是特定于具体情况的,而且容易出错。我们的建议是在迁移后重置跟踪处理器。
迁移工具类似于常规的Axon框架应用程序,因此可以相应地设置属性(例如访问控制/令牌)。