Rest 卡夫卡有条件生产/消费
我有这样的情况:Rest 卡夫卡有条件生产/消费,rest,apache-kafka,microservices,Rest,Apache Kafka,Microservices,我有这样的情况: microservice MS1有一个db,比如说有N条记录,一个外部源提供了新的数据,如果有效的话,这些数据应该被持久化 验证过程由微服务MS2执行,微服务MS2是卡夫卡主题T1的消费者,MS1在其上发送新数据 对潜在N+1记录的验证涉及对之前所有N个记录的查询。如果验证成功,MS2将在主题T2上生成结果,MS1在主题T2上是使用者,因此它可以保留新的有效数据 问题如下 假设N+1有效的新数据太大,需要在db上写很多时间:可能会发生潜在N+2记录的验证失败,因为查询db时
- microservice MS1有一个db,比如说有N条记录,一个外部源提供了新的数据,如果有效的话,这些数据应该被持久化
- 验证过程由微服务MS2执行,微服务MS2是卡夫卡主题T1的消费者,MS1在其上发送新数据
- 对潜在N+1记录的验证涉及对之前所有N个记录的查询。如果验证成功,MS2将在主题T2上生成结果,MS1在主题T2上是使用者,因此它可以保留新的有效数据
谢谢 根据您在此处提供的信息,我认为您有3个选项可以在此处执行:
选项说明:
我强烈建议您使用1。选项并将验证逻辑从MS2复制到MS1。验证是域逻辑的一部分,并且应该位于您拥有逻辑的同一个微服务中。这种或类似的验证逻辑可能适用于其他微服务,但每个微服务都应该有自己的实现。选择2。主要用于一些与业务无关的事情,如公共测试基础设施、公共数据库访问(存储库类)、公共通信机制等。选择3。如果你想打电话给其他微服务获取一些信息或发送一些命令,比如(为我保留此产品或类似产品),这会更好,但为了进行验证,我会避免这样做。绝对需要一个额外的网络呼叫来进行验证。根据您在此处提供的信息,我认为您有3个选项可以在此处执行:
选项说明: