共识算法的作用是让分布式系统中的多个节点之间对某个提案(Proposal)达成一致的看法。提案的含义在分布式系统中十分宽泛,像哪一个节点是 Leader 节点、多个事件发生的顺序等等都可以是一个提案。
针对没有恶意节点的情况,当前最常用的一些共识算法都是基于 Paxos 算法改进的,如 Raft 算法、ZAB 协议、Fast Paxos 算法。
针对存在恶意节点的情况,一般使用的是工作量证明(PoW,Proof-of-Work)、权益证明(PoS,Proof-of-Stake)等共识算法。典型应用就是区块链。
区块链系统中使用的共识算法需要解决的核心问题是拜占庭将军问题。
在网络爬虫爬取数据时需要解决海量数据的存在性问题,也即判断给定数据是否存在。比如判断一个数字是否存在于包含大量数字的数字集中(数字集很大,上亿)、 防止缓存穿透(判断请求的数据是否有效避免直接绕过缓存请求数据库)、邮箱的垃圾邮件过滤(判断一个邮件地址是否在垃圾邮件列表中)、黑名单功能(判断一个IP地址或手机号码是否在黑名单中)等等。
MQTT
(Message Queue Telemetry
Transport,消息队列遥测传输协议),是一种基于发布-订阅(publish-subscribe
)模式的轻量级
通讯协议,该协议构建于
TCP/IP
协议上。