如果您的Dubbo应用已经部署在阿里云上并且尚未使用MSE注册中心,需将应用使用的注册中心迁移至MSE,并实现基本的服务注册与发现功能。本文为您介绍如何将Dubbo应用平滑迁移至MSE。
背景信息
如果您的Dubbo应用已经部署到生产环境并且处于正常运行状态中,此时若想将应用使用的注册中心(例如Zookeeper、Nacos等)迁移到MSE,享受完整的MSE功能,那么在迁移过程中,保证业务的平稳运行不中断是第一要务,而保证应用平台运行不中断迁移到MSE即为平滑迁移。
说明 如果您的应用尚未在生产环境中运行,或者您可以接受停机迁移,可直接使用MSE注册中心。
迁移方案
迁移应用有两种方案,切流迁移、双注册和双订阅迁移。这两种方案都可以保证您的应用正常运行且不中断地完成迁移。
说明 本文为您介绍双注册和双订阅迁移方案。
- 切流迁移
使用Dubbo将原有的服务注册中心切换到MSE,开发一套新的应用,最后通过SLB和域名配置来进行切流。该方案需要重新部署一套已有系统,代价较高。
- 双注册和双订阅迁移
在应用迁移时同时接入两个注册中心(原有注册中心和EDAS注册中心),保证已迁移的应用和未迁移的应用之间能够相互调用。
通过双注册和双订阅迁移应用的架构图如下:
- 已迁移的应用和未迁移的应用可以互相发现,从而实现互相调用,保证了业务的连续性。
- 使用方式简单,只需要添加依赖,并修改一行代码,就可以实现双注册和双订阅。
- 支持查看消费者服务调用列表详情,实时地查看迁移进度。
- 支持在不重启应用的情况下,动态地变更服务注册的策略和服务订阅的策略,只需要重启一次应用就可以完成迁移。
迁移应用
结果验证
清理迁移配置
迁移完成后,删除原有注册中心的配置和迁移过程专用的依赖edas-dubbo-migration-bom
。修改对应的注册中心地址,即将原有注册中心的配置删除,保证Consumer只从MSE订阅,Provider只在MSE注册。
说明 当应用迁移完成之后,需要从注册中心配置中删除旧的配置中心,最后就变成了如下地址。
dubbo.registry.address = zookeeper://mse-e29fa500-p.zk.mse.aliyuncs.com:2181
虽然长期使用dubbo-migration依赖对您业务的稳定性没有影响,但增加了复杂性和出错率,推荐您在迁移完毕后清理掉,然后在业务量较小的时间分批重启应用。
在文档使用中是否遇到以下问题
更多建议
匿名提交