自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 资源 (8)
  • 收藏
  • 关注

原创 YYYY引发的跨年bug

  项目中对用户的语音输入请求记录了话单,由filebeat把话单汇总到logstash,统一在logstash过滤、清晰,最后入库到elasticsearch中,通过前端绘图展示报表。今天发现展示数据不对,看了一眼话单:   今天是2020年12月29号,话单里我们已经穿越到2021年12月29号了,为啥呢?看记话单的代码:   这里记录请求时间用了YYYY-MM-dd HH:mm:ss...

2020-12-29 18:10:00 217

原创 myslq的更新丢失实例

  更新丢失,顾名思义,update执行后不生效,为啥不生效,因为update执行的效果丢了。什么情况下会发生更新丢失,在两个事务并发更新时,事务A的更新被事务B的更新覆盖,这叫第一类更新丢失;事务A执行更新,事务B执行更新后回滚,事务A的更新被事务B的回滚覆盖,这叫第二类更新丢失。   什么时候会发生更新丢失?没有启用事务隔离级别的时候,也就是不支持事务的存储引擎,如MyISam。但反过来,都...

2020-12-28 17:53:00 79

原创 特价版线程池ThreadPoolExecutor实现

  线程池的实现原理无非复用二字,类似数据库连接池,都是将一些重复创建的东西拿来重复使用。其中最关键的问题就两个:一个是怎么复用;一个是怎么回收。在数据库连接池中,一个连接的生命周期是我们可以手动控制的,相对来说容易一些。我们通过使用一个链表来持有连接并复用,超过最大连接数就回收。线程池不同,线程的生命周期不可控,当run方法运行结束了,线程就自然消亡了,因此麻烦一些,我们需要通过一个循环来让r...

2020-12-18 23:48:00 63

原创 通过SCP实现Linux服务器和本地Win10机器的文件上传下载

  服务器上的文件下载还是FileZilla这种FTP工具比较方便,但我本机没装,就用SCP来操作好了。SCP是Security Copy,常用于Linux不同服务器之间的复制。这里我们发挥跨平台的想法,让Windows和Linux之间的复制来实现文件的远程下载。打开本地win10的命令行窗口,开始操作:   1、下载远程服务器的文件/home/sbt/nginx_nacos.conf到本地E:...

2020-12-18 11:12:00 665

原创 数据库连接池的一种实现方案

  数据库连接池有多个开源实现,像dbcp、druid等。这里我们再一次造轮子,思路很简单:当有SQL操作(增删查改)到来时,先到池子里看一眼,如果有可用的连接,拿来用,没有就新建一个连接。连接不在新建时入池,而是在被关闭时。本来应当被系统回收的连接被放入池中复用,当累计到最大连接数时,就不再入池,直接回收。   为何要在关闭时判断最大连接数、入池,而不是在请求到来时做呢?我们把关闭入池叫方案1...

2020-12-16 22:46:00 182

原创 JDBC的驱动注册浅析

  JDBC驱动类是一个接口——java.sql.Driver。这个接口是给实现JDBC接口的各个数据库实现的。   我们使用JDBC的时候,会有一行代码(参见Mysql数据库的JDBC查询实例或Oracle数据库的JDBC查询实例 ): Class.forName(JDBC_DRIVER);   它起到的作用就是加载具体实现的jar包中实现Driver的具体子类,类加载的过程中会调用s...

2020-12-09 18:17:00 370

原创 Mysql数据库的JDBC查询实例

  之前我们使用JDBC操作过Oracle数据库(参见Oracle数据库的JDBC查询实例),这次我们来操作一下Mysql,使用Statement对象的子类PreparedStatement:   1、在pom.xml中引入mysql依赖jar包: <dependency> <groupId>mysql</groupId&g...

2020-12-09 17:53:00 137

原创 Oracle新增用户新建表插入数据

  1、用sysdba登陆sqlplus: SQL*Plus: Release 11.2.0.1.0 Production on 星期三 12月 9 13:05:47 2020 Copyright (c) 1982, 2010, Oracle. All rights reserved. 请输入用户名: /as sysdba 连接到: Oracle Database 11g Enter...

2020-12-09 14:29:00 263

原创 偏向锁是个什么东东?

  上次我们说了对象头是个什么东东?,但是从我们跑的代码输出却看不到偏向锁这个东东。为啥对象实例化出来之后,对象头里是不支持偏向的呢?其实是JVM搞的鬼,JVM虽然默认启用偏向锁,但启动后4秒内并不支持。可以通过-XX:BiasedLockingStartupDelay=0参数将JVM启动后支持偏向锁的延迟时间设置为0,这样就可以看到偏向锁的输出了:   代码也改动一下: import co...

2020-12-07 19:30:00 83

原创 mysql的事务隔离级别举例

  事务是怎么回事,之前已经聊过(参见Oracle事务的隔离 ),无关哪个数据库,只要提到事务,都是这四种隔离级别。mysql的默认隔离级别是3——可重复读。更重要的是,是否支持事务,跟mysql的存储引擎相关。登陆mysql,查询存储引擎(以下SQL均基于mysql5.7.26版本操作): mysql> show engines; +--------------------+-----...

2020-12-04 18:22:00 69

原创 对象头是个什么东东?

  对象头,顾名思义,就是对象的头。对象是实例化出来的,实例化的前提是必须有类这个模板。举个不大恰当的例子,人类就是个类,你我他就是人类实例化出来的对象。我们的头,自然就是对象头。我们的头有口鼻眼耳,对象头也有一些东西,主要包含两部分:Mark Word(标记字)和Class Pointer(类指针),如果是数组对象还得再加一项Array Length(数组长度)。   对象头为啥要有这些东东?...

2020-12-02 18:21:00 98

原创 使用awk统计tomcat中access.log日志里时延超过500毫秒的记录

  之前在一个springboot项目中开启了access.log日志(参见spring boot打开tomcat的access日志),现在可以很方便的根据access日志统计时延。先看日志文件:   再看access.log里的8个字段: %h %l %u %t "%r" %s %b %D   这几个字段都是啥意思? %h = 发起请求的客户端 IP 地址 %l = 客户机的 RFC ...

2020-12-02 07:58:00 644

EasyDarwin-Windows-x86_64-v7.3.17.0325.zip

easydarwin安装包,适用win64位,版本为7.3.17,虽然版本有点老,好歹能用,git上的最新版本下半天下不下来,将就用着吧

2020-03-10

windows64位etcd浏览器

etcd浏览器,用于直接操作etcd服务端,启动服务端后再启动客户端。直接解压后修改server.js文件。

2017-11-15

IK分词jar包

IK分词用到的jar包

2017-05-13

eclipse的hadoop2.7.2插件

eclipse集成hadoop开发环境需要用到的插件

2017-05-13

hadoop2.7.2安装依赖文件

hadoop在windows上运行需要winutils支持和hadoop.dll等文件

2017-05-13

windows64位etcd:etcd-v3.0.17-windows-amd64.zip

解压后执行etcd.exe即可本地起etcd

2017-05-13

JAVA_IO流学习总结

文档相当的悦目,条理清晰,对IO流感觉理不出头绪的同学有福了

2012-10-11

空空如也

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

TA关注的人

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