摘要: 初探时序数据库-InfluxDB 最近公司有个需求需要借助InfluxDB实现(或者更准确的说,使用该数据库可以更容易的实现),因此稍微看了下这个数据库,把比较重要的一些东西先简单记录一下,日后如果采坑,也会继续在下面补充。 零、下载&安装 官方地址:https://portal.influxdat阅读全文
posted @ 2019-06-21 00:09 胖虎1993 阅读(48) 评论(0) 编辑
摘要: 垃圾收集流程&HotSpot对该流程的实现方式 上一篇介绍了jvm的内存模型,本篇将介绍虚拟机中最为复杂的一部分:垃圾收集,本篇会从垃圾回收前的准备工作到后面的收集阶段的方式以及HotSpot虚拟机对这些工作的实现做个较为系统的记录,方便自己以后查找阅读。 一、栈帧、变量类型、引用分析 讲解垃圾收集阅读全文
posted @ 2019-05-07 09:29 胖虎1993 阅读(28) 评论(0) 编辑
摘要: 分布式链路追踪系统的数据采集部分实现方案 本篇文章基于上一篇,只针对数据采集做介绍,会提供一个SDK的实现和使用,只会做实现方案的介绍,具体详细介绍下面边框加粗的部分: 一、数据采集 接着拿上一篇里的例子来说,把例子里的图贴过来: 图1 简单回顾下上图,一次API调用,完成上面各个业务服务的调用,然阅读全文
posted @ 2019-04-15 22:20 胖虎1993 阅读(74) 评论(0) 编辑
摘要: 分布式链路追踪系统的介绍 一、分布式链路追踪可以做什么? 1.1简单集群架构&微服务架构 先来看下最简单的网站集群架构图: 图1 在这个图里,存在从1~n个服务器,通过负载均衡器SLB进行请求分发,在每个服务器里,都做同一件事情。 现在来看下这个系统的具体业务逻辑(就是图1中每台服务器执行的逻辑,这阅读全文
posted @ 2019-04-11 08:56 胖虎1993 阅读(120) 评论(0) 编辑
摘要: JVM的内存模型&垃圾收集算法 JVM内存模型 JAVA程序执行的基本流程(基于HotSpot): 图1 1.程序计数器 程序计数器是一块较小的内存空间,是当前线程执行字节码的行号指示器,字节码解释器就是通过改变这个计数器的值来获取下一条需要执行的字节码指令,其中分支、循环、跳转和异常处理,线程恢复阅读全文
posted @ 2019-04-06 09:50 胖虎1993 阅读(46) 评论(0) 编辑
摘要: Reactor两种多线程模型的实现 注:本篇文章例子基于上一篇进行:Java NIO学习与记录(七): Reactor单线程模型的实现 紧接着上篇Reactor单线程模型的例子来,假设Handler的read那里的处理方式延迟5s,当做是业务性能瓶颈,改变下原来的Handler,让其read方法在处阅读全文
posted @ 2019-04-01 23:46 胖虎1993 阅读(65) 评论(0) 编辑
摘要: Reactor单线程模型的实现 一、Selector&Channel 写这个模型需要提前了解Selector以及Channel,之前记录过FileChannel,除此之外还有以下几种Channel: ServerSocketChannel:用于监听新的TCP连接的通道,负责读取&响应,通常用于服务端阅读全文
posted @ 2019-03-27 21:59 胖虎1993 阅读(99) 评论(1) 编辑
摘要: 前言 开始之前,你需要准备的环境: Linux系统机器或者虚拟机一台,里面需要安装的软件:git、jdk、perl。 简单介绍: java性能分析火焰图的所做的事情就是能够分析出java程序运行期间存在的性能问题,因为某段代码拖慢整个程序执行是不允许的,因此靠火焰图的绘制和分析就可以找出类似的“问题阅读全文
posted @ 2019-03-22 19:42 胖虎1993 阅读(139) 评论(0) 编辑
摘要: NIO线程模型 上一篇说的是基于操作系统的IO处理模型,那么这一篇来介绍下服务器端基于IO模型和自身线程的处理方式。 一、传统阻塞IO模型下的线程处理模式 这种处理模型是基于阻塞IO进行的,上一篇讲过,阻塞IO会阻塞每一个IO操作,直到事件就绪,下面来看下阻塞IO下的服务端线程模型: 图1 如上图所阅读全文
posted @ 2019-03-20 23:12 胖虎1993 阅读(134) 评论(0) 编辑
摘要: 操作系统的I/O模型 在开始介绍NIO Reactor模式之前,先来介绍下操作系统的五种I/O模型,了解了这些模型,对理解java nio会有不小的帮助。 先来看下一个服务端处理一次网络请求的流程图: 图1 一、图1解析 1.内核空间&用户空间 内核空间:指操作系统运行时用于程序调度、虚拟内存的使用阅读全文
posted @ 2019-03-19 13:53 胖虎1993 阅读(75) 评论(0) 编辑
摘要: 一、线程池的Future模式 在了解java8的CompletableFuture之前,先通过Future来解决一个问题,看个例子: 假设现在有一个网站,首页有顶部Banner位、左边栏、右边栏、用户信息几大模块需要加载,现在出一个接口,要求包装并吐出这几大模块的内容 先来抽象一个首页接口对象: 现阅读全文
posted @ 2019-03-14 22:50 胖虎1993 阅读(52) 评论(0) 编辑
摘要: join & interrupt 这俩方法属于线程对象里的方法,属于线程本身的操作。 join方法 用于等待一个线程的终止,等待期间将会阻塞,直到被等待的线程终止结束。 所以join可以用来做多任务异步处理,比如还是拿利用CompletableFuture优化程序的执行效率这篇里的第一个例子做优化,阅读全文
posted @ 2019-03-13 09:08 胖虎1993 阅读(59) 评论(0) 编辑
摘要: SocketChannel与BIO服务器 SocketChannel可以创建连接TCP服务的客户端,用于为服务发送数据,SocketChannel的写操作和连接操作在非阻塞模式下不会发生阻塞,这篇文章里的客户端采用SocketChannel实现,利用线程池模拟多个客户端并发访问服务端的情景。服务端仍阅读全文
posted @ 2019-03-08 23:18 胖虎1993 阅读(65) 评论(0) 编辑
摘要: Scatter&Gather介绍及使用 上一篇知道了Buffer的工作机制,以及FileChannel的简单用法,这一篇介绍下 Scatter&Gather 1.Scatter(分散) 用于描述在Channel中读取的数据分散在不同的Buffer里。 接着上一篇的例子(rua文件内容为1234567阅读全文
posted @ 2019-03-07 09:21 胖虎1993 阅读(100) 评论(0) 编辑
摘要: FileChannel与Buffer用法与说明 上一篇简单介绍了NIO,这一篇将介绍FileChannel结合Buffer的用法,主要介绍Buffer FileChannel的简单使用&Buffer的介绍 1.FileChannel例子 上一篇说到,这个Channel属于文件通道,专门读取文件信息,阅读全文
posted @ 2019-03-05 23:56 胖虎1993 阅读(70) 评论(0) 编辑
摘要: 初识 工作中有些地方用到了netty,netty是一个NIO框架,对于NIO却不是那么熟悉,这个系列的文章是我在学习NIO时的一个记录,也期待自己可以更好的掌握NIO。 一、NIO是什么? 非阻塞式IO,与传统的BIO(阻塞式IO)不同,NIO可以通过通道(Channels)来监听各通道的动作,一个阅读全文
posted @ 2019-03-05 08:55 胖虎1993 阅读(36) 评论(0) 编辑
摘要: 不得不说,这两种模式真的很像。 相似点:都用到了面向对象的继承、多态、抽象,都拥有相似的结构。 不同点:工厂模式仅提供具体的实例对象,怎么使用这个对象是client的自由,策略模式client可以通过策略类来决定使用哪个实例的哪个方法。 一、两种模式的公共相同部分 下面,我们假设有一台红白机,里面有阅读全文
posted @ 2019-02-27 11:24 胖虎1993 阅读(37) 评论(0) 编辑
摘要: 去年看完的《图解java多线程设计模式》,可惜当时没做笔记,导致后来忘了许多东西,打算再温习下这本书,顺便在这里记录一下~ 1.顺序执行、并行、并发 顺序执行:多个操作按照顺序依次执行。 并行:多个任务同时进行,同一时间内可以执行多个任务,这种方式,叫做并行执行,比如多核处理器,多个核可以同时处理多阅读全文
posted @ 2019-02-26 23:22 胖虎1993 阅读(191) 评论(0) 编辑
摘要: ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析 上一篇:ThreadLocal系列(二)-InheritableThreadLocal的使用及原理解析 一、基本使用 首先,TTL是用来解决ITL解决不了的问题而诞生的,所以TTL一定是支持父线程的本阅读全文
posted @ 2019-02-20 22:40 胖虎1993 阅读(406) 评论(4) 编辑
摘要: ThreadLocal系列之InheritableThreadLocal的使用及原理解析(源码基于java8) 上一篇:ThreadLocal系列(一)-ThreadLocal的使用及原理解析 下一篇:ThreadLocal系列(三)-TransmittableThreadLocal的使用及原理解析阅读全文
posted @ 2019-02-19 12:23 胖虎1993 阅读(164) 评论(0) 编辑