上篇介绍了常见的算子,本文介绍另外一个重要的算子:Async I/O,即异步IO。它是流中频繁访问外部数据的利器,特别是当访问比较耗时的时候。产生背景先考虑一个实际中挺常见的场景:一个流处理程序中对于每个事件都要查一次外部的维表(比如HBase,这里暂不考虑缓存机制)做关联,那在Flink中如何实现呢?典型的做法就是增加一个map/flatmap,在里面做一下查询关联。这样功能没问题,但这个...
Flink的Stream Job就是由一些算子构成的(Source和Sink实质也是特殊的算子而已),本文介绍常见的DataStream算子(Operator)。我用一种不太科学的方式将这些算子分成了2类,并起了一个不太严谨的名字:单流算子:这类算子一般在一个流上面使用;多流算子:这类算子往往操作多个流。单流算子单流算子大都比较简单,粗略介绍。map/flatmap:使用最多的算子,map是...
本文对Filebeat代码进行简单分析,作为之前 Filebeat导致文件无法被删除的原因分析 一文的补充,当然也可单独阅读,了解Filebeat的代码逻辑。需要注意的是:本文不是全面、深度的Filebeat源码剖析,而是专注在通用配置下核心数据的流转上面,目标是理清楚数据从采集到中间流转,最后到发送的流程,而不是对每处代码细节进行分析讲解。本文核心点包括:Filebeat实例的创建和初始化...
之前有市场反馈Filebeat导致文件删除后磁盘空间无法释放,于是分析并重现了一下,下面记录一下。熟悉Linux的人都知道,文件删除实际是将其inode链接数减1,当inode链接数变为0,且没有其它进程访问该文件时,操作系统就会真正删除文件,回收资源。“Filebeat导致文件删除后磁盘空间无法释放”的原因就是因为Filebeat打开着文件,所以系统无法真正删除文件,释放磁盘空间。而这个在...
K8s的网络主要需要解决4个问题:高度耦合的容器间的通信问题Pod与Pod之间的通信Pod和Service之间的通信(本文)外部系统和Service之间的通信(本文涉及一部分)上篇文章讨论了第2个问题,本文继续讲述第3个问题和第4个问题:Pod和Service之间的通信、外部系统和Service之间的通信。其核心就在Service,官方文档(英文,中文)已经介绍的比较详细了,本文主要是学习笔...
K8s的网络主要需要解决4个问题:高度耦合的容器间的通信问题Pod与Pod之间的通信(本文)Pod和Service之间的通信外部系统和Service之间的通信上篇文章讨论了第1个问题,本文继续讲述第2个问题:Pod与Pod之间的通信。k8s网络模型pod是k8s中最小的部署单元,不同pod可能会分布在不同机器上面,解决了Pod之间的通信问题,其实也就解决了跨主机容器通信的问题。而k8s在这方...
上一篇文章介绍了单机容器网络的基础知识,本篇开始介绍K8s的网络。本文假定你已经对K8s的各种基本概念(比如Node、Pod、Service等)非常了解,如果还不了解,可以参考我之前的博客:Kubernetes架构及资源关系简单总结。K8s的网络主要需要解决4个问题:高度耦合的容器间的通信问题(本文)Pod与Pod之间的通信Pod和Service之间的通信外部系统和Service之间的通信本...
最近阅读了一下《Kubernetes网络权威指南:基础、原理与实践》,觉得是非常不错的一本书,本系列Kubernetes网络的文章也是阅读此书后的一些实践、扩展阅读,算是学习笔记和总结吧。我觉得容器(Linux容器)的发展大致可以分这么三个阶段:第一阶段:Linux内核时代,内核提出并实现了Namespace技术,为容器技术奠定了基石,但此时容器还只是一颗深埋的种子,大多数人还不知道。第二阶...
- 1
- 2
- 3
- 4
- ...
- 33
- 后一页 »