Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Storm DRPC中的更新与请求回复_Java_Python_Real Time_Nonblocking_Apache Storm - Fatal编程技术网

Java Storm DRPC中的更新与请求回复

Java Storm DRPC中的更新与请求回复,java,python,real-time,nonblocking,apache-storm,Java,Python,Real Time,Nonblocking,Apache Storm,我正在构建一个实时API来处理两种类型的调用: 更新 计算请求 在内部,更新在工作人员之间广播。工作人员在其RAM中保持工作数据结构(如哈希表),并在更新时修改内容 当一个计算请求到来时,只有一个空闲的工作线程使用多个线程处理它,并处理RAM中的本地副本 我想知道是否可以将当前的实现迁移到Storm。据我所知,Storm非常实时,可以在可伸缩性和容错性方面帮助我很多 目前,我正在使用UWSGI/Python处理API请求,并使用Java工作人员进行计算。我正在考虑将Java工作者作为螺栓放入St

我正在构建一个实时API来处理两种类型的调用:

  • 更新
  • 计算请求
  • 在内部,更新在工作人员之间广播。工作人员在其RAM中保持工作数据结构(如哈希表),并在更新时修改内容

    当一个计算请求到来时,只有一个空闲的工作线程使用多个线程处理它,并处理RAM中的本地副本

    我想知道是否可以将当前的实现迁移到Storm。据我所知,Storm非常实时,可以在可伸缩性和容错性方面帮助我很多

    目前,我正在使用UWSGI/Python处理API请求,并使用Java工作人员进行计算。我正在考虑将Java工作者作为螺栓放入Storm拓扑中。然而,我不太清楚喷口的情况

    据我所知,我可以使用DRPC来处理计算请求,只需从python连接到DRPC服务器。文档中明确指出,DRPC可以处理请求-应答范式的整个生命周期。但是更新呢


    我的问题是:使用DRCP只以非阻塞方式提交更新,而不等待答复(因为没有结果),这是一个好主意吗(或者甚至可能吗?)

    对于非阻塞、异步更新,您应该使用类似的作业服务器


    这将使您能够提交,无需等待任何响应。每当用户使用Instagram应用程序上传照片时,Instagram都会使用Gearman将照片共享到Facebook/Twitter。

    据我所知,只要storm messaging不适合我的使用情况,我应该使用其他解决方案,对吗?请不要使用Gearman,芹菜更好。Instagram甩了gearman:作为唯一一个回答这个问题的人,我将把赏金授予@shazin。我当前的实现是基于ZeroMQ的,但问题在于启动工作实例。无论如何,我意识到Storm确实不适合我的问题,我将继续使用ZeroMQ(它支持广播和REQ/REP模式),并使用Marathon来管理工作人员。最终,在将来,我可能会切换到Kafka,但是ZeroMQ中的REQ/REP模式对我的设计非常重要。