自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(90)
  • 资源 (32)
  • 收藏
  • 关注

原创 mysql explain key_len计算

char和varchar类型key_len计算公式:varchr(N)变长字段且允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)varchr(N)变长字段且不允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+2(变长字段)char(N)固定字段且允许NULL = N * ( character set:utf8=3,gbk=2,latin1=1)+1(NUL

2021-05-19 16:31:28 150

原创 dbcp连接池导致大量线程BLOCKED

一个线上老系统使用的dbcp1.4版本,近一段时间经常出现假死现象,客户端反应大量超时。线上使用jstack获取线程堆栈,可以看到大量线程BLOCKED,"pool-12-thread-5764" prio=10 tid=0x00007f5bac086800 nid=0x6eae waiting for monitor entry [0x00007f5c08bca000] java.lang.Thread.State: BLOCKED (on object monitor) at org.

2021-04-01 17:13:36 1090

转载 多表连接的三种方式详解 hash join、merge join、 nested loop

多表连接的三种方式详解 hash join、merge join、 nested loop在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式。多表之间的连接有三种方式:Nested Loops,Hash Join 和 Sort Merge Join.具体适用哪种类型的连接取决于当前的优化器模式 (ALL_ROWS 和 RULE) 取决于表大小 取决于连接列是否有索引 取决于连接列是否排序下面来介绍三种不同连接工作方式的不同:实验sql假如有10000个城

2020-09-03 16:30:09 589

原创 Mybatis3.2.3 PropertyTokenizer NullPointerException

线上环境,mybatis3.2.3版本,高并发情况下,出现空指针异常,下面是异常明细。 Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error updating database. Cause: java.lang.NullPointerException...

2019-10-28 17:05:10 1092

原创 jdk1.7下HashMap源码分析

JDK1.7下HashMap源码分析首先,要清楚HashMap的存储结构,HashMap由数组+链表构成,链表是为了解决hash冲突,具体结构如图:接着,我们来看一下new HashMap()做了什么。public HashMap() { //默认capacity=16,loadFactor=0.75 this(DEFAULT_INITIAL_CA...

2019-10-17 18:17:56 166

原创 dubbo挡板的实现

实际开发或者测试过程中,因为服务端的不稳定,希望能在客户端实现挡板功能。下面介绍如何利用dubbo:reference的stub属性来实现挡板功能。首先,看下dubbo官网对stub的描述:stub:服务接口客户端本地代理类名,用于在客户端执行本地逻辑,如本地缓存等,该本地代理类的构造函数必须允许传入远程代理对象,构造函数如:public XxxServiceLocal(XxxServ...

2019-09-27 17:51:04 821

原创 netty+protobuf+websocket实现在线聊天--简易实现

定义proto结构Message.proto内容如下:syntax = "proto3";package com.test.bf.nio.netty.webChat.websocket;option java_outer_classname="MessageProto";message Model { string version = 1;//接口版本号...

2019-09-18 17:32:27 1478

原创 Redis分布式锁

获取锁:setnx,并设置超时时间释放锁:执行lua脚本,先判断key的值是否为传入的value,是的话,再执行delete。 public Boolean getLock(String key, String value, long timeout, TimeUnit timeUnit){ return redisTemplate.opsForValue().setIf...

2019-07-23 20:23:42 84

原创 Redis与Memcache的比较

Redis支持持久化,Memcache不支持;Redis值支持512M,Memcache只有1M;Redis支持5种数据类型,Memcache只支持String;

2019-07-23 20:21:55 115

原创 Spring集成Jedis哨兵模式

一般应用中,哨兵模式可以满足应用场景。当redis存储的数据量太大,单个机器已经无法满足的情况下,需要使用cluster集群。spring-redis.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:x...

2019-07-23 20:21:12 1693

原创 Redis的集群模式

三种方式:主从复制,哨兵模式,集群。主从复制:一主多从,启动时,主节点将数据文件同步给从节点,之后的更新增量复制个从节点;主节点可读可写,从节点只读;主从任一节点宕机,都需要人工干预,主节点宕机,无法写,从节点宕机影响读。哨兵模式:基于主从复制,哨兵进程用于监控redis集群中主从节点的状态,当主节点发生故障时,故障转移,哨兵进程重新设置主节点,当从节点发生故障时,也能及时移除从节点。哨兵...

2019-07-23 20:17:35 101

原创 Redis持久化

分为RDB持久化和AOF持久化。RDB持久化是通过快照按次,当符合一定的条件时,redis会自动将内存中的所有数据以二进制方式生成一份副本把那个存储在硬盘上。优点:文件紧凑,体积小。恢复速度快。缺点:RDB是快照,无法完整的保存所有数据;数据集大时,生成耗时;RDB是特定格式,可读性差。AOF持久化是通过将每一条命令追加到磁盘文件中。优点:数据更完整。RDB持久...

2019-07-23 20:16:52 107

转载 Redis配置

Redis配置文件在安装目录下的redis.conf文件里。可以通过config获取或者设置配置项。获取所有配置项:config get *获取某个配置项:config get 配置项名称设置某个配置项:config set配置项名称 配置项值Redis.conf配置说明:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程...

2019-07-23 20:15:45 161

原创 Redis支持五种数据类型

string字符串、hash哈希、list列表、set集合、zset有序集合。字符串:一个键对应一个值,一个键值最大存储512M。是二进制安全的,可以存放任何数据,比如图片或者序列化的对象。哈希:键值对集合。每个hash可以存储40多亿的键值对。列表:字符串的有序集合。每个列表可以存储40多亿个元素。集合:字符串无序,且不可重复的集合。每个集合可以存储40多亿个元素。有序集合:...

2019-07-23 20:14:14 121

原创 Windows安装redis

安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose启动服务命令:redis-server.exe --service-start关闭服务命令:redis-server.exe --service-stop客户端连接:redis-cli.exe -h 127.0.0.1 -p 63...

2019-07-23 20:12:47 87

原创 Netty服务端对客户端的心跳监控

在特定场景下,Netty服务端也需要去检查客户端连接的使用情况,当超过配置的时间没有收到客户端的信息时,服务端应该主动关闭客户端的连接。首先,在pipeline中添加IdleStateHandler,到了Constants.READ_IDLE_TIME时间,客户端还没有发送消息给客户端,会触发userEventTriggered事件。pipeline.addLast(new IdleSt...

2019-06-11 17:02:54 1368 2

原创 RabbitMq工作模式和场景,RabbitMq消息可靠性保证

介绍RabbitMQ基于AMQP协议,开源,实现服务间的异步消息通讯和服务间的解耦。4种工作模式:Work模式订阅/发布模式路由模式主题模式(通配符模式)Work模式:用于抢红包、秒杀等应用场景。一个队列,多个消费者,但一条消息只会由一个消费者消费。这种模式又分轮询分发和公平分发。轮询分发就是消息依次平均的发送给每个消费者,公平分发就是消息按照消费者空闲程度...

2019-03-12 17:35:58 785

原创 线上系统假死、内存溢出分析常用命令

查询jvm进程占用的cpu,内存pidstat –p 进程号或者用命令:top –p 进程号 示例:top –p 10461说明:系统运行时间和平均负载:top - 11:25:12(当前时间) up 28 days, 42 min(系统已运行时间), 13 users(当前登录用户数),  load average: 0.98, 1.00, 1.02(5分钟,10分...

2019-01-30 16:18:18 1369

原创 JVM结构

Openjdk和hotspotOpenjdk是oracle/sun公司推出的开源jdk,去掉了很多非开源的实现。hotspot也是oracle/sun公司推出的jdk,但openjdk属于开源社区,例如java面板等功能无法正常使用。    2. Jvm的组成类加载子系统:负责从文件系统或者网络中加载class信息,加载的class信息存放在方法区。除了class信息,方法区还会存放...

2019-01-30 16:13:29 97

原创 hibernate-validator应用

添加依赖包 &lt;dependency&gt;       &lt;groupId&gt;org.hibernate&lt;/groupId&gt;       &lt;artifactId&gt;hibernate-validator&lt;/artifactId&gt;       &lt;version&gt;6.0.10.Final&lt;/version&gt;  

2019-01-29 10:01:23 276

原创 布隆过滤器

前言:布隆过滤器是多哈希函数映射的快速查找算法。在判断存在性,而不要求100%准确性的场景下,布隆过滤器是非常棒的算法。假设需要的位数是m,hash函数个数是k,它的空间复杂度为O(m),时间复杂度为O(k)。 原理:布隆过滤器是一种多哈希函数映射的快速查找算法。它可以判断出某个元素肯定不在集合里或者可能在集合里,即它不会漏报,但可能会误报。通常应用在一些需要快速判断某个元素是否属...

2019-01-28 10:05:24 147

转载 Mysql开发规范

摘自《高可用架构》 大家应该都很熟悉MySQL 数据库,而且随着前几年的阿里的去IOE 、MySQL 逐渐引起更多人的重视。1. MySQL 历史• 1979 年, Monty Widenius 写了最初的版本, 1996 年发布l.O o• 1995-2000 年, MySQLAB 成立,引入BDB 。• 2000 年4 月, 集成My ISAM 和replication...

2019-01-28 09:44:09 246

原创 Apache+Tomcat配置

下载Apachehttp://mirrors.cnnic.cn/apache//httpd/下载Apache我需要下载win7\32位的apache,在http://mirrors.cnnic.cn/apache/httpd/binaries/win32/页,我们可以看到说明:不提供二进制的软件,只有源码,如果你不能编译源码,可以从其他网站获取。打开“ApacheHaus”超链接,访...

2019-01-08 19:54:26 1720 1

原创 七. 使用Docker部署Tomcat项目

查看镜像docker images启动tomcatdocker run -p 8081:8080 docker.io/tomcat    #  若端口被占用,可以指定容器和主机的映射端口 前者是外围访问端口:后者是容器内部端口启动后可以通过http://localhost:8081/访问部署webapp 上传war包到容器 以挂载的方式启动tomcat sudo dock...

2019-01-08 19:18:18 209

原创 六. 网络基础配置

端口映射实现访问容器-p 或者 –P

2019-01-08 19:15:46 103

原创 五. 数据管理

数据卷挂载本机的一个目录作为容器的数据卷$ sudo docker run -d -v /home/jcy/tomcat/webapps:/usr/local/tomcat/webapps/ tomcat数据卷容器:提供容器间数据共享。首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/home/jcy/dbdata$  sudo docker run -it -v...

2019-01-08 19:14:58 120

原创 四.仓库

仓库是集中存放镜像的地方。注册服务器是存放仓库的具体服务器,每个服务器可以有多个仓库,每个仓库下有多个镜像。仓库可以理解为某个项目。例如:dl.dockerpool.com/ubuntu,dl.dockerpool.com是注册服务器地址,ubuntu是仓库名。创建和使用私有仓库$ sudo docker run -d -p 5000:5000 registry这将从服务器上下载和启...

2019-01-08 19:12:02 127

原创 三.容器

容器是提供应用服务的组件。Docker技术入门与实战作者建议在生产环境中,容器前段引入HA(高可靠性机制),例如:HAProxy工具来代理容器访问,在容器出现故障时,切换到其他容器,还可以自动重启故障容器。创建容器$ sudo docker create -it tomcat启动容器$ sudo docker run tomcat后台守护线程启动$ sudo docker ru...

2019-01-08 19:11:16 106

原创 二. 镜像

镜像是Docker运行容器的前提。 修改默认镜像仓库地址:https://ieevee.com/tech/2016/09/28/docker-mirror.html我在测试环境,使用的是ustc的镜像,速度不怎么样,不太好用。$vi /usr/lib/systemd/system/docker.service修改ExecStart,增加--registry-mirror=...

2019-01-08 19:10:14 289

原创 一. Docker安装

我的虚拟机版本是ubuntu16.04方法1. 使用的是ubuntu软件源中自带的Docker包安装的。使用此方式安装的docker版本过低。① $ sudo apt-get update执行时出现如下错误:Reading package lists... DoneE: Problem executing scripts APT::Update::Post-Invoke-S...

2019-01-08 19:02:02 191

原创 db2事务隔离级别

Jdbc事务隔离级别 Jdbc隔离级别 数据库隔离级别 数据访问情况 TRANSACTION_READ_UNCOMMITTED(未提交读)Uncommitted Read ur 脏读,在没有提交数据的时候能够读到已经更新的数据 TRANSACTION_READ_C...

2018-12-14 16:37:42 5479

原创 UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only

org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only例如:class ServiceA{         @Transactional         public methodA...

2018-12-14 16:34:56 1516

原创 spring 类中方法互相调用 事务失效

同一个类中的方法互相调用,导致配置的事务失效。例如:class ServiceA {@Transactional(propagation=Propagation.REQUIRED)public methodA(){  this.methodB();}@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly...

2018-12-14 15:15:19 1313

转载 jsoup api 中文版

转至:http://www.open-open.com/jsoup/Jsoup实现网页抓取和解析入门1.       解析和遍历一个html文档String html = "&lt;html&gt;&lt;head&gt;&lt;title&gt;Firstparse&lt;/title&gt;&lt;/head&gt;"  + "&lt;body&gt;&am

2018-10-25 10:36:47 1755 1

原创 spring 根据包名过滤类 bean

1.根据包名取得BeanDefinition主要的工具类:ClassPathScanningCandidateComponentProvider ,示例如下:ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);//scann...

2018-10-25 10:35:53 426

原创 mybatis多参数传递

在实际项目中我们需要hibernate转成mybatis,为了减少影响范围,dao接口层不变,我们只改dao实现层。在整改中,遇到了这样的接口:public Object getObject(Class clazz, Serializable id) mapper文件中如下实现:&lt;select id="getObject" resultMap="BaseResultMap"&...

2018-10-25 10:33:58 111

原创 mybatis查询结果中去掉前后空格

在mybatis的configure文件中增加typehandler:&lt;configuration&gt;&lt;typeHandlers&gt;        &lt;typeHandler handler="com.test.framework.utils.MyStringTypeHandler" javaType="java.lang.String" jdbcType="C...

2018-10-25 10:33:10 14038

原创 mybatis实现hibernate的saveOrUpdate

mapper配置文件中配置sql:&lt;insert id="saveOrUpdateObject" parameterType="TestCardInf"&gt;     &lt;selectKey keyProperty="count" resultType="int" order="BEFORE"&gt;             select count(1

2018-10-25 10:32:19 423

原创 netty粘包断包处理

最近在研究netty组件。Netty对nio的封装极大的方便了我们的业务开发,我们不再需要使用jdk提供的繁琐的nio进行编程,并且netty的扩展性强,健壮性强,不仅是对nio的bug的处理,还是对tcp粘包、断包的处理都是非常出色的。首先,先看看netty的服务端和客户端的demo。public class HelloServer {    public void run() ...

2018-09-06 17:29:27 2259

原创 对象属性过多引起的内存开销大的问题

对大表取数据,应该加上需要使用的字段名。如果数据量很大,从数据库查数据,然后映射到实体会耗费大量的时间。对于需要缓存到内存中的实体,字段也需要按实际情况设置,不需要的字段应该删除。比如:public class A implements Serializable{   private String name;   private String sex;private Str...

2018-08-31 15:53:21 530

nexus-3.18.1-01-win64.rar

官网下载不下来 nexus-3.18.1-01-win64.rarnexus-3.18.1-01-win64.rarnexus-3.18.1-01-win64.rar

2019-10-31

Mysql数据库规范.docx

Mysql数据库规范.docx

2019-10-31

windows memcached 安装包

windows memcached 安装包 有32位和64位的,解压后,请以管理员身份运行cmd.exe。执行install命令

2016-02-05

tomcate7+memcached所需jar包

tomcate7+memcached所需jar包 本人亲证可用

2016-02-05

exe4j 64位

exe4j 64位

2015-11-10

exe4j 32位 带注册码

exe4j 32位 带注册码

2015-11-10

jsoup爬虫中文api

此api来源于http://www.open-open.com/jsoup/,此文档只是作为备份,已备不时之需。

2015-10-10

log4j2与1.2学习和配置

log4j2与1.2学习和配置

2015-07-09

Mybatis eclipse 自动生成插件

Mybatis eclipse 自动生成插件

2015-06-17

xml转xsd的trang.jar

xml转xsd的trang.jar

2015-06-16

struts2.0中文帮助手册

struts2.0中文帮助手册

2015-05-15

Struts_in_Action_中文修正版

Struts_in_Action_中文修正版

2015-05-15

Spring 中文开发手册

Spring 中文开发手册

2015-05-15

W3C Javascript API

API

2015-05-15

jquery1.7.2_20120420中文版.chm

jquery1.7.2_20120420中文版.chm

2015-05-12

lucene学习

lucene学习,来自网络博客。非常详细

2015-05-12

Apache+Tomcat集成

Apache+Tomcat集成,session复制。

2015-05-12

分析javacore文件的工具

分析javacore文件的工具

2013-03-02

ext 2.0.2 源码 例子

ext 2.0.2 ext 2.0.2 ext 2.0.2

2010-11-17

linux常用命令全集

linux常用命令全集 linux常用命令全集 linux常用命令全集

2010-11-16

Ext3.2 中文版 API

Ext3.2 中文版 API Ext3.2 中文版 API Ext3.2 中文版 API

2010-11-16

ext2.2中文版API

ext2.2中文版API ext2.2中文版API ext2.2中文版API ext2.2中文版API

2010-11-16

jquery帮助文档

jquery的chm帮助文档,方便查阅,以提高开发速度

2010-10-04

oracle的chm帮助文档

oracle帮助文档,chm格式,方便查阅

2010-10-04

oracle 10g pl.sql编程.pdf

书中介绍了oracle10g的plsql编程。

2010-09-03

jbpm的spring驱动

jbpm spring驱动,这个驱动用于jbpm集成spring情况。

2010-07-20

汽车保险信息管理系统源码

汽车保险信息管理系统,分为投保管理,索赔管理,理赔管理,系统管理等功能

2010-07-01

ext-3.2.1.zip

ext-3.2.1.zip,ext源码,包括例子程序

2010-06-06

所有的常用正则表达式

包含了所有的常用正则表达式doc文档下载

2010-06-06

javaee.jar

spring的邮件需要的包javaee.jar

2010-06-06

基于.NET框架的数字图书馆管理系统.pdf

基于.NET框架的数字图书馆管理系统.pdf

2010-06-06

空空如也

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

TA关注的人

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