4 王树民

尚未进行身份认证

我要认证

大JAVA

等级
TA的排名 688

java 内部类和静态内部类的区别

下面说一说内部类(Inner Class)和静态内部类(Static Nested Class)的区别:定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明 为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。外部类按常规的类访问方式使用内部 类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性。(1)创建实例OutCla...

2020-08-03 13:46:25

文件操作liunx

2020-07-30 14:13:13

Flink架构及其工作原理

目录System Architecture Data Transfer in Flink Event Time Processing State Management Checkpoints, Savepoints, and State RecoverySystem Architecture分布式系统需要解决:分配和管理在集群的计算资源、处理配合、持久和可访问的数据存储、失败恢复。Fink专注分布式流处理。Components of a Flink SetupJo...

2020-07-30 13:59:39

Flink 清理过期 Checkpoint 目录的正确姿势

本博客是笔者在生产环境使用 Flink 遇到的 Checkpoint 相关故障后,整理输出,价值较高的 实战采坑记,本文会带你更深入的了解 Flink 实现增量 Checkpoint 的细节。通过本文,你能 get 到以下知识:Flink Checkpoint 目录的清除策略 生产环境应该选择哪种清除策略 生产环境必须定期脚本清理 Checkpoint 和 Savepoint 目录 RocksDB 增量 Checkpoint 实现原理 如何合理地删除 Checkpoint 目...

2020-07-30 13:49:18

聊聊flink的checkpoint配置

序本文主要研究下flink的checkpoint配置实例StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// start a checkpoint every 1000 msenv.enableCheckpointing(1000);// advanced options:// set mode to exactly-once (this is th...

2020-07-30 09:47:54

elasticsearch运维实战之2 - 系统性能调优

elasticsearch性能调优集群规划独立的master节点,不存储数据, 数量不少于2 数据节点(Data Node) 查询节点(Query Node),起到负载均衡的作用Linux系统参数配置文件句柄Linux中,每个进程默认打开的最大文件句柄数是1000,对于服务器进程来说,显然太小,通过修改/etc/security/limits.conf来增大打开最大句柄数* - nofile 65535虚拟内存设置max_map_count定义了进程能拥有的最多内...

2020-07-28 17:15:28

ElasticSearch优化系列四:ES的heap是如何被瓜分掉的

