【发布时间】:2020-09-09 09:21:12
【问题描述】:
我有一个巨大的单体,它有大约一百万个实体。我想将数据同步到微服务,以便它始终具有与单体系统相同的具有某些字段的实体副本。有两种方法可以做到这一点:
- 为微服务编写一个API,通过rest调用获取数据 批次
- 编写一个直接连接到数据库的 ETL 服务 单体和微服务数据库来加载数据。
第一种方法的缺点是它会包含大量的 Rest 调用,并且会很慢,因为我可能拥有一百万条记录。第二种方法打破了微服务原则(如果它不是主体,请纠正我),因为除了微服务 ETL 服务将访问数据库。
注意:我只想同步记录中的一些字段,而不是全部说如果记录有 200 个字段并且在我的服务中只使用 2 个字段,那么我需要只有这 3 个字段的所有记录。和数字正在使用的记录数可以动态更改。假设服务使用了 4 个字段而不是 3 个字段,那么我需要将第 4 个字段带入我的微服务的数据库中。
那么任何人都可以建议哪种方法更好?
【问题讨论】:
标签: java spring-boot microservices etl