使用ElasticSearch最麻烦的是重建索引。 例如,如果更改了数据类型,则需要重新构建索引。 为了不影响当前使用的场景,需要能够顺利升级的计划。
大部分资料都是通过ElasticSearch alias的方式实现的,今天我们就与配置中心的合作进行说明。
划重点:
配置中心需要两个配置。
订单名称:订单
订单管理器:订单
例如,最初索引为order,因此可以升级该索引,以像使用API一样增加版本的概念。 例如,在索引名称之后添加版本并将其更改为order_v2。
配置中心:
订单名称:订单
orderindexnamejob :订单v2
假设有一个通过同步数据来索引的作业。 在此作业中获取索引名称的是order_v2。 首先运行这个作业一次,同步完成数据。
此时,咨询处全部使用以前的订单,但没有任何影响。 新索引完成后,可以直接更改配置中心的内容,从而实现平稳过渡。
订单名称查询:订单v2
orderindexnamejob :订单v2
注意: Job只是总量的数据同步。 如果有其他增量同步逻辑,则增量端也需要进行处理,并双写两个索引。 否则,新添加的数据可能会在新索引中丢失。
如果更改为新版本的索引后出现问题,也可以立即修改配置,降至上一个索引,运行一段时间后不再有问题,然后删除旧索引以释放空间。
在很多场景中,利用配置中心的实时更新特性,可以进行很多扩展,非常方便。
作者:顺利吐司,简单的技术爱好者,《Spring Cloud微服务-全栈技术与案例解析》,《Spring Cloud微服务 入门 实战与进阶》作者,公号猿天地发起人。