以下分别解读几个我知道的内存消耗大户:Segment MemorySegment不是file吗?segment memory又是什么?前面提到过,一个segment是一个完备的lucene倒排索引,而倒排索引是通过词典(Term Dictionary)到文档列表(Postings List)的映射关系,快速做查询的。由于词典的size会很大,全部装载到heap里不现实,因此Lucene为词典做了一层前缀索引(Term Index),这个索引在Lucene4.0以后采用的数据结构是FST (Fin...

2020-07-27 16:39:39

ElasticSearch中的field data(正排索引)

glrh123 2016-07-29 11:07:01 3137 已收藏 1分类专栏: ElasticSearch版权主要参考文章:http://www.tuicool.com/articles/B3QnQzE正排索引与倒排索引Elasticsearch使用一种叫做倒排索引(inverted index)的结构来做快速的全文搜索。倒排索引由在文档中出现的唯一的单词列表,以及对于每个单词在文档中的位置组成。倒排索引的结构如下图,它存储的内容是“哪些词语出现在了哪些文档中”,这种结构决定了...

2020-07-27 16:00:38

Elasticsearch-6.x 倒排索引,doc_values,Fielddata, store研究

一.倒排索引倒排索引的概念,感兴趣的可以点击查看<<ES权威指南中关于倒排索引的解释>>也可以查看elasticsearch简介和倒排序索引介绍这篇文章,写的很清晰。1.1 字段和倒排索引的关系首先,在es中,我们可以把一个doc(文档)理解为数据库中的一行数据,每个doc对应多个field(字段),例如:PUT /employee/group/1{ "age" : 25, "about" : "I love to go rock clim...

2020-07-27 15:26:08

 Flink  内存

Flinkmap:做一些清洗转换;flatMap:输入一个元素,返回一个或者多个元素;filter:符合条件的数据留下;keyBy:key相同的数据进入同一个分区;reduce:当前元素与上一次reduce返回值进行聚合操作;Union:合并多个流,但是所有的流类型必须一致;Connect:合并两个流,两个流的类型可以不同;CoMap、CoFlatMap:对于ConnectedStream使用这俩函数,对两个流进行不同的处理;split:根据规则吧一个数据流切分为多个..

2020-07-27 11:38:56

Flink 容错机制与状态

简介Apache Flink提供了一种容错机制,可以持续恢复数据流应用程序的状态。 该机制确保即使出现故障,经过恢复,程序的状态也会回到以前的状态。 Flink 主持 at least once 语义 和 exactly once 语义 Flink 通过定期地做 checkpoint 来实现容错 和 恢复, 容错机制不断地生成数据流的快照, 而不会对性能产生太大的影响。 流应用程序的状态存储在一个可配置的地方(例如主节点或HDFS) 如果出现车程序故障(由于机器、网络或软件故障), Fl...

2020-07-27 11:17:05

Elasticsearch内存那些事儿

Elasticsearch 内存分配设置详解。前言「该给 ES 分配多少内存?」「为什么是给 ES 分配服务器的一半内存?」「为什么内存使用率不断升高,没有释放?」「为何经常有某个 field 的数据量超出内存限制的异常?」「为何感觉上没多少数据,也会经常 Out Of Memory?」相信每个ES使用者或者运维人员都遇到过这些问题,也踩过不少坑。这里根据我个人的学习和日常工作的使用心得,谈一谈 Elasticsearch 的内存那些事儿。一、Elasticsearch...

2020-07-23 15:01:34

关于 Elasticsearch 内存占用及分配

Elasticsearch 和 Lucene 对内存使用情况:Elasticsearch 限制的内存大小是 JAVA 堆空间的大小,不包括Lucene 缓存倒排索引数据空间。Lucene 中的 倒排索引 segments 存储在文件中,为提高访问速度,都会把它加载到内存中,从而提高 Lucene 性能。所以建议至少留系统一半内存给Lucene。 Node Query Cache(负责缓存f ilter 查询结果),每个节点有一个,被所有 shard 共享,filter quer...

2020-07-23 15:00:04

重新discovery coordinator,然后JoinGroup + SyncGroup

在前面我们讲过,KafkaProducer是线程安全的,同时其内部还有一个Sender,开了一个后台线程,不断从队列中取消息进行发送。而consumer,是一个纯粹的单线程程序,后面所讲的所有机制,包括coordinator,rebalance, heartbeat等,都是在这个单线程的poll函数里面完成的。也因此,在consumer的代码内部,没有锁的出现。//客户端线程while (true) { ConsumerRecords<String, String> ...

2020-07-17 13:58:48

Protobuf 通信协议实战

简介 从第一次接触Protobuf到实际使用已经有半年多,刚开始可能被它的名字所唬住,其实就它是一种轻便高效的数据格式,平台无关、语言无关、可扩展,可用于通讯协议和数据存储等领域。优点平台无关,语言无关,可扩展; 提供了友好的动态库,使用简单; 解析速度快,比对应的XML快约20-100倍; 序列化数据非常简洁、紧凑,与XML相比,其序列化之后的数据量约为1/3到1/10。使用详解1、服务器安装安装依赖的库: autoconf automake li...

2020-07-17 09:24:23

HTTP请求协议头部字段-Connection=keepalive

关于一个 TCP 连接可以对应几个 HTTP 请求:链接:https://zhuanlan.zhihu.com/p/61423830https://zhuanlan.zhihu.com/p/90765146在HTTP1.0官方协议中并没有对keepalive的明确支持,所有的HTTP请求是如下流程:1.client 发起一个请求;2.server收到请求后,回复一个响应;3.连接关闭。如果要在HTTP1.0中支持keep alive,你必须明确的在header中加入Co...

2020-07-16 17:49:21

ubuntu中解决进程的time_wait和FIN_WAIT2状态

TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWAIT状态过多的问题。如果你的服务器设计为被动关闭,那么你首先要关注的是CLOSE_WAIT。1大量TIMEWAIT出现在业务上在高并发短连接的TCP服务器上,当服务器处理完请求后立刻按照主动正常关闭连接。。。这个场景下,会出现大量socket处于TIMEWAIT状态。如果客户端的并发量持续很高,此时部分客户端就会显示连接不上。1业务上两个方面需要注意...

2020-07-16 16:24:52

Protobuf与JSON互相转换

Javahttp://code.google.com/p/protobuf-java-format/maven配置 <dependency> <groupId>com.googlecode.protobuf-java-format</groupId> <artifactId>protobuf-java-format</artifactId> <version>1.2</v..

2020-07-16 16:17:43

Flink 数据传输及反压详解

IntermediateDatasetIntermediateDataset是在JobGraph中对中间结果的抽象。我们知道,JobGraph是对StreamGraph进一步进行优化后得到的逻辑图,它尽量把可以 chain 到一起 operator 合并为一个JobVertex,而IntermediateDataset就表示一个JobVertex的输出结果。JobVertex的输入是JobEdge,而JobEdge可以看作是IntermediateDat...

2020-07-13 10:12:28

dirty_ratio与dirty_background_ratio参数区别--系统优化必选

vm.dirty_background_ratio:这个参数指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如5%)就会触发pdflush/flush/kdmflush等后台回写进程运行,将一定缓存的脏页异步地刷入磁盘;vm.dirty_ratio:而这个参数则指定了当文件系统缓存脏页数量达到系统内存百分之多少时(如10%),系统不得不开始处理缓存脏页(因为此时脏页数量已经比较多,为了避免数据丢失需要将一定脏页刷入磁盘);在此过程中很多应用进程可能会因为系统转而处理文件IO而...

2020-07-13 10:00:35

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。