加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.com.cn/)- 数据开发、人脸识别、智能机器人、图像处理、语音技术!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

比特币价格下跌的原因

发布时间:2021-01-30 10:26:23 所属栏目:外闻 来源:互联网
导读:提议者(Proposer) 提议一个值,用于投票表决。 接入和协调,收到客户端的请求后,可以发起二阶段提交,进行共识协商。 映射到上面的故事中,军师就是用来部署作战计划的。 接受者(Acceptor) 对每个提议的值进行投票,并存储接受的值。 投票协商和存储数据,

提议者(Proposer)

  • 提议一个值,用于投票表决。
  • 接入和协调,收到客户端的请求后,可以发起二阶段提交,进行共识协商。
  • 映射到上面的故事中,军师就是用来部署作战计划的。

接受者(Acceptor)

  • 对每个提议的值进行投票,并存储接受的值。
  • 投票协商和存储数据,对提议的值进行投票,并接受达成共识的值,存储保存。
  • 映射到上面的故事中,武将就是用来接受军师的作战计划。

其实,集群中所有的节点都在扮演接受者的角色,参与共识协商,并接受和存储数据。

学习者(Learner)

  • 被告知投票的结果,接受达成共识的值,存储数据,
  • 不参与投票的过程,即不参与共识协商。
  • 映射到上面的故事中,就是两名文臣作为记录作战方案的备胎。

接受者 or 提议者

为什么说节点可以扮演接受者,也可以扮演提议者呢?

上篇我在讲解 BASE 协议的时候,讲到二阶段提交协议。其中有一个协调者的身份,协调者既可以是接受者,也可以是提议者。

  • 作为接受者,接收客户端的消息。比如诸葛亮需要接收刘备的作战要求。
  • 作为提议者,发起二阶段提交。然后这个节点和另外其他节点作为接受者进行共识协商。比如诸葛亮要汇总最终的作战计划给刘备。

如下图所示,节点 1 作为提议者和接受者,节点 2 和节点 3 作为接受者。
 

图片这 3 个部分的功能介绍如下。

1. Core 核心层

Core 核心层是 Netty 最精华的内容,它提供了底层网络通信的通用抽象和实现,包括可扩展的事件模型、通用的通信 API、支持零拷贝的 ByteBuf 等。

2. Protocol Support 协议支持层

协议支持层基本上覆盖了主流协议的编解码实现,如 HTTP、SSL、Protobuf、压缩、大文件传输、WebSocket、文本、二进制等主流协议,此外 Netty 还支持自定义应用层协议。Netty 丰富的协议支持降低了用户的开发成本,基于 Netty 我们可以快速开发 HTTP、WebSocket 等服务。

3. Transport Service 传输服务层

传输服务层提供了网络传输能力的定义和实现方法。它支持 Socket、HTTP 隧道、虚拟机管道等传输方式。Netty 对 TCP、UDP 等数据传输做了抽象和封装,用户可以更聚焦在业务逻辑实现上,而不必关系底层数据传输的细节。

Netty 使用

对 Netty 有了大概的认识之后,接下来我们用 Netty 来编写一个基础的通讯服务器,它包含两个端:服务器端和客户端,客户端负责发送消息,服务器端负责接收并打印消息,具体的实现步骤如下。

1.添加 Netty 框架

首先我们需要先添加 Netty 框架的支持,如果是 Maven 项目添加如下配置即可:

(编辑:淮安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读