1.服务器集群交互使用的协议:
1.1 握手协议,定义简化的处理
请求格式:
CshBBrain
Host:
Key:
Protocol:
第一行固定为:CshBBrain
第二行为:发起请求的客户端地址和端口,比如192.168.1.220:9292
第三行为:客户端随机生成的24位的字符串
第四行为:协议必须为clusters
完整握手请求举例:
CshBBrain
Host:192.168.12.112:9292
Key:4tAjitqO9So2Wu8lkrsq3w==
Protocol:Clusters
响应格式:
CshBBrain
Host:192.168.12.112:9292
Accept:
Protocol:Clusters
第一行固定为:CshBBrain
第二行为:发起请求的客户端地址和端口,比如192.168.1.220:9292
第三行为:把客户端发送的Key截取出来
4tAjitqO9So2Wu8lkrsq3w==
用它和魔幻字符串258EAFA5-E914-47DA-95CA-C5AB0DC85B11
连接起来,像这样:
4tAjitqO9So2Wu8lkrsq3w==258EAFA5-E914-47DA-95CA-C5AB0DC85B11
然后把这一长串经过SHA-1算法加密,得到长度为20字节的二进制数据,
再将这些数据经过Base64编码,最终得到服务端的密钥,也就是Accept:
bEVeGLZrb9fS3Rj8WzExJdCsedg=
第四行为:协议必须为clusters
响应完整举例:
CshBBrain
Host:192.168.12.112:9292
Accept:bEVeGLZrb9fS3Rj8WzExJdCsedg=
Protocol:Clusters
1.2 数据交换格式采用websocket消息格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/63) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| |Masking-key, if MASK set to 1 |
+-------------------------------+-------------------------------+
| Masking-key (continued) | Payload Data |
+-------------------------------- - - - - - - - - - - - - - - - +
: Payload Data continued ... :
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Payload Data continued ... |
+---------------------------------------------------------------+
[opcode] 01标识数据内容是 文本,08标识 : 要求远端去关闭当前连接。
[MASK](即原先的RSV4)如果是 1 则数据是被 MASK 的。
[Masking-key] 如果MASK为 1 则有4字节的 Masking-key,用于与传输的数据 [Payload Data] 进行异或运算,4byte(32bit)进行一次运算,
不足四位从前往后对应,如只有三位,则只与[Masking-key]的前三位进行运算。
关闭远端连接:
传两个字节 (0x88,0x00)。
2.集群端口可以通过参数设置,是否开启集群设置,归属的管理服务器,可设置多个
clustersSwitch:集群开关,是否开启集群,0:关闭集群,1:开启集群
clustersPort:集群端口
clustersRole:1:表示只担任普通服务器;2:表示管理服务器,且只担管理服务器之职责,不担任业务处理;3:表示即担管理服务器之职责,又担任业务服务器之职责
clustersServer:管理服务器地址和端口
3.管理服务器和普通服务器:
管理服务器是专门搜集管理所有普通服务器的服务器,可以向普通服务器移交管理权限。
3.1 普通服务器需要想管理服务汇报CPU参数,内存参数,工作线程数量,可以处理的连接极限数量,读写监听线程数量,进入监听线程数量,使用的端口
3.2 管理服务器可以想普通服务器下达新增监听端口,关闭监听端口,增加工作线程数量,减少工作线程数量,增加减少读写监听线程数量。
3.3 分配服务器和端口给客户端
3.4 管理服务器管理权限移交和接手
3.5 查看服务器的数量,查看各服务器的使用情况。
3.6 普通服务器相互备份数据
3.7 普通服务器的业务数据交换
3.8 管理服务器通知普通服务器A向普通服务器B交换数据
分享到:
相关推荐
《Hadoop集群程序设计与开发》是一份详细的教学资料,主要涵盖了大数据处理领域中的核心工具——Hadoop的集群程序设计与开发技术。这份PPT旨在帮助开发者深入理解Hadoop生态系统,掌握分布式计算的基本原理和实践...
《Hadoop集群程序设计与开发教材最终代码》这个压缩包文件是针对学习和理解Hadoop分布式计算框架的重要教学资源。Hadoop是Apache软件基金会开发的一个开源项目,它为大规模数据处理提供了一种分布式、容错性强的解决...
【Hadoop集群程序设计与开发】是一门针对大数据技术类专业的必修课程,旨在让学生全面理解和掌握Hadoop框架。这门课程总共64学时,4.0学分,涵盖了从Hadoop的基本概念到实际应用的各个层面。 课程首先介绍了大数据...
大数据课程——Hadoop集群程序设计与开发,教师版,提供教学大纲、教案、教学设计、实训文档等,课程内容包含教学准备环境、软件安装、作业、教学文档、演示视频,花费巨额时间亲自制作,下载后可私信提供上述所有...
【Yarn资源调度器】是Hadoop大数据处理框架的核心组件之一,主要负责集群资源的管理和分配,...此外,课程还提供了实训文档和演示视频,以帮助学员将理论知识转化为实践能力,提升在Hadoop集群程序设计与开发中的技能。
"基于Linux的服务器集群系统设计及实现" 本文主要探讨了基于Linux的服务器集群系统的设计及实现。集群系统是指将多台服务器连接起来,提供高可用性、高性能和易管理性的计算资源。Linux操作系统作为一个类UNIX系统...
J2EE集群设计开发部署(基于IBM+WAS) J2EE集群设计开发部署(基于IBM+WAS)
Hadoop集群程序设计与开发 教材最终代码
《Hadoop 集群程序设计与开发》教学大纲涵盖了Hadoop框架的全面学习,旨在为大数据技术类专业学生提供实战性的知识与技能。课程强调理论与实践相结合,通过源码分析和实操案例,让学生深入理解Hadoop的分布式存储和...
在阅读了提供的文件内容后,可以提炼出以下Java分布式开发与集群技术相关的知识点: 1. 分布式开发和集群技术的需求:文档提到了Web服务器和移动互联网软件对分布式开发和集群技术的需求,这表明随着互联网服务的...
本文将详细阐述如何搭建Hadoop集群以及进行MapReduce程序的关键点个性化开发。 首先,我们来看任务1——Hadoop集群的部署。这一步至关重要,因为它为整个大数据处理系统提供了基础架构。在虚拟机中安装Ubuntu Kylin...
Linux 平台的 SAP 集群设计部署是指在 Linux 操作系统上设计和部署 SAP 集群系统,以提高系统的可靠性和可扩展性。本文主要介绍了 Linux 平台的 SAP 集群设计部署的关键技术要点,包括系统硬件架构设计、系统结构和...
JFinal是一个基于Java语言的Web+ORM框架,设计目标在于让Web开发快速、简洁。JFinal遵循MVC架构,并提供了以下特点: 1. 零配置,无需XML文件,减少了繁琐的配置工作。 2. Db+Record模式,提供快速的数据库操作功能...
大数据课程——Hadoop集群程序设计与开发,教师版,提供教学大纲、教案、教学设计、实训文档等,课程内容包含教学准备环境、软件安装、作业、教学文档、演示视频,花费巨额时间亲自制作,下载后可私信提供上述所有...
专业大数据集群安装配置步骤,涉及linux、spart,hadoop等