自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

勿忘初心

愿我所遇之人,所历之事,哪怕因为我有一点点变好,我就心满意足了。

  • 博客(21)
  • 资源 (120)
  • 收藏
  • 关注

原创 Java并发编程的艺术:Condition的实现分析

ConditionObject是同步器AbstractQueuedSynchronizer的内部类,因为Condition的操作需要获取相关联的锁,所以作为同步器的内部类也较为合理。每个Condition对象都包含着一个队列(以下称为等待队列),该队列是Condition对象实现等待/通知功能的关键。下面将分析Condition的实现,主要包括:等待队列、等待和通知,下面提到的Condition...

2018-10-27 09:35:36 3378 4

原创 实战JAVA虚拟机:在TLAB上分配对象

TLAB全称是Thread Local Allocation Buffer 即线程本地分配缓存,从名字上看是一个线程专用的内存分配区域。为什么需要TLAB这个区域呢?这是为了加速对象分配而生的。由于对象一般会分配在堆上,而堆是全局共享的。所以存在多个线程在堆上申请空间。因此,每一次对象分配都必须要进行同步(虚拟机采用CAS配上失败重试的方式保证更新操作的原子性),而在竞争激烈的场合分配的效率又会...

2018-10-24 08:09:26 924 1

原创 使用JMC(Java Mission Control )监控docker中的java应用

