我一直在对微服务进行一些研究,有一个没有得到很好解决的问题是一个微服务是否应该有多个实例,如果是,如何处理?
假设我有一个名为 filewatcher 的微服务,它从 FEED 文件夹中的某个共享驱动器中获取文件,并在表中创建一条记录并将有效负载消息发送到 kafka。
在这里,如果文件监视服务的多个实例在不同服务器(逻辑或物理服务器)上运行并从同一位置获取文件,则会创建重复记录。
在这里我已经从数据库端实现了验证。但我正在寻找一些架构解决方案。这就是为什么 filewatcher 服务从 FEED 文件夹读取重复文件的原因。
我认为 Spring Boot 中的 @Transactional 将解决事务问题。它没有解决重复文件上传问题。
如何处理这种情况?