课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
分布式编程开发是随着互联网的不断发展而被程序员掌握的一种开发方式,而今天我们就一起来了解一下,分布式编程通信包含哪些知识点。
通信的一个基本问题是:发出去的消息什么时候需要被接收到?这个问题引出了两个基础概念:“同步通讯”和“异步通讯”。根据理论抽象模型,同步通信和异步通信本质的差别来自于时钟机制的有无。同步通信的双方需要一个校准的时钟,异步通信的双方不需要时钟。
现实的情况是,没有完全校准的时钟,所以没有绝对的同步通信。同样,绝对异步通信意味着无法控制一个发出去的消息被接收到的时间点,无期限的等待一个消息显然毫无实际意义。
所以,实际编程中所有的通信既不是“同步通信”也不是“异步通信”;或者说,既是“同步通信”也是“异步通信”。特别是对于应用层的通信,其底层架构可能既包含“同步机制”也包含“异步机制”。判断“同步”和“异步”消息的标准问题太深,而不适合继续展开。作者这里给一些启发式的建议:
发出去的消息是否需要确认,如果不需要确认,更像是异步通信,这种通信有时候也称为单向通信(One-WayCommunication)。
如果需要确认,可以根据需要确认的时间长短进行判断。时间长的更像是异步通信,时间短的更像是同步通信。当然时间长短的概念是纯粹的主观概念,不是客观标准。
发出去的消息是否阻塞下一个指令的执行,如果阻塞,更像是同步,否则,更像是异步。
无论如何,工程师们不能生活在混沌之中,不做决定往往是坏的决定。当分析一个通信需求或者进行通信构架的时候,工程师们被迫作出“同步”还是“异步”的决定。当决策的结论是“异步通信”的时候,分布式队列编程模型就是一个备选项。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。