JMC:Java Mission Controldockerfile如下:FROM openjdk:10.0.2ADD log-search-0.0.1-SNAPSHOT.jar /application.jarWORKDIR /RUN echo "Asia/Shanghai" > /etc/timezoneCMD ["java","-Dcom.sun.management.jm...

2018-10-23 13:24:31 1321

原创 MySQL技术内幕 InnoDB存储引擎:事务

一、认识事务InnoDB储存引擎中的事务完全符合ACID的特性。ACID是以下4个词的缩写:原子性(Atomicity):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。一致性(consistency):数据库总是从一个一致性的状态转换到另一个一致性的状态。(其实原子性和隔离性间接的保证了一致性)隔离性(isolation):通常来说...

2018-10-19 07:49:19 567 1

原创 MySQL技术内幕 InnoDB存储引擎:阻塞、死锁、锁升级

1、堵塞因为不同锁之间的兼容性关系,在有些时刻一个事务中的锁需要等待另外一个事务中的锁释放它所占用的资源,这就是堵塞。参数innodb_lock_wait_timeout用来控制等待的时间,默认50秒,是可以动态设置的。参数innodb_rollback_on_timeout用来设定是否在等待超时时对进行中的事务进行回滚操作。默认是OFF。(静态参数,无法是mysql运行时修改)在默...

2018-10-18 06:53:18 948 1

原创 MySQL技术内幕 InnoDB存储引擎:锁问题(脏读、不可重复读)

1、脏读在理解脏读(Dirty Read)之前,需要理解脏数据的概念。但是脏数据和之前所介绍的脏页完全是两种不同的概念。脏页指的是在缓冲池中已经被修改的页,但是还没有刷新到磁盘中,即数据库实例内存中的页和磁盘中的页的数据是不一致的,当然在刷新到磁盘之前,日志都已经被写人到了重做日志文件中。而所谓脏数据是指事务对缓冲池中行记录的修改,并且还没有被提交(commit)。对于脏页的读取,是非常正常的...

2018-10-18 06:30:36 969 2

原创 MySQL技术内幕 InnoDB存储引擎:外键与锁

外键主要用于引用完整性的约束检查。在InnoDB存储引擎中,对于一个外键列,如果没有显示地对这个列加索引,InnoDB存储引擎会自动对其加一个索引,因为这样可以避免表锁。 这比Oracle数据库做得好,Oracle数据库不会自动添加索引,用户必须自己手动添加,这也导致了Oracle数据库中可能产生死锁。对于外键值的插入或更新,首先需要检查父表中的记录,既SELECT父表。但是对于父表的SELEC...

2018-10-17 08:23:18 522

原创 MySQL技术内幕 InnoDB存储引擎:行锁的3种算法

1、lock与latch在数据库中,lock与latch都可以成为锁,但两者有截然不同的含义latch 一般称为闩锁(轻量级的锁) 因为其要求锁定的时间非常短,若持续时间长,则应用性能非常差,在InnoDB存储引擎中,latch有可以分为mutex(互斥锁)和rwlock(读写锁)其目的用来保证并发线程操作临界资源的正确性,并且没有死锁检测的机制。lock的对象是事务,用来锁定的是数据库中的...

2018-10-17 08:17:32 2338

原创 MySQL技术内幕 InnoDB存储引擎:B+树索引的使用

1、联合索引MySQL允许对表上的多个列进行索引,联合索引的创建方法与单个索引创建的方法一样,不同之处仅在于有多个索引列。CREATE TABLE t( a INT, b INT,PRIMARY KEY(a),KEY idx_a_b(a, b))ENGINE=InnoDB多个键值的B+树对于查询SELECT*FROM TABLE WHERE a=xxx and b=xxx,显然...

2018-10-16 08:06:10 962

原创 MySQL技术内幕 InnoDB存储引擎:Cardinality

并不是所有在查询条件中出现的列都需要添加索引,对于什么时候添加B+树索引,一般的经验是,在访问表中很少一部分行是使用B+树索引才有意义。查看索引是否是高选择性的,可以通过SHOW INDEX语句中的Cardinality列来观察。Cardinality是一个估计值,在实际中,Cardinality/n_rows_in_table应尽可能接近1,如果非常小,那么需要考虑是否还要建这个索引。索引的更...

2018-10-15 19:55:29 465

原创 MySQL技术内幕 InnoDB存储引擎:B+树索引

B+ 树索引并不能找到一个给定键值的具体行。 B+ 树索引能找到的只是被查找数据所在的页。 然后数据库通过把页读入到内存, 再在内存中进行查找, 最后得到要查找的数据。平衡二叉树平衡二叉树的定义如下:首先符合二叉查找树的定义,其次必须满足任何节点的两个字数的高度最大差为1。最好的想能需要建立一颗最优二叉树,但是最优二叉树的建立和维护需要大量的操作,因此,用户一般只需要建立一颗平衡二叉树即...

2018-10-15 08:56:40 940

原创 MySQL技术内幕 InnoDB存储引擎:分区表

一、MySQL分区表介绍分区是一种表的设计模式,正确的分区可以极大地提升数据库的查询效率,完成更高质量的SQL编程。但是如果错误地使用分区,那么分区可能带来毁灭性的的结果。分区功能并不是在存储引擎层完成的,因此不只有InnoDB存储引擎支持分区,常见的存储引擎MyISAM、NDB等都支持分区。但是并不是所有的存储引擎都支持,如CSV、FEDORATED、MERGE等就不支持分区。在使用此分区功...

2018-10-13 10:20:17 1153

原创 kubernates java client 连接api server

kubernates java client 官方包地址:https://github.com/kubernetes-client/java1、根据官方文档引入pom2、登陆kubernates集群master节点找到kubectl.kubeconfig文件3、将kubectl.kubeconfig放到代码resources相应的位置Spring boot 读取jar包中resource...

2018-10-13 09:45:53 4254

原创 Spring boot 读取jar包中resources下的文件

package com.jiankunking.elasticsearch.extension.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.core.io.DefaultResourceLoader;import org.springframework.cor...

2018-10-13 09:26:47 18472 1

原创 MySQL技术内幕 InnoDB存储引擎:一致性锁定读

在前一小节中讲到,在默认配置下,即事务的隔离级别为 REPEATABLE READ 模式下, InnoDB 存储引擎的 SELECT 操作使用一致性非锁定读。但是在某些情况下,用户需要显式地对数据库读取操作进行加锁以保证数据逻辑的一致性。而这要求数据库支持加锁语句,即使是对于SELECT的只读操作。InnoDB存储引擎对于SELECT语句支持两种一致性的锁定读(locking read)操作:S...

2018-10-11 21:22:08 724

原创 MySQL技术内幕 InnoDB存储引擎:一致性非锁定读

一致性的非锁定行读(consistent nonlocking read)是指InnoDB存储引擎通过行多版本控制(multi versioning)的方式来读取当前执行时间数据库中行的数据。如果读取的行正在执行DELETE、UPDATE操作,这是读取操作不会因此而会等待行上锁的释放,相反,InnoDB会去读取行的一个快照数据。下图直观展示了一致性的非锁定行读:之所以称其为非锁定读,因为不需...

2018-10-11 21:13:47 573 2

原创 Centos7 Filebeat 开机自启 service

[Unit]Description=filebeatRequires=dockerAfter=docker[Service]User=rootExecStart=/usr/local/filebeat/filebeat-6.4.1/filebeat -e -c /usr/local/filebeat/filebeat-6.4.1/filebeat.yml[Install]Wante...

2018-10-10 12:45:18 6701

原创 Golang 协程 跟Java NIO

《Java NIO AIO 基本概念》《goroutine 调度器(scheduler)》有没有发现Golang协程的schedule跟Java NIO的selector很像?都是依赖epoll(linux)来判断事情有没有完成JDK 7 引入了NIO 2,NIO2用的就是epoll,因此判断一个网络包会不会出现BIO那种情况,就可以看他代码网络部分用的是不是NIO 2。个人微信公众号:...

2018-10-02 10:44:03 3942

转载 Java NIO 浅析

在阅读本文前,强烈建议阅读一下:《Java NIO AIO 基本概念》如何结合事件模型使用NIO同步非阻塞特性回忆BIO模型,之所以需要多线程,是因为在进行I/O操作的时候,一是没有办法知道到底能不能写、能不能读,只能"傻等",即使通过各种估算,算出来操作系统没有能力进行读写,也没法在socket.read()和socket.write()函数中返回,这两个函数无法进行有效的中断。所以除了多开...

2018-10-02 09:38:40 504

原创 NIO零拷贝与操作系统零拷贝

零拷贝的定义Zero-copy, 就是在操作数据时, 不需要将数据 buffer 从一个内存区域拷贝到另一个内存区域. 因为少了一次内存的拷贝, 因此 CPU 的效率就得到的提升.在 OS 层面上的 Zero-copy 通常指避免在 用户态(User-space) 与 内核态(Kernel-space) 之间来回拷贝数据。Netty 中的 Zero-copy 与 OS 的 Zero-cop...

2018-10-02 09:24:17 1692 1

原创 Java NIO AIO 基本概念

一、NIO在介绍NIO编程之前,我们首先需要澄清一个概念:NIO到底是什么的简称?有人称之为New I/O,因为它相对于之前的I/O类库是新增的,所以被称为New I/O,这是它的官方叫法。但是,由于之前老的I/O类库是阻塞I/O,New I/O类库的目标就是要让Java支持非阻塞I/O,所以,更多的人喜欢称之为非阻塞I/O(Non-block I/O),由于非阻塞I/O更能够体现NIO的特点,...

2018-10-02 09:01:50 5438 1

zookeeper开源客户端Curator

Curator是Netflix公司开源的一套ZooKeeper客户端框架,Curator解决了很多ZooKeeper客户端非常底层的细节开发工作,包括连接重连、反复注册Watcher和NodeExistsException异常等,实现了Fluent风格的API接口,目前已经成为Apache的顶级项目,是全世界范围内使用最广泛的ZooKeeper客户端之一。

2017-03-25

zookeeper开源客户端ZkClient使用

ZkClient是Github上一个开源的ZooKeeper客户端。ZkClient在ZooKeeper原生 API接口之上进行了包装,是一个更加易用的ZooKeeper客户端。同时,ZkClient在内部实现了诸如Session超时重连、Watcher反复注册等功能。

2017-03-25

zookeeper客户端api使用

zookeeper客户端api使用

2017-03-25

idea build 无war包

idea build 无war包

2017-03-15

阿里巴巴Java开发手册(正式版)

阿里巴巴Java开发手册(正式版)

2017-02-09

Spring2.5-中文参考手册

Spring2.5-中文参考手册

2016-12-24

java jdk 动态代理 演示demo

java jdk 动态代理 演示demo

2016-10-30

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)

