Sparkstreaming 案例 — socket 回顾 | 学习笔记

简介: 快速学习 Sparkstreaming 案例 — socket 回顾

开发者学堂课程【大数据Spark2020版(知识精讲与实战演练)第五阶段:Sparkstreaming 案例 — socket 回顾】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/692/detail/12129


Sparkstreaming 案例 — socket 回顾

内容介绍

一、案例流程

二、Socket 回顾

三、Tcp  三次握手建立连接

 

一、案例流程

流式计算存在前提:

一个源源不断产生数据的数据源,首先创建一个 socket server,当作数据源,将数据进行处理放入 Spark Streaming 的程序中,将处理完的数据进行一个批次一个批次的处理,处理完后,可以将数据放入打印在控制台中,或者放入外部存储当中。这时可以使用 comsole 进行打印。

运用 net cat 创建 Socket,创建完成通过 netcat 完成之后创建工程 编写 Sparkstreaming 编码,编写后完成后,进行运行。

 

二、Socket 回顾

回顾原因

1. 在面试时经常问道建立 socket 三次握手建立的过程,和 socket 的含义与功能。

2.使用大概了解功能,是什么。

Socket 是 java 中为了支持基于 tcp/udp 协议的通信所提供的编程模型

Socket 是一种编程模型,编程模型:所编写的一类,通过编程模型去模拟反应客户端与服务器之间通信。

Socket 支持的类型:tcp 和 udp

Tcp: 保证通信安全

Udp:不保证,只管发送

Socket 分为 Socketserver 和 socket clicent

Socket serve

作用:监听某一个端口,通过 socket 来建立 clicent 发过来的连接请求,建立连接,通过图形表现

image.png

首先 socket 服务器占用某一个端口,通过 socket clicent 建立连接

连接建立后可以向 socket clicent 发送 tcp (被动)消息

socket clicent

通过 client 连接端口,建立完成后,向 Socket serve

发送 tcp packet 实现交互(主动)启动需要建立连接

 

三、Tcp 三次握手建立连接

第一步

client 向 serve 发送 SYN,进入 SYN -SEND

状态等待 serve 相应

第二步

serve 自身携带随机数j收到 client 的 syn 并发送确认包 ack(j+1),ack(j+1)同时自己发送一个请求连接

ack(j+1)目的是确认连接请求,

Syn 给 client 携带随机数k,进入 SYN -SEND 状态等待 client 确认

第三步

Client 收到 serve 的确认包 ack(j+1)向 serve 发送链接确认,此时连接确认,

ACK(K+1)此时 Client 和 serve 都进入 ESTABLISHED 状态,准备数据发送

图形展示如下:

image.png

此次三次建立过程,面试经常使用

总结:

为第一次请求连接,第二次 Client 向客户端发送准备完成消息,第三次客户端回复准备完成消息,即可连接建立成功

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
安全 网络协议 Java
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
158 0
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
667 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
664 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
JSON 前端开发 JavaScript
socket.io即时通信前端配合Node案例
本文介绍了如何使用socket.io库在Node.js环境下实现一个简单的即时通信前端配合案例,包括了服务端和客户端的代码实现,以及如何通过socket.io进行事件的发送和监听来实现实时通信。
316 2
|
网络协议 Java
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
这篇文章全面讲解了基于Socket的TCP网络编程,包括Socket基本概念、TCP编程步骤、客户端和服务端的通信过程,并通过具体代码示例展示了客户端与服务端之间的数据通信。同时,还提供了多个案例分析,如客户端发送信息给服务端、客户端发送文件给服务端以及服务端保存文件并返回确认信息给客户端的场景。
一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
|
前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之socket发送文本状态2
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之socket发送文本状态2
194 0
|
前端开发
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之自定义指令创建之2
前端学习笔记202305学习笔记第二十九天-Socket.io文本编辑实时共享之自定义指令创建之2
140 0
|
Java 测试技术 开发者
Java Socket编程实战案例:打造实时通信应用
【6月更文挑战第21天】Java Socket编程用于构建实时通信应用,如简易聊天系统。阻塞式Socket在读写时会阻塞线程,适合入门级应用。非阻塞式Socket(NIO)更高效,适用于高并发场景,允许线程在无数据时立即返回。通过对比两者,可理解实时通信技术的选择关键。示例代码展示了服务器端和客户端的实现。学习Socket编程能为应对未来挑战打下基础。
276 0
|
前端开发 JavaScript Java
SpringBoot整合Socket实战案例,实现单点、群发,1对1,1对多
本篇内容: 后端 + 前端简单HTML页面 功能场景点: 群发,所有人都能收到 局部群发,部分人群都能收到 单点推送, 指定某个人的页面
|
弹性计算 负载均衡 监控
记一次socket read导致业务线程阻塞的案例分析
记一次socket read导致业务线程阻塞的案例分析
756 3