Aiden Blog

maven 教程 | maven 入门介绍

1. pom 文件的信息 pom.xml 是 mvn 工程的核心文件, mvn 是通过 pom 文件来维护工程。 下面是 pom 文件的主要组成。 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h...

C++ 教程 | cpp 初始化过程那些事

默认初始化 什么是默认初始化? 默认初始化是指定义变量时没有指定初值时进行的初始化操作。例如 int a,Sales_data myData 等等。 这些变量被定义了而不是仅仅被声明(因为没有extern关键字修饰),而且没有显式的赋予初值。 特别的,如果采用动态分配内存的方式(即采用new关键字)创建的变量,不加括号时(如int *p=new int;)也是默认初始化,加了...

C++ 教程 | 头文件的作用与使用说明

C++ 编译模式 通常,在一个 C++ 程序中,只包含两类文件—— .cpp 文件和 .h 文件。其中,.cpp 文件被称作 C++ 源文件,里面放的都是 C++ 的源代码;而 .h 文件则被称作 C++ 头文件,里面放的也是 C++ 的源代码。 C++ 语言支持”分别编译“(separatecompilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的 .cp...

Spark 源码 | Spark On Yarn/k8s

本文通过阅读 Spark deploy 相关部分的代码,了解学习 spark 分布式资源调度的架构实现以及原理和细节。 参考的 spark 版本为 2.3.1. 在spark源码中,主要实现了三种分布式环境下的资源申请与作业调度方案,他们分别是 : yarn : https://github.com/Aiden-Dong/spark-2.3.1/tree/master/resou...

Spark 源码 | RPC 篇

本文通过阅读 Spark RPC 相关部分的代码,了解学习 spark RPC 的架构实现以及原理和细节。 参考的 spark 版本为 2.3.1. spark RPC 在实现上主要分为本地RPC与远程RPC通信。 本地 RPC 通信主要是以线程实现的异步通信方式,而远程RPC通信主要以netty实现的socket通信方式。 如下所示, NettyRpcEndpointRef 为R...

Spark 源码 | 调度篇

本文通过阅读 Spark schedule 相关的代码,主要来分析 spark 是如何将 job 分解为 stage, 并按顺序去调度执行的。 参考的 spark 版本为 2.3.1. 文章主要先依据作业的执行生命流程介绍实现大致思路, 再到结合源码分析不同模块承担的责任与实现细节。 有关具体的细节可以阅读 spark/core/src/main/scala/org/apache/sp...

杂谈 | socket 服务器编程里的那些事

面向 TCP 的 socket 开发现在场景比较普及,我们常见的像 tomcat, jetty 之类的 web 服务, 还有linux 的 sshd 用户认证服务, mysql server 等等, 他们使用到的都是 tcp 通信技术。 在基于tcp的 socket 开发里面, 服务端开发是比较复杂的一点,主要是它不但要正确处理用户来的请求消息, 还要及时处理异常的用户访问状态,并且要保障...

TCP/IP 教程 | TCP 篇

协议 特性 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段(segment)。 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通...

Kafka 教程 | 生产者实例

概要: 当我们发送消息之前,先问几个问题:每条消息都是很关键且不能容忍丢失么?偶尔重复消息可以么?我们关注的是消息延迟还是写入消息的吞吐量? 举个例子,有一个信用卡交易处理系统,当交易发生时会发送一条消息到Kafka,另一个服务来读取消息并根据规则引擎来检查交易是否通过,将结果通过Kafka返回。 对于这样的业务,消息既不能丢失也不能重复,由于交易量大因此吞吐量需要尽可能大,延迟可以稍微...

Kafka 教程 | 消费者实例

应用从Kafka中读取数据需要使用KafkaConsumer订阅主题,然后接收这些主题的消息。在我们深入这些API之前,先来看下几个比较重要的概念。 Kafka消费者相关的概念 1.消费者与消费组: 假设这么个场景:我们从Kafka中读取消息,并且进行检查,最后产生结果数据。 我们可以创建一个消费者实例去做这件事情,但如果生产者写入消息的速度比消费者读取的速度快怎么办呢? 这样随着时间...