`
kabike
  • 浏览: 608570 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

分布式系统小知识:Apche Storm可靠性机制里为什么要采用异或来判断消息得到完整性处理?

阅读更多
想起这个问题,是因为知乎上有人提问
storm采用异或的方式来判断消息被完整处理,网上已经有很多介绍了,但是按照这个提问者的描述,为什么它要用异或而不是计数器呢?
这是分布式系统需要考虑异步网络传输模型的原因.acker接收bolt的顺序是不确定的,用来异或的随机数可以认为是一一对应的,就像一把钥匙开一把锁.如果发送的是+1,-1这样的增量,则很容易出现重复,如果acker接收的顺序不是按物理时间顺序,则可能出现tuple的提前ack.
理想的顺序可能是+1,+1,-1,-1,一旦变成了+1,-1,+1,-1,那么第二个数字接收后,message就被ack了.异或则不用担心这个问题
0
0
分享到:
评论

相关推荐

    不要采用异或来交换两个变量

    ### 不要采用异或来交换两个变量 #### 引言 在编程领域,尤其是在学习基本算法和数据结构的过程中,我们经常遇到如何交换两个变量值的问题。通常,教科书中会介绍几种方法,其中一种就是利用异或(XOR)操作来实现...

    异或运算小工具

    8. **循环冗余校验(CRC)**:在数据通信中,CRC是一种利用异或运算检查数据完整性的方法。通过对数据块进行异或运算生成一个校验码,如果接收的数据与发送的数据经过异或后得到的校验码相同,则认为数据传输无误。 ...

    16进制异或小工具,非常方便

    异或(XOR)操作符在二进制系统中具有以下特性:如果两个位相同,结果为0;如果两个位不同,结果为1。在16进制表示中,每四位二进制对应一位16进制数字,因此16进制的异或操作就是对每个16进制数字的二进制位进行...

    异或小工具

    本文将详细介绍"异或小工具"的相关知识点,以及如何使用C#语言来实现一个异或计算工具。 首先,异或运算符在编程中表示为"^"。异或操作的基本原理是:当两个输入位相同,结果为0;当两个输入位不同,结果为1。例如...

    按位异或校验和计算器.rar_异或_异或在线计算_异或在线运算_按位异或_校验和计算器

    异或(XOR)是一种基本的逻辑运算符,在...总的来说,“按位异或校验和计算器”是一个实用的工具,通过异或运算来检测和验证数据的完整性。在处理大量数据、确保数据传输准确无误的环境中,这样的工具是非常有价值的。

    计算异或的小工具

    这个“计算异或的小工具”显然就是专为进行异或操作而设计的一个实用程序,尤其适合处理多字节的数据。下面我们将深入探讨异或运算以及这个工具如何帮助用户更高效地执行此类计算。 异或(XOR,也称为 Exclusive OR...

    按32位异或取反的小工具

    在IT行业中,通信协议的设计与实现是至关重要的环节,它确保了数据在传输过程中的完整性...对于处理大量数据交换的系统来说,这样的校验和机制是必不可少的,它能有效检测并防止由于网络问题或硬件错误导致的数据损坏。

    在线异或运算.docx

    它通过计算数据块中所有字节的异或值来生成一个校验码,该校验码能够反映出数据中的任何单比特错误。在接收到数据时,接收方会重新计算校验码并与发送方发送的校验码进行比较,如果两者不匹配,则表明数据传输过程中...

    CRC计算器、和、异或、异或取反校验

    总的来说,CRC、和、异或、异或取反校验都是数据完整性保障的重要手段,它们各有优缺点,适用场景也有所不同。CRC由于其强大的错误检测能力,在网络通信、磁盘存储等领域得到了广泛应用。而其他简单校验方法则更适合...

    异或求和方法

    但异或求和方法由于其简单性和计算效率,依然在许多场景下被广泛采用。 总结来说,异或求和方法是一种基于异或运算的数据校验技术,常用于底层串口通信和网络协议中,以检测数据在传输过程中是否发生错误。通过将...

    求异或值的软件

    在IT领域,"异或值计算"是一种常见的数据处理技术,尤其在计算机科学、编码理论以及信息安全中占有重要地位。异或(XOR)运算符是逻辑运算的一种,它的基本概念是:当两个输入位相同时,结果为0;当两个输入位不同时...

    异或计算器

    异或计算器是一种专门用于执行异或操作的工具,它能够帮助用户进行二进制或十六进制数值的异或运算,并且通常还提供校验功能,例如8位异或校验。在信息技术和计算机科学中,异或(XOR)运算是一种基本的逻辑运算,...

    文件异或小工具

    文件异或小工具 简单处理

    异或校验.rar

    异或校验是一种常见的数据完整性检查方法,常用于检测数据在传输或存储过程中是否出现错误。这个名为"异或校验.rar"的压缩文件很可能包含了关于异或校验原理、实现方式以及应用实例的相关资料。 异或(XOR, ...

    C# 异或校验含源码

    对于异或校验,只需遍历输入的16进制字符串,将其转换为二进制,逐位进行异或,最后得到的单一比特就是校验位。 这个工具的源码可能会包括以下几个关键部分: 1. 数据预处理:将16进制字符串转换为二进制数组。 2. ...

    计算异或小软件GetHex.zip

    GetHex是一款专为计算16进制串按位异或结果设计的小程序,它以其简洁、高效和安全的特点,为用户提供了强大的辅助工具。 按位异或运算是一种基本的位操作,它将两个二进制数的每一位进行比较,如果两位相同则结果为...

    02、Storm入门到精通storm3-0.pptx

    Storm的容错机制是基于消息ID的记录级跟踪,确保每个消息单元在系统中得到完整处理。当用户在Spout中发射一个带有message ID的源tuple时,这个message ID可以是任何对象。多个源tuple可以共享同一个message ID,表明...

    按位异或云计算应用.pptx

    1. **一致性检查**:按位异或可用于检查分布式系统中各个节点的数据一致性,通过比较不同节点之间数据的异或结果来判断是否出现不一致的情况。 2. **故障恢复**:在故障恢复过程中,按位异或可以帮助快速定位故障...

    labview异或和校验算法

    LabVIEW是一种图形化编程语言,由美国国家仪器公司(NI)开发,广泛应用于测试、测量和...这个主题对于理解和应用数据校验以及LabVIEW编程技术具有实际意义,特别是对于需要确保数据完整性和准确性的系统设计者来说。

Global site tag (gtag.js) - Google Analytics