首页 \ 问答 \ Flink和Storm之间的主要区别是什么?(What is/are the main difference(s) between Flink and Storm?)

Flink和Storm之间的主要区别是什么?(What is/are the main difference(s) between Flink and Storm?)

Flink已经与Spark进行了比较 ,正如我所看到的,它是错误的比较,因为它比较了一个窗口化的事件处理系统与微批处理; 同样,将Flink与Samza进行比较并没有什么意义。 在这两种情况下,它比较了实时与批量事件处理策略,即使在Samza的情况下较小的“规模”。 但是,我想知道Flink如何与Storm相比,这似乎在概念上更类似于Storm。

我发现这个 (Slide#4)将主要区别记录为Flink的“可调延迟”。 另一个提示似乎是Slicon Angle的一篇文章,它表明Flink更好地集成到Spark或HadoopMR世界中,但没有提到或引用实际的细节。 最后,Fabian Hueske 在接受采访时指出:“与Apache Storm相比,Flink的流分析功能提供了高级API,并采用更轻量级的容错策略来提供一次性处理保证。”

所有这一点对我来说有点稀疏,我不太明白。 有人可以用Flink解释什么问题(?)与流中的流处理是(是?) 什么是Hueske引用的API问题及其“更轻量级的容错策略”?


Flink has been compared to Spark, which, as I see it, is the wrong comparison because it compares a windowed event processing system against micro-batching; Similarly, it does not make that much sense to me to compare Flink to Samza. In both cases it compares a real-time vs. a batched event processing strategy, even if at a smaller "scale" in the case of Samza. But I would like to know how Flink compares to Storm, which seems conceptually much more similar to it.

I have found this (Slide #4) documenting the main difference as "adjustable latency" for Flink. Another hint seems to be an article by Slicon Angle that suggest that Flink better integrates into a Spark or HadoopMR world, but no actual details are mentioned or referenced. Finally, Fabian Hueske himself notes in an interview that "Compared to Apache Storm, the stream analysis functionality of Flink offers a high-level API and uses a more light-weight fault tolerance strategy to provide exactly-once processing guarantees."

All that is a bit sparse for me and I do not quite get the point. Can someone explain what problem(s?) with stream processing in Storm is (are?) exactly solved by Flink? What is Hueske referring to by the API issues and their "more light-weight fault tolerance strategy"?


原文:https://stackoverflow.com/questions/30699119
更新时间:2023-12-27 18:12

最满意答案

不,您只能通过访问页面,无法知道页面何时上次更新或上次更改或上传到服务器(可能取决于解释,可能是三个不同的东西)。

服务器可能(并根据HTTP 1.1协议)发送Last-Modified头 ,您可以通过几种方式找到,例如使用Rex Swain的HTTP查看器 。 但是,根据协议,这只是原始服务器认为该变体最后一次修改的日期和时间。 该协议实际上增加了:“该头域的确切含义取决于源服务器的实现和原始资源的性质。 对于文件,可能只是文件系统上次修改的时间。 对于具有动态包含零件的实体,它可能是其组件部件的最后一次修改时间集。 对于数据库网关,它可能是记录的最后更新时间戳。 对于虚拟对象,可能是内部状态最后一次改变。“

实际上,网页通常是从内容管理系统或其他方式动态创建的,在这种情况下, Last-Modified标头通常会显示创建响应的数据戳,通常非常接近请求时间。 这意味着在这种情况下,标题几乎是无用的。

即使在“静态”页面(服务器简单地选择与该请求匹配的文件并将其发送)的情况下, Last-Modified日期戳通常仅表示对服务器上文件的最后一次写入访问。 这可能与文件从备份副本恢复的时间,或文件在服务器上编辑而不对内容进行任何更改的时间,或上传到服务器上的时间有关,可能会替换旧的相同的副本。 在这些情况下,假设时间戳在技术上是正确的,它表示页面未被更改的时间(但不一定是最后一次更改的时间)。


No, you cannot know when a page was last updated or last changed or uploaded to a server (which might, depending on interpretation, be three different things) just by accessing the page.

A server may, and should (according to the HTTP 1.1 protocol), send a Last-Modified header, which you can find out in several ways, e.g. using Rex Swain’s HTTP Viewer. However, according to the protocol, this is just “the date and time at which the origin server believes the variant was last modified”. And the protocol realistically adds: “The exact meaning of this header field depends on the implementation of the origin server and the nature of the original resource. For files, it may be just the file system last-modified time. For entities with dynamically included parts, it may be the most recent of the set of last-modify times for its component parts. For database gateways, it may be the last-update time stamp of the record. For virtual objects, it may be the last time the internal state changed.”

In practice, web pages are very often dynamically created from a Content Management System or otherwise, and in such cases, the Last-Modified header typically shows a data stamp of creating the response, which is normally very close to the time of the request. This means that the header is practically useless in such cases.

Even in the case of a “static” page (the server simply picks up a file matching the request and sends it), the Last-Modified date stamp normally indicates just the last write access to the file on the server. This might relate to a time when the file was restored from a backup copy, or a time when the file was edited on the server without making any change to the content, or a time when it was uploaded onto the server, possibly replacing an older identical copy. In these cases, assuming that the time stamp is technically correct, it indicates a time after which the page has not been changed (but not necessarily the time of last change).

相关问答

更多

最新问答

更多
  • 如何使用自由职业者帐户登录我的php网站?(How can I login into my php website using freelancer account? [closed])
  • 如何打破按钮上的生命周期循环(How to break do-while loop on button)
  • C#使用EF访问MVC上的部分类的自定义属性(C# access custom attributes of a partial class on MVC with EF)
  • 如何获得facebook app的publish_stream权限?(How to get publish_stream permissions for facebook app?)
  • 如何并排放置两个元件?(How to position two elements side by side?)
  • 在MySQL和/或多列中使用多个表用于Rails应用程序(Using multiple tables in MySQL and/or multiple columns for a Rails application)
  • 如何隐藏谷歌地图上的登录按钮?(How to hide the Sign in button from Google maps?)
  • Mysql左连接旋转90°表(Mysql Left join rotate 90° table)
  • 带有ImageMagick和许多图像的GIF动画(GIF animation with ImageMagick and many images)
  • 电脑高中毕业学习去哪里培训
  • 电脑系统专业就业状况如何啊?
  • IEnumerable linq表达式(IEnumerable linq expressions)
  • 如何在Spring测试中连接依赖关系(How to wire dependencies in Spring tests)
  • Solr可以在没有Lucene的情况下运行吗?(Can Solr run without Lucene?)
  • 如何保证Task在当前线程上同步运行?(How to guarantee that a Task runs synchronously on the current thread?)
  • 在保持每列的类的同时向数据框添加行(Adding row to data frame while maintaining the class of each column)
  • 的?(The ? marks in emacs/haskell and ghc mode)
  • 一个线程可以调用SuspendThread传递自己的线程ID吗?(Can a thread call SuspendThread passing its own thread ID?)
  • 延迟socket.io响应,并“警告 - websocket连接无效”(Delayed socket.io response, and “warn - websocket connection invalid”)
  • 悬停时的图像转换(Image transition on hover)
  • IIS 7.5仅显示homecontroller(IIS 7.5 only shows homecontroller)
  • 没有JavaScript的复选框“关闭”值(Checkbox 'off' value without JavaScript)
  • java分布式框架有哪些
  • Python:填写表单并点击按钮确认[关闭](Python: fill out a form and confirm with a button click [closed])
  • PHP将文件链接到根文件目录(PHP Linking Files to Root File Directory)
  • 我如何删除ListView中的项目?(How I can remove a item in my ListView?)
  • 您是否必须为TFS(云)中的每个BUG创建一个TASK以跟踪时间?(Do you have to create a TASK for every BUG in TFS (Cloud) to track time?)
  • typoscript TMENU ATagParams小写(typoscript TMENU ATagParams lowercase)
  • 武陟会计培训类的学校哪个好点?
  • 从链接中删除文本修饰(Remove text decoration from links)