- 博客(75)
- 资源 (3)
- 收藏
- 关注
原创 一小时总结 -- MySql 知识(一)
一小时总结 – MySql 知识(一)数据库知识是开发和面试必须掌握的知识,只有了解数据库的脾性才能更好的使用它。在众多数据库软件里面,Oracle 的性能最强悍,目前基本上还没有 Oracle 一体机跑不动的应用(如果有只能说明你的体量太大或者使用太烂)。MySql 作为免费开源的代表基本上是大中小企业的首选。也是面试和应用中应该掌握的重点。以下内容为默记整理内容,如存在表述错误表述不准...
2020-03-30 11:33:17
315
原创 关于升级 Dubbo 版本到 2.6.5 后启动失败的“坑”
问题现象Dubbo从低版本升级到2.6.5版本后,启动失败,报错如下:05-Mar-2019 16:02:25.204 ?? [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to...
2019-03-05 18:11:09
3935
1
原创 关于Spring学习的一些建议
关于Spring学习的一些建议经典书籍Spring 的作者 Rod Johnson 直接铺垫了 Spring 的精髓和基因,Rod Johnson的思路和编程理念即Spring的思想和理念。优先推荐阅读Rod Johnson的两本著作:1.《Expert One-on-One J2EE Design and Development》改书首次出版于2002年是Rod Johnson独立创作...
2019-01-21 14:31:24
519
原创 Elastic-job 启动“假死”的问题分析
Elastic-job 启动“假死”的问题分析问题记录最近项目引入Elastic Job实现定时任务的分布式调度。引入的版本2.1.5,加入相关的job配置后启动项目,主线程假死,不进行后续逻辑处理和日志输出。输出的日志如下:[INFO] [RMI TCP Connection(2)-127.0.0.1] [2018-10-10 15:53:27.049] [] [StdScheduler...
2018-10-10 19:28:52
8507
原创 Esper学习 -- 第一章 Esper初体验
Esper 参考翻译自:Esper Version 7.1.0 参考手册,详情可以查询:EsperTech Inc. (http://www.espertech.com)第一章 起始1.1 复杂事件处理(CEP)简介Esper引擎被应用程序用来分析和处理事件。它的一些典型应用场景如下:业务流程管理和自动化处理(处理监控事件、BAM、报告一些异常等);金融领域:交易行为、...
2018-08-02 11:16:21
1201
原创 Java源码:String类
1.分类基本属性:String最终的属性就一个char[] value;构造方法区域:比较复杂的就是通过unicode码和byte[]构造;字符串比较:是否相等、大小(排序);查询:indexOf、startsWith、endWith、contains截取:subString、工具方法:格式化打印、unicode 码点相关的位操作方法;2. 基础面向对象的封装思想为什
2018-02-01 21:22:56
609
原创 Java源码 : Int包装类 -- Integer
1. Integer类的基本信息NOTE : 以JDK 1.8 为准,补充部分属性、方法在 JDK-1.6 / JDK-1.7中的变化说明;继承自: Number类实现了:Serializable和Comparable接口Integer类的结构和方法可以划分为以下区域:类定义、属性:7个属性,都很好理解;核心方法:构造Integer的方法和一些核心方法;int -> S
2018-01-29 20:55:23
1260
原创 自动发布脚本导致的Tomcat意外退出
最近公司项目的Dev环境要自己维护,为了避免麻烦,写了一个发布脚本,但是发现每次关闭和服务器的SSH连接后,Tomcat就意外退出,查看日志发现最后退出有如下几行日志:Nov 10, 2017 2:38:35 PM org.apache.coyote.AbstractProtocol pauseINFO: Pausing ProtocolHandler ["http-nio-8080"]Nov 1
2017-11-10 14:56:33
642
原创 实验 - MySql的事务隔离级别
通过百度搜索:“MySql 事务隔离级别”,“InnoDB 事务隔离级别” 发现很多的文章“特点”如下:重点在于解释:不可重复读和幻读的区别;大部分结论是:在repeatable read的隔离级别下,解决了不可重复读的问题,但是存在幻读问题。正确的分析可以参考:Innodb中的事务隔离级别和锁的关系关于脏读、幻读、不可重复、丢失更新,可做如下实验。强调仅限MySql环境,各类数据库的结论推测
2017-06-21 09:58:52
740
原创 InnoDB 锁
锁是InnoDB保障事务隔离性的重要手段,各个存储引擎以及DB的锁的实现是不同的。MySql中,MyISAM采用表锁,InnoDB基于行锁。Sql Server 2005支持乐观锁和悲观锁并发;InnoDB提供一致性的非锁定读和行级锁,类似Oracle;Lock和Latchlatch为轻量级锁,称为闩锁,latch类似Java的synchronize,但是Lock更宏观,latch可以认为是
2017-06-20 11:03:20
673
原创 InnoDB 事务
事务是数据库的一大特征,也是InnoDB不同于Mysql其他存储引擎的重要特点。InnoDB可以实现ISO定义的标准事务4个事务隔离级别。ACID特性事务具备ACID特性,ACID特性可以很好的保障数据的一致性、完整性。ACID特性放映到事务上就是:事务中的Sql要么全做,要么全不做,不能出现部分生效的情况。原子性:一系列操作要么都生效,要么都不生效;一致性:数据是最终一致的,满足约束要求的;
2017-06-19 11:09:46
678
原创 索引的应用
索引对数据库的性能有很重要的作用,合理使用索引,并优化自己的SQL来利用索引可以有效提高数据库的查询效率。何时使用索引OLAP和OLTP应用每次查询的数据量不同,索引的使用也不同,OLTP应用每次根据index查询少量数据,索引的利用率是有效的,但是LOAP每次获取大量数据,查询优化器可能不会使用索引;对于关键数据,频繁查询的数据,添加索引有效提升效率,尤其是索引覆盖。联合索引数据库联合索引可以有效
2017-06-15 14:46:17
640
原创 InnoDB的索引
索引基本上是数据库的核心,是数据库性能的关键,通过索引可以快速查询、定位到数据,Sql优化的一大原则是:数据尽量走索引,减少全表扫面。减少了全表扫面也就减少了磁盘IO。但是有一误区,并不是走了索引就一定快。InnoDB的表结构决定了,InnoDB属于索引组织表结构,InnoDB的索引是重中之重。分类InnoDB的索引从功能上分为两类:聚集索引:主键索引,这类索引可以直接定位到数据。辅助索引:非主
2017-06-13 11:50:17
583
原创 InnoDB 的表结构
InnoDB是索引组织表,这种结构的存储是根据主键顺序组织的。InnoDB要求每张表都必须有一个主键,如果没有InnoDB会自己确定或添加一个主键 InnoDB的主键索引也称为聚集索引,是一个核心的索引,聚集索引采用B+ 树结构,每个索引项都包含了row数据,也就是通过索引可以定义到具体的row数据,无需二次IO。索引组织表的主键确定主键是索引组织表的核心,表数据按照主键顺序存储,InnoDB
2017-06-09 17:07:27
890
原创 MySql - InnoDB 的文件
MySql和InnoDB包括以下文件:参数文件:也叫配置文件,提供了启动参数,主要是my.cnf文件;日志文件:记录MySql运行时的各种行为;socket文件:Mysql支持Unix套接字方式连接;pid文件:Mysql将自己的进程号写入pid文件中;MySql表结构文件:MySql的表结构独立于存储引擎定义为frm文件,新版本MySql的表结构文件可以和存储引擎文件放一起;存储引擎文
2017-06-08 10:22:24
727
原创 MySql - InnoDB 存储引擎
InnoDB存储引擎是MySql第一个完整支持事务的存储引擎,最早由第三方公司开发,并不是MySql的官方引擎,在MySql 5.6后被作为默认引擎推出。特点InnoDB设计是为OLTP应用设计,支持事务是最大的特点,此外还有如下特点:事务:完成的ACID及4级事务隔离级别支持;基于行锁设计:支持行锁、表锁;支持外键:可以设定外键,及外键的完整性约束;支持MVVC:多版本并发控制技术,实现了
2017-06-07 14:47:14
521
原创 MySql - InnoDB数据库引擎
MySql数据库的结构Mysql采用单进程多线程系统结构,Mysql采用插件结构,将对数据库表的操作和管理交个数据库引擎完成。核心组件如下图: Connectors:提供client及各种API方式便于编程;Connection Pool:连接池,管理各种连接;Sql Interface:Parser:Optimlzer:查询优化器,优化各种Sql查询,提升查询速度;Cache & Buf
2017-06-06 20:34:52
721
原创 数字签名技术 -- DSA算法
DSA算法是1991年美国国家标准技术协会公布的数字签名标准(DSS)的核心算法。本质上是ElGamal数字签名算法,仅能与SHA系列算法结合,没有相应的MD融合算法。DSA算法和RSA算法的异同DSA算法是DSS技术的核心算法,与RSA算法的异同如下:二者都是数字签名算法中的重要组成,缺一不可;DSA算法仅仅包含数字签名算法,没有密钥信息;DSA算法产生的数字证书无法进行加密通信,HTTPS
2017-04-14 10:30:53
4622
原创 非对称加密技术 -- RSA算法
RSA算法是流行最广泛的非对称加密算法,也是唯一的基于因式分解的非对称加密算法。相比DH算法,RSA算法更重要。发展历史1978年MIT三位学者提出对称加密算法:RSA算法,随后RSA算法被广泛应用。非对称加密算法的破解一直受人关注:1999年,RSA-144被成功破解;2002年,RSA-158也被成功破解;应用场景和特点RSA的应用场景和DH算法一样,密钥协商。但是RSA算法比DH算法简单
2017-04-13 09:57:05
1091
原创 非对称加密技术 - DH算法
DH算法是非对称加密算法的鼻祖,为非对称加密算法奠定了基础。主要用途是进行密钥交换。DH算法历史1976年非对称加密算法思想被提出,但是当时并没有给出具体算法和方案,因为当时没有研究出单向函数(也就是信息摘要算法还没出现),但是IEEE的期刊(作者:W.Diffie和M.Hellman)中给出了通信时双方如何通过信息交换协商密钥的算法,也就是DH算法。DH算法的目的仅在于双方在安全的环境下协商一个加
2017-04-11 10:15:56
2324
原创 非对称加密技术介绍
对称加密技术被称为初等加密技术,非对称加密技术即为高级数据加密技术,安全性更高,但是效率要低。特点非对称加密技术一般有两把密钥:公钥和私钥 公钥用来加密,私钥用来解密是非对称加密技术的特点;优势:安全,劣势:效率低,极端场景下比对称加密技术能慢1000倍;家族发展历史对称加密技术解决了一个信息加密技术问题,但是对称加密技术有一个很大的问题就是密钥管理问题,这是一个技术和管理手段并行才能解决的难
2017-04-10 14:46:01
2945
原创 对称加密技术 - PBE系列
PBE加密跳出了DES和AES的加密模式,综合对称加密、信息摘要算法的优势,形成了一个对称加密的特例。其实PBE加密并不是独创了一个新的算法,而是先使用MD(SHA)系列算法将口令和slat计算出一个key出来,然后用这个key作为DES(AES)的加解密key,这样DES和AES的key不便于记忆且需要计算的问题就解决了。算法特点PBE算法,全称 password based encrytpion
2017-04-07 10:35:34
905
原创 对称加密技术 - AES加密
AES发展历史1997年NIST发起了整机替代DES算法的活动:高级数据加密标准(Advanced Encryption Standard);NIST要求算法比3DES块,安全性高,具有128位分组长度,支持128、192、256位长度的密钥;2000年Rijndael算法当选AES算法标准;AES:密钥建立时间短、灵敏性好、内存需求低,被广泛应用;AES跟进密钥长度分为AES-128、A
2017-04-06 16:04:57
726
原创 对称加密技术 - DES系列的Java用法
Java中的用法Java在JDK 6中仅仅提供了针对56位密钥长度的DES算法实现,提供了针对112位、168位的3DES的算法实现,使用起来不复杂,主要分为如3个步骤:构建密钥:使用KeyGenerator,这个步骤对称加密算法和非对称加密算法都需要;构建DES专用的SecretKey:DES和3DES构建SecretKey的时候略有不同,这步是针对存储下来的密钥进行处理;进行加解密:要注意
2017-04-06 11:04:52
1103
原创 对称加密技术 - DES系列
DES算法和DESSede算法统称DES系列算法,是对称加密算法领域的经典加密算法。DESSede使用三次迭代,又称3DES,增加算法安全性。DES算法是众多对称加密算法的基础,很多算法都是基于该算法演变而来。DES家族发展历史1973年,美国国家标准计算研究所(NIST)征求对称加密算法方案,IBM提交了自己的算法;1977年,IBM的算法(Luciffer算法)被正式采用,成为数据加密标准:
2017-04-05 14:12:05
901
原创 对称数据加密技术
对称数据加密技术是当前应用最广泛、使用频率最高的加密技术,对称加密算法是双向可逆的,加密密钥和解密密钥相同是最大的特点。对称加密算法由古典加密算法演变而来,大部分加密算法的解密算法是逆运算。特点对称加密算法有20多种,对称加密算法有如下特点:加密和解密密钥是一致的;安全程度依赖于密钥长度;每种算法对密钥的长度是有一定要求的;大部分是分组加密算法,所以算法需要指定工作模式、填充类型。一般对称
2017-04-01 09:51:48
2885
原创 信息摘要技术 - 其他信息摘要算法
信息摘要算法很多,主要的MD、MAC、SHA算法很常用,但是还有一些其他信息摘要算法,这些摘要算法JDK都没有提供。RipeMD1996年提出,在分析MD4、MD5的缺陷基础上做的改进算法,有4个标准和2个融合产物,区别是产生的摘要长度区别。RipeMD128,产生128位摘要信息;RipeMD160,产生160位摘要信息;RipeMD256,产生256位摘要信息;RipeMD320,产生3
2017-03-31 18:42:07
883
原创 信息摘要技术 - MAC系列
MAC算法综合了MD和SHA算法的特性,和MD、SHA算法类似。MAC算法家族发展历史MAC算法是含有密钥的散列算法,兼容MD和SHA算法,在此基础上添加了密钥支持,因此也被称为HMAC算法,定义在RFC 2014中,分为两大分支MD和SHA分支:MD分支:HmacMD2、HmacMD4、HmacMD5;SHA分支:HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA51
2017-03-30 14:19:31
597
原创 信息摘要技术 - SHA系列
SHA算法分为两个分支:SHA-1和SHA-2,其中SHA-2包括SHA-224、SHA-256、SHA-384和SHA-512,SHA算法和MD算法类似,也是产生一个固定的散列码。SHA算法家族发展历史SHA算法被广泛的认为是MD5算法的继任者,由美国国家安全局(NSA)设计,经过美国标准与技术研究院(NIST)发布,发布历史比MD算法晚,相对安全:1993年,NIST发布SHA-0算法:FIP
2017-03-29 10:19:17
753
原创 信息摘要技术 - Base64技术
Base64不是加密算法,不适合用在加密场景下,但是Base64的效率不错适合用在一些特殊场景下,Base64不是信息摘要算法,但是比较适合整理在信息摘要技术类中。 Base64的产生是解决电子邮件传输问题的,因为最早的电子邮件只允许ASCII码字符,这样如果传输非ASCII码内容,很可能发生乱码; Base64是双向的,即可以解码;算法定义Base64算法是一种基于64个字符的编码
2017-03-27 14:47:58
1018
原创 信息摘要技术 - MD系列
MD算法是信息摘要三大算法中场景的一种,全称:Message Digest算法,按照规范版本分为MD2、MD4、MD5三种算法,目前最常用的是MD5版本算法。MD家族发展历史1989年,RSA发明人开发了MD2算法: 1.对信息进行补位,信息的字节长度为16的倍数;2.以一个16位的校验和,追加到信息末尾;3.根据新的信息产生一个128位的散列值,得出MD2值; 1990年,在MD2基础上
2017-03-24 17:52:52
2295
原创 信息摘要技术及算法介绍
数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。 数据摘要算法也被称为哈希(Hash)算法、散列算法;特点消息摘要算法(杂凑算法,哈希算法)的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。1.无论输入的消息
2017-03-22 11:46:15
7543
原创 Dubbox RestEasy 文件上传乱码解决
背景最近开发Dubbox服务,使用了Http协议对PHP系统暴露了一些Service服务,但是在上传时出现了乱码,google没有发现好的解决方案,只能自己debug,发现是配置中缺少一项。解决方案直接说解决方案: 添加一个filter,filter内容如下: “` /** * Servlet Filter设置编解码 * * @author qiesai
2017-03-21 18:46:59
3988
1
原创 Dubbox和C3P0集成:NoClassDefFoundError错误
Dubbox加入C3P0框架集成很简单,正常集成,正常添加;报错操作添加了Dubbo的Filter,代码如下,provider.xml中添加<dubbo:provider filter="AppInvokeLogFilter"/>META-INF下添加dubbo/com.aliababa.dubbo.rpc.Filter文件,内容如下:AppInvokerLogFilter=com.saillen.
2017-03-07 18:29:40
769
原创 UTF-8和unicode的关系
UTF-8和unicode的关系结论:Unicode是一种规范,UTF-8是具体的实现方式。 你可以这么认为,unicode就好比Java中的接口,它只规定一些规则和内容及表示方法,UTF-8是具体的实现,考虑了很多实际的东西,比如如何存储、传输、解析、编码。UTF-16、UTF-32也是具体的实现方式,每种实现都有一些有缺点的,各自适用的场景不同,一般我们最常用的就是UTF-8: Unico
2017-01-14 17:10:42
704
原创 Git笔记
Git 技巧使用Git一定要理解工作区、暂存区、版本库的概念。注意几个要点:git add 前多用git status -s方式查看有哪些修改,防止提交了不应该提交的内容。少用或者不要用git add -A,可以用git add -u多用git <命令> –help查看哪些参数,有些参数很有效率和作用git中参数大小写有时候差异很大使用Git就要多用分支,会用暂存,会经常性的切分支当发现
2016-09-23 12:08:19
467
原创 乔布斯的成功说明了什么
前言好久没有写过日记和博客了。换了新工作,每天累死累活,不过过的还算充实,这个季度终于稍微轻松点了,忙碌惯了突然闲下来总有一种无所适从的感觉。今天偶然翻起自己的博客,以前的一些文章还真是幼稚无趣。我一直坚信,人并不是有了希望才坚持,而是坚持了才有希望。
2016-05-21 19:12:29
1460
原创 Nexus私服启动失败
Nexus服务器被Reboot了,重启后,Neuxs伺服器无法启动。 使用.nexus start命令后,显示Nexus启动成功,但是访问Web页面后Nexus进程就停了。 查询$NEXUS_HOME/logs/wrapper.log日志,发现会报Unsupported marjor.minoor version 5.0错误,该错误是因为低版本JDK无法加载高版本JDK引发的。
2015-10-20 11:45:47
9301
原创 JS计时器
最新项目上用到一个JS计时器,缺点是没有做setTimeOut的管理,只能启动一个计时器。JS计时器,工具类,用法:var timer = TimeUtils.getTimer().start("#Id“);//启动timer.stop();//停止timer.getStartTime();//获取开始时间timer.getStopTime();//获取停止源码:
2015-10-13 18:15:45
925
原创 Nexus和Jenkins搭建
使用跳板机登陆到开发机,采用秘钥方式ssh -i 秘钥文件 root@目标机器IP 上传文件到开发机,因为中间有一个跳板机,可以两种方式(1)使用XSheel的ZMODE方式传输,小文件比较合适,比如一些配置文件,很简单,大文件不适用。(2)使用scp命令,先把文件通过xftp等传到跳板机上,然后跳板机上使用scp上传到开发机。scp格式:scp -
2015-09-29 18:54:15
7824
Excel列索引字母数字转换工具,WEB版
2015-06-11
Excel列索引字母数字转换工具
2015-05-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人