当前位置: 首页 > 知识库问答 >
问题:

Kafka Msg VS REST调用

太叔高义
2023-03-14

我有库存服务和供应商服务。Dayday vendor service调用vendor API获取新项目,这些项目需要移到inventory service中。项目数量最多可达10,000个对象。

对于这个用例,是否更好地:

>

  • 从供应商API获取新数据后,调用inventory service的REST API存储新项目。

    你会选择哪种方式?考虑是什么

  • 共有1个答案

    元嘉木
    2023-03-14

    >

    • kafka-发布和订阅(只处理管道,一旦作业完成就通知)

      REST请求和等待响应(按需)

      >

    • Kafka-发布一次-订阅n次(由n个组件)。

      >

    • Kafka-分割处理,将中间数据存储在中间主题中(为了速度和容错

      REST-获取数据,一次处理所有数据,或者如果您希望分解它,不要忘记处理您自己的中间数据存储。

      >

    • Kafka-发出请求的人通常对响应不感兴趣(如果消息被发送,则响应除外)

      您的数据是流式的吗?
      如果数据不断地来,并且您有一个管道要执行,那么Kafka是最好的。

      您需要一个请求-响应模型吗?
      如果用户请求一些东西并且他们等待响应,那么REST是最好的。

      Kafka(或任何其他流式平台)通常用于流水线,即我们有前向数据流的流水线。

      关于你的例子,

      日常供应商服务调用供应商API来获取新的项目,这些项目需要移到库存服务中

      问题与答案

      然后你需要拉取数据,推送给Kafaka。从那里,您的库存服务(或此后的任何其他服务)将订阅该主题并执行它们的处理逻辑。

      这里的优点是,您可以将需要供应商数据的任何其他服务作为消费者添加到供应商主题中。

      此外,即使在库存服务处理了供应商数据之后,供应商数据也始终为您提供。

      如果您为此使用REST,则需要为每个需要供应商数据的组件调用供应商API,这在与Kafka一起使用时变得很简单

      要查询库存吗?

      通过Kafka处理后将其存储在数据库中,并在此基础上提供Rest。之所以需要这样做,是因为Kafka通常是一个日志,为了使数据可以查询,您需要一些数据库。

  •  类似资料:
    • 问题: 我正在尝试为Wordpress插件注册自定义endpoint。我面临的问题是,当我调用add_action('rest_api_init',回调)时,回调函数没有被调用。在该回调函数中存在“register_rest_route()”方法,而该方法又未被调用,我无法注册任何自定义终结点。 < li >我正在使用docker进行开发 < li >没有抛出任何错误 代码: 问题: 代码到达“v

    • 我有一个包含多个的布局,底部有一个按钮。当键盘显示时,我希望我的布局保持在键盘上方。我搜索这个问题,发现应该在清单的标签中放入

    • 问题内容: 我正在开发一个需要与Video4Linux抽象交互的应用程序。该应用程序使用mono框架以C#开发。 我面临的问题是我无法P /调用系统调用。或者,更准确地说,我可以P /调用它,但是它崩溃严重。 extern声明如下: 到目前为止,一切都很好。 使用的实际例程如下: 以上所有代码似乎都不错。该类用于按照标头规范计算I / O请求代码(基本上,它遵循处声明的宏)。 该参数是一个结构,声

    • 问题内容: 我一直在努力使AJAX与Jquery一起使用。到目前为止,我最大的问题是我真的不知道如何弄清楚我在哪里犯错。我真的没有调试AJAX调用的好方法。 我正在尝试建立一个管理页面,其中我要执行的功能之一就是更改SQL数据库中设置的权限。我知道.click函数正在被触发,因此我将其范围缩小了,但是我不确定从AJAX调用到SQL查询的链在哪里出了问题。 我的.js代码: 我的.php处理程序:

    • 我们正在尝试开发一个自调用的lambda来成批处理S3文件。lambda角色具有附加调用所需的策略。 以下是自调用lambda的代码: 其中是对同一个lambda的调用调用。其余的事情都按预期工作,只要调用堆栈出现在这个调用请求上,它就会超时: 这是记录到CloudWatch的堆栈跟踪:

    • 给定websocket配置: 和客户端JavaScript: 并从服务器发送此消息: 回调不会被激发。 javascript控制台显示已建立连接: 已连接到STOMP:已连接用户名:jschmoe心跳:0,0版本:1.1订阅ID:sub-0目标:/user/topic/abc 并且tomcat控制台显示: 正在处理订阅目的地=/topic/abc-useryl3ovhr2订阅ID=sub-0会话=

    • 有没有一种方法可以调试一个被调用的方法? 此代码调用

    • 当想知道一个进程在做什么事情的时候,可以通过strace命令跟踪一个进程的所有系统调用。 1、运行 php start.php status 能看到workerman相关进程的信息 如下: Hello admin ---------------------------------------GLOBAL STATUS-----------------------------------------