摘要: 之前有看过kafka源码,有很多implict声明的方法,当时看的一头雾水,今天趁着空闲,了解下scala 的隐式转换和柯理化相关语法知识. 隐式转换 需要类中的一个方法,但是这个类没有提供这样的一个方法,所以我们需要隐式转换,转换成提供了这个方法的类,然后再调用这个方法 整体流程看下图: 隐式参数 阅读全文
posted @ 2019-10-13 13:01 chaplinthink 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 在寒假前,完成了Zookeeper系列的前5篇文章,主要是分布式的相关理论,包括CAP,BASE理论,分布式数据一致性算法:2PC,3PC,Paxos算法,Zookeeper的相关基本特性,ZAB协议。今天,完成Zookeeper系列的最后一篇也是最为重要的内容:Zookeeper的典型应用场景的介 阅读全文
posted @ 2019-09-10 12:15 chaplinthink 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍了线程的性能问题,死锁问题以及如何使用jconsole 查看线程是否发生死锁,线程的饥饿与公平,线程安全性问题:从字节码角度来分析线程安全性问题、如何解决线程安全的问题以及在什么情况下会出现线程安全性问题。 阅读全文
posted @ 2019-06-19 22:24 chaplinthink 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 线程的状态 初始化—就绪—运行—终止 Sleep : 超时等待,过了一段时间就会进入就绪状态进行竞争cpu资源。 Wait: 等待状态,没有通过notify 或者 notifyAll 唤醒,就会一直进行等待。 Block: block io 或者 遇到加锁的代码时, 接受到数据或者获取到锁就会到运行 阅读全文
posted @ 2019-06-08 17:49 chaplinthink 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一、系统整体性能监测工具:uptime uptime命令用于查看服务器运行了多长时间以及有多少个用户登录,快速获知服务器运行的负载情况。 load average,显示了最近1,5,15分钟的负荷情况。 它的值代表等待CPU处理的进程数,如果CPU没有时间处理这些进程,load average值会升 阅读全文
posted @ 2019-03-31 11:58 chaplinthink 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 应用从Kafka中读取数据需要使用KafkaConsumer订阅主题,然后接收这些主题的消息。在我们深入这些API之前,先来看下几个比较重要的概念。 Kafka消费者相关的概念 消费者与消费组 假设这么个场景:我们从Kafka中读取消息,并且进行检查,最后产生结果数据。我们可以创建一个消费者实例去做 阅读全文
posted @ 2019-03-24 23:44 chaplinthink 阅读(478) 评论(0) 推荐(1) 编辑
摘要: Tasks and Operator Chains(任务及操作链) 在分布式环境下,Flink将操作的子任务链在一起组成一个任务,每一个任务在一个线程中执行。将操作链在一起是一个不错的优化:它减少了线程间的切换和缓冲,提升了吞吐量同时减低了时延。这些链式行为是可配置的,详情请见: " chainin 阅读全文
posted @ 2019-01-06 10:20 chaplinthink 阅读(1017) 评论(0) 推荐(0) 编辑
摘要: 抽象等级(Levels of Abstraction) Flink提供不同级别的抽象来开发流/批处理应用程序。 Statefule Stream Processing: 是最低级别(底层)的抽象,只提供有状态的流。它通过ProcessFunction嵌入到DataStream API之中。它使得用户 阅读全文
posted @ 2019-01-05 12:06 chaplinthink 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 最近自己就在思考关于技术的学习,比如一项新的技术我们需要学习,我们做的动作通常是以下的步骤: 1.看官方文档或者查阅相关的文本资料或者博客 2.搭建安装相应的编译环境 3.照着资料的例子在编译工具上实验 4.自己觉得学差不多了,然后等着如果项目需要的话去应用,其实大多数情况下,我们只是为了学习下这项 阅读全文
posted @ 2017-11-19 18:43 chaplinthink 阅读(162) 评论(0) 推荐(0) 编辑
摘要: Scala面向对象: 类: 声明类(一个源文件中可以包含很多public的类) getter和setter 构造函数(主构造器和附属构造器) 继承(extends) 重写父类方法(override def) 重写字段(override val,override var) 1.声明类 /** * * 阅读全文
posted @ 2017-06-08 22:04 chaplinthink 阅读(184) 评论(0) 推荐(0) 编辑