深入理解Java虚拟机——JVM高级特性与最佳实践(第2版)

2016-10-09

韩顺平 mysql读写分离实现

韩顺平 mysql读写分离实现 本人未测试,仅仅是分享备份

2016-10-07

Java 反射详解(包含私有方法属性的调用)

Java 反射详解(包含私有方法属性的调用)

2016-09-16

Java 反射详解

Java 反射详解

2016-09-16

Activiti 学习笔记14:工作流定义的角色组

Activiti 学习笔记14:工作流定义的角色组

2016-09-14

Activiti 学习笔记13:分配组任务

Activiti 学习笔记13:分配组任务

2016-09-13

Activiti 学习笔记12:分配个人任务

Activiti 学习笔记12:个人任务

2016-09-11

Activiti 学习笔记11 接收活动(receiveTask,即等待活动)

Activiti 学习笔记11:接收活动(receiveTask,即等待活动)

2016-09-11

Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)

Activiti 学习笔记十:开始活动节点(判断流程是否结束及查询历史)

2016-09-11

Activiti 学习笔记九:并行网关(parallelGateWay)

Activiti 学习笔记九:并行网关(parallelGateWay)

2016-09-11

Activiti 学习笔记八:排他网关(ExclusiveGateWay)

Activiti 学习笔记八:排他网关(ExclusiveGateWay)

2016-09-08

Activiti 学习笔记七:连线(SequenceFlow)

Activiti 学习笔记七:连线(SequenceFlow)

2016-09-08

Activiti 学习笔记六:流程执行历史记录

Activiti 学习笔记六:流程执行历史记录

2016-09-06

企业数字化转型成熟度模型IOMM.zip

企业数字化转型成熟度模型IOMM

2021-11-25

Java volatile与AQS锁内存可见性

从JUC中的AQS引入,讲解Java volatile与AQS锁内存可见性

2018-09-11

ELK使用教程

ELK使用教程

2018-07-22

Java并发编程的艺术

Java并发编程的艺术 Java并发编程的艺术 Java并发编程的艺术

2018-04-25

java cpu 内存占用高 问题 模拟并排查

java cpu 内存占用高 问题 模拟并排查 https://blog.csdn.net/jiankunking/article/details/79749836 https://blog.csdn.net/jiankunking/article/details/79749483

2018-03-29

jad java 反编译工具

jad java 反编译 工具 jad java 反编译 工具 jad java 反编译 工具

2018-02-23

图解HTTP+彩色版

图解HTTP+彩色版 图解HTTP+彩色版 图解HTTP+彩色版 图解HTTP+彩色版

2018-02-15

理解 channels - Kavya Joshi

理解 channels ppt - Kavya Joshi 理解 channels ppt- Kavya Joshi 理解 channels ppt- Kavya Joshi

2018-01-18

golang work steal调度算法

golang work steal调度算法 文档 golang work steal调度算法 文档

2018-01-14

Go 1.9 sync Map 分析图

Go 1.9 sync Map 分析图 Go 1.9 sync Map 分析图 Go 1.9 sync Map 分析图

2017-12-15

Paxos图解(xmid图解)

Paxos图解(xmid图解)

2017-06-12

从PAXOS到ZOOKEEPER分布式一致性原理与实践

PAXOS到ZOOKEEPER分布式一致性原理与实践

2017-06-12

Spring boot restful api demo

Spring boot restful api demo

2017-05-29

java并发编程实战pdf及源码

java并发编程实战pdf及源码

2017-05-24

jstorm集成kafka插件demo

jstorm集成kafka插件demo

2017-04-29

storm集成kafka插demo.zip

storm集成kafka插件demo

2017-04-29

Storm 上手 demo 例子 演示

Storm demo 例子 案例

2017-04-19

Logstash ruby 插件 demo

Logstash ruby 插件 demo

2017-04-05

zookeeper常见应用场景简单实现及ppt

1、master选举:mastersel 2、数据的发布和订阅:subscribe 3、负载均衡:balance 4、分布式锁:lock 5、分布式队列:queue 6、命名服务:nameservice 演示代码下载(代码来自极客学院演示demo):

2017-03-26

zookeeper应用场景实现demo及ppt资料

1、master选举:mastersel 2、数据的发布和订阅:subscribe 3、负载均衡:balance 4、分布式锁:lock 5、分布式队列:queue 6、命名服务:nameservice 资料来自极客学院

2017-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除