自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 收藏
  • 关注

原创 集群中几种session同步解决方案的比较

from:http://blog.csdn.net/shimiso/article/details/8964527在集群中session安全和同步是个最大的问题,下面是收集到的几种session同步的方案,希望能通过分析其各自的优劣找出其适应的场景。 1. 客户端cookie加密简单,高效。比较好的方法是自己采用cookie机制来实现一个session,在应用中使用此sessio...

2016-03-03 17:25:18 211

原创 choose (when, otherwise)

choose (when, otherwise)     有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为true,就会执行if标签中的条件。MyBatis提供了choose 元素。if标签是与(and)的关系,而choose比傲天是或(or)的关系。    choose标签是按顺序判断其内部when标签中的test条件出否成...

2016-02-23 15:39:33 513

原创 单例模式

 package com.data.thread;/** * @author dk * @date 2016/1/18 */public class Singleton1 { private Singleton1(){} private static final Singleton1 instance = new Singleton1(); ...

2016-01-18 18:33:21 291

原创 volatile关键字解析

   转载http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。   volatile关键字虽然从字面上理解起来比较简单,但...

2016-01-18 17:06:10 177

原创 Double去掉小数点后末尾的0

1.    private Object formatZero(double num){if(num % 1.0 == 0){return (long)num;}return num;} 2.Double E输出         Double d = 5.7657567575757E13;System.out.println(d.toString());...

2016-01-14 15:46:37 13190

原创 Nginx/LVS/HAProxy负载均衡软件的优缺点详解

一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术。具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。 一种是通过硬件来进行进行,常见的硬件有比较昂贵的F5和Array等商用的负载均衡器,它的...

2016-01-08 18:29:44 107

原创 Nginx配置文件nginx.conf中文详解

#定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error.log info; #进程文件...

2016-01-08 18:16:23 113

原创 mysql-connector-java 5.1.9包 bug

1.本地使用ssh端口转发,转发至生产环境mysql数据库端口,本地使用java程序中配置使用127.0.0.1及所有可以dns到本机回环ip的域名,都会导致Access denied for user 'username'@'localhost'错误。 2.修改数据库默认连接端口3306无效 连接字符串jdbc:mysql://localhost:3306/xxxx改为jdbc:my...

2016-01-08 10:36:28 361

原创 nginx重新加载配置(不停服务)

当nginx改变配置想让它生效而不停止服务,如下两种方式都可以:1) nginx -t;  nginx -s reload2) nginx -t;  kill -HUPnginx -t 检查nginx配置的语法,操作前都要检查一下,很重要,发现错误可及时修正....

2016-01-07 12:21:39 731

原创 10条命令,一分钟分析Linux性能问题

from:http://mp.weixin.qq.com/s?__biz=MzAwNjY4NTQ4MA==&mid=400797122&idx=1&sn=b73ba049be8699eab97d58792a68676d#rd 当你登录到一台存在性能问题的Linux服务器上时,在头一分钟,你会检查什么? 我们看看Netflix的性能工程师是怎么做的。 ...

2016-01-04 13:51:06 202

原创 MySql常用的函数(转帖)

控制流函数 IFNULL(expr1,expr2)  如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。  mysql> select IFNULL(1,0);         -> 1 mysql> select IFNULL(0,10)...

2015-10-15 18:54:43 109

原创 HashMap解决hash冲突的方法

put 方法:  public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold); } if (key == null) return putForNullKey(value...

2015-10-08 15:26:50 311

原创 AVL树

 from:http://www.cnblogs.com/vamei/archive/2013/03/21/2964092.html二叉搜索树的深度与搜索效率我们在树, 二叉树, 二叉搜索树中提到,一个有n个节点的二叉树,它的最小深度为log(n),最大深度为n。比如下面两个二叉树:深度为n的二叉树深度为log(n)的二叉树这两个二叉树同时也是二叉搜索树(参考树...

2015-09-30 15:06:19 242

原创 Mybatis源码

一.SqlSessionFactoryBuilder源码片段:SqlSessionFactoryBuilder.build()主要参数类型包括(Reader reader,String environment,Properties properties)/(InputStream inputStream,String environment, Properties properties)...

2015-09-28 18:28:18 112

原创 ThreadPoolExecutor

ThreadPoolExecutor corePoolSize 是线程池的核心线程数,通常线程池会维持这个线程数maximumPoolSize 是线程池所能维持的最大线程数keepAliveTime 和 unit 则分别是超额线程的空闲存活时间数和时间单位workQueue 是提交任务到线程池的入队列threadFactory 是线程池创建新线程的线程构造器hand...

2015-09-25 16:20:45 194

原创 SQL truncate 、delete与drop区别

2011-11-25 14:26 by 编程笔记, 32342 阅读, 1 评论, 收藏, 编辑相同点:1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)dr...

2015-09-16 11:47:05 89

原创 深入理解maven与应用

1、三套生命周期     对于maven的生命周期来说,共有三个相互独立的生命周期,分别是clean、default、site。clean生命周期目的是清理项目,default生命周期目的是构建项目,而site生命周期目的是建立项目站点。     每个生命周期分别包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段。如clean生命周期包含pre-clean、clean和post...

2015-09-15 18:05:40 133

原创 maven 项目中有 excel,, 打包后,打开excel为乱码

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>${maven.resources.plugin.version}...

2015-09-15 18:01:36 1243 1

原创 Excel poi导出

package com.manyi.iw.agent.sale.utils;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.openxml4j.exceptions.InvalidFormatException;import org.apache.poi.ss.usermodel.Cell;impor...

2015-09-15 16:12:06 135

原创 自旋锁、排队自旋锁、MCS锁、CLH锁

自旋锁(Spin lock)自旋锁是指当一个线程尝试获取某个锁时,如果该锁已被其他线程占用,就一直循环检测锁是否被释放,而不是进入线程挂起或睡眠状态。自旋锁适用于锁保护的临界区很小的情况,临界区很小的话,锁占用的时间就很短。简单的实现import java.util.concurrent.atomic.AtomicReference;public class SpinL...

2015-08-28 16:45:05 107

原创 java多态

/** * Created by Administrator on 2015/8/25. */public class DTDemo { public static void main(String[] args) { A a1 = new A(); A a2 = new B(); B b = new B(); ...

2015-08-25 17:27:32 66

原创 SQL中的case when then else end用法

Case具有两种格式。简单Case函数和Case搜索函数。--简单Case函数CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女'...

2015-08-21 18:02:34 7575 1

原创 MyBatis Generator产生的Example类

from:http://openwares.net/database/mybatis_generator_example.htmlExample类用于构造复杂的筛选条件。基本概念CriterionCriterion是最基本,最底层的Where条件,用于字段级的筛选,feild用于指代字段名字,列举如下:只有一个条件,不需要其他参考值feild IS NOLLfeild I...

2015-08-18 17:58:42 94

原创 spring+quartz

1.pom.xml <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.7.3</version> </depende

2015-08-17 17:51:39 104

原创 虚拟内存、物理内存

from:http://blog.chinaunix.net/uid-26983585-id-3364091.html前一段时间在面试总监的时候,总监问了我这样的一个问题:你个我说说物理内存和虚拟内存到底是怎么一回事?其实之前我看过这个问题,据我理解的,当时是这么回答的“进程在运行的时候,操作系统都为其分配一个4GB的地址空间,即所谓的虚拟地址空间,一般情况下,当我们的程序很大的时候,实际的...

2015-07-28 18:42:21 140

原创 揭开Linux的Swap之谜

为什么选择Linux?因为Linux能让你掌握你所做的一切!  为什么痛恨Windows?因为Windows让你不知道自己在做什么!  这就是我喜欢Linux的原因。只要我愿意,我可以将底层的系统运行机制看得清清楚楚,可以掌握一切。而Windows尽管界面漂亮,却让你总也猜不透她心里想什么。我不喜欢若即若离的感觉。  如果你一看到这个标题就觉得头疼,或者对Linux的内部技术根本不关心,那么,我...

2015-07-28 16:37:44 596

原创 maven skip test

1. <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId>

2015-07-22 18:49:38 201

原创 Master/Slave底层通信的体系权衡

项目需要,在写Master/Slave底层分布式通信模块,它的体系结构图: 通信模式:可以选择Socket和或者Socket之上的RPC协议来进行,考虑到项目的需求,使用了RPC来支持Master和Slave之间的通信。Master与Slave之间实现互联的功能并不难,但是Master与Slave之间的相互感知功能,Master节点的异常或者Slave节点的宕机,都是在设计时应该考虑的问题。...

2015-07-21 18:23:10 1031

原创 SQL注入问题总结

一、SQL注入介绍 SQL注入就是将原本的SQL语句的逻辑结构改变,使得SQL语句的执行结果和原本开发者的意图不一样;方法:在表单中将命令当作用户输入提交给程序; 二、SQL注入范例 这里我们根据用户登录页面 [html] view plaincopy <form action="" >  用户名:<inpu...

2015-07-20 16:32:28 172

原创 ibatis 中 $与#的区别

在sql配置中比如in(#rewr#) 与in ($rewr$)在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如: select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为整型...

2015-07-20 15:26:28 122

原创 CentOS查看内核版本,位数,版本号

1)[root@localhost ~]# cat /proc/versionLinux version 2.6.18-194.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:14 EDT 20102)[root@lo...

2015-07-16 14:59:17 79

原创 [转]org.springframework.web.util.IntrospectorCleanupListener作用

spring中提供了一个名为org.springframework.web.util.IntrospectorCleanupListener的监听器。它主要负责处理由JavaBeans Introspector的使用而引起的缓冲泄露。spring中对它的描述如下:  它是一个在web应用关闭的时候,清除JavaBeans Introspector的监听器.在web.xml中注册这个lis...

2015-07-14 18:11:52 74

原创 CentOS-7 安装mysql

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm# rpm -ivh mysql-community-release-el7-5.noarch.rpm# yum install mysql-community-server成功安装之后重启mysql服务# service mysqld ...

2015-07-14 18:10:04 107

原创 mysql in 子查询 效率慢 优化(转)

文章表article(id,title,content)标签表tag(tid,tag_name)标签文章中间表article_tag(id,tag_id,article_id)其中有个标签的tid是135,我帮查询标签tid是135的文章列表用以下语句时发现速度好慢,我文章才690篇select id,title from article where id in(select article_i...

2015-06-25 20:12:48 99

原创 Mysql分库分表方案

Mysql分库分表方案1.为什么要分表:当一张表的数据达到几千万时,你查询一次所花的时间会变多,如果有联合查询的话,我想有可能会死在那儿了。分表的目的就在于此,减小数据库的负担,缩短查询时间。mysql中有一种机制是表锁定和行锁定,是为了保证数据的完整性。表锁定表示你们都不能对这张表进行操作,必须等我对表操作完才行。行锁定也一样,别的sql必须等我对这条数据操作完了,才能对这条数据...

2015-06-15 21:58:05 108

原创 MYSQL分页limit速度太慢优化方法

日常分页SQL语句select id,name,content from users order by id asc limit 100000,20扫描100020行如果记录了上次的最大IDselect id,name,content from users where id>100073 order by id asc limit 20扫描20行。总数据有500万左右以...

2015-06-15 19:02:22 347

原创 MySQL使用与优化总结

存储引擎的选择:MyISAM vs InnoDB使用与优化DB的优化SQL的优化应用的优化简单故障排查技巧慢查询排查Lock情况排查Slave延时排查监控内置命令外部监控简单说说mysql高可用最后存储引擎的选择:MyISAM vs InnoDB MyISAM:支持全文索引;使用表级锁;读并发性能好。...

2015-06-15 18:41:23 97

原创 MySQL分库分表环境下全局ID生成方案

1. 数据库自增ID——来自Flicker的解决方案2. 独立的应用程序——来自Twitter的解决方案在大型互联网应用中,随着用户数的增加,为了提高应用的性能,我们经常需要对数据库进行分库分表操作。在单表时代,我们可以完全依赖于数据库的自增ID来唯一标识一个用户或数据对象。但是当我们对数据库进行了分库分表后,就不能依赖于每个表的自增ID来全局唯一标识这些数据了。...

2015-06-14 21:24:23 119

原创 淘宝TDDL数据库分库分表

 分库分表,而且分库规则非常灵活.2. 主键生成策略 目前TDDL提供的id生成主要还是依托数据库来进行的,oracle可以直接使用sequence来完成id生成,mysql则需要DBA建立一个表专门用于生成id.3. 连接查询策略虽然TDDL目前并不直接支持连接查询,但连接查询在业务中也是常见的查询。处理这类查询时,需要由业务去决定如何实现这类查询。处理这类查询时,一个普遍...

2015-06-14 20:22:42 157

原创 淘宝高性能可伸缩平台架构

一 应用无状态(淘宝session框架)  假如在session中保存了大量与客户端的状态信息,保存状态信息的server宕机时  通常通过集群解决,不仅有负载均衡,更重要的是要有失效恢复failover  tomcat用集群节点广播复制,jboss用配对复制等session状态复制策略,但严重影响系统的伸缩性,不能通过增加更多的机器达到良好的水平伸缩  因为集群节点间sessi...

2015-06-14 20:22:00 89

空空如也

空空如也

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

TA关注的人

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