我们正在一个IOT平台上工作,它从五月份设备中每秒钟摄取许多设备参数值(时间序列)。一旦摄入了每个JSON (在特定实例中捕获的多个参数值的批处理),在JSON以事件驱动的方式流过许多微服务时,跟踪JSON的最佳方法是什么?
我们主要使用弹簧引导技术,所有的服务都是集装箱化的。
选项1-是将UUID关联到每个对象,然后在Redis中以幂等的方式更新状态,因为每个微服务处理都是理想的?问题是,现在每个微服务都将绑定到Redis,而且我们已经看到,随着对Redis的数量api调用的增加,Redis的性能下降了,因为它是单线程的(不过,我们可以扩展这一点)。选择2- Zipkin?
注意:如上所述,我们使用Kafka/RabbitMQ以分布式方式处理消息。我的问题是关于跟踪每一条消息及其状态的策略(如果需要的话,只需要重放一次发送)。假设message1是由服务A、服务B、服务C处理的,现在我们有问题要跟踪消息是否在服务B或服务C处理失败,因为我们得到了大量的消息。
发布于 2020-09-02 05:23:29
更好的方法将是使用卡夫卡而不是雷迪斯。
为每个微服务创建一个主题&处理后继续将数据包从一个主题移动到另一个主题。
topic(raw-data) - |MS One| - topic(processed-data-1) - |MS Two| - topic(processed-data-2) ... etc 继续将结果附加到同一个对象,并将其沿着线移动,直到每个微服务都处理了它。
https://stackoverflow.com/questions/63699141
复制相似问题