自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用Visual VM 查看linux中tomcat运行时JVM内存

前言:在生产环境中经常发生服务器内存溢出,假死或者线程死锁等异常,导致服务不可用。我们经常使用的解决方法是通过分析错误日记,然后去寻找代码到底哪里出现了问题,这样的方式也许会奏效,但是排查起来耗费时间比较多,或者说本身代码本身就没有错,而是访问量大时候消耗内存太多,垃圾对象没有及时回收等等其他情况导致的,这样排查异常起来异常困难,那么有没有一些可视化的工具,帮助我们可以详细地查看当前应用服务的内存情

2015-05-06 14:40:52 4600

原创 3、设计模式之观察者模式

1、背景:在现实生活或者应用程序中,对象(人)与对象(人)之间的合作是根据对方的状态来进行的,或者说自己的状态发生变化之后,通知对方也发生相应的改变。比如场景:“儿子”睡醒后,爸爸要给“儿子”喂奶吃。在程序中是如何实现这样的场景的呢?相信很多人思路大概是这样:启动一个“爸爸”线程,不断询问(监听)“儿子”的状态是不是醒了,如果是,则进行喂奶的操作。这样的方法虽然能实现了上述的场景,但是显然这样做并不

2015-04-27 10:47:11 1621

转载 关系型数据的分布式处理系统MyCAT(2)——高级功能和管理监控

关系型数据的分布式处理系统MyCAT(2)——高级功能和管理监控日期:2014/12/24文:阿蜜果1、  高级功能1.1 分片策略MyCAT通过定义表的分片规则来实现分片,每个表格可以捆绑一个分片规则,每个分片规则指定一个分片字段并绑定一个函数,来实现动态分片算法。1.1.1 分片规则以常用的基于整数映射的分片函数org.MyCAT.route.funct

2015-04-24 17:15:27 1510

转载 关系型数据的分布式处理系统MyCAT(1)—概述和基本使用教程

关系型数据的分布式处理系统MyCAT——概述和基本使用教程日期:2014/12/24文:阿蜜果1、  MyCAT概述1.1 背景随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:(1)集中式处理,势必造成性能瓶颈;(2)应用程序集中在一台计算机上运行,一旦该计算

2015-04-24 17:14:16 1646

原创 2、设计模式之单例模式

1、背景:为了减少系统的资源或者达到资源共享的目的,要求系统中只保存一个实例,即单例。并且提供一个访问该实例的全局接口。在现实系统设计中也大量使用了这种模式,如window任务管理窗口、管理配置文件对象,线程池等等。2、例子    2.1 系统配置文件,系统重启时加载配置文件,保存在内存中    2.2 数据库连接池,维护数据库设定的连接数,负责提供数据库连接,回收数据库连接 3、单

2015-04-21 10:32:02 642

转载 Xms Xmx PermSize MaxPermSize 区别

Eclipse崩溃,错误提示:MyEclipse has detected that less than 5% of the 64MB of Perm Gen (Non-heap memory) space remains. It is strongly recommendedthat you exit and restart MyEclipse with new virtual ma

2015-04-13 15:15:48 465

转载 Java 集合系列目录(Category)

下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录。 01. Java 集合系列01之 总体框架02. Java 集合系列02之 Collection架构03. Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例04. Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)

2015-04-13 14:29:32 529

转载 Wget与crontab组合定时任务的用法……

经过偶的测试、加上实践得来的,这肯定是一篇好文章!相信偶……作者:phpma 罗江游鱼……执行 crontab -e 编辑任务文件 按下面的格式加入一行分钟 小时 日 月 星期 命令例如0 4 * * * wget --spider http://www.google.com就代表在每天四点零分运行 wget ……下面附上一篇比较好的关于crontab的使用介绍的文章:

2015-04-10 16:27:10 1450

转载 Spring3.3 整合 Hibernate3、MyBatis3.2 配置多数据源/动态切换数据源 方法

一、开篇这里整合分别采用了Hibernate和MyBatis两大持久层框架,Hibernate主要完成增删改功能和一些单一的对象查询功能,MyBatis主要负责查询功能。所以在出来数据库方言的时候基本上没有什么问题,但唯一可能出现问题的就是在hibernate做添加操作生成主键策略的时候。因为我们都知道hibernate的数据库本地方言会针对不同的数据库采用不同的主键生成策略。所以针对这一问题不得不

2015-04-09 15:01:16 1179

原创 1、设计模式之策略模式

设计模式的一句话 :过分设计是一种罪过,要根据项目实事求是,没有任何一种设计是一步到位,很多功能都是根据反馈进行改善。1、背景:在实际开发中,我们常常遇见实现某种业务功能时,有许多不同实现方式,使用者可以任意选择其中的一种方式。 例如,在排序某个序列数据时,我们可以选择冒泡排序、快速排序、插入排序、堆排序等等。我们在开发过程中,通常会选择 将不同的算法以硬编码的方式封装到一个类当中,当我们需要添

2015-04-07 10:27:57 1258

转载 HttpClient容易忽视的细节——连接关闭

大部分人使用HttpClient都是使用类似下面的事例代码,包括Apache官方的例子也是如此:[java] view plaincopyprint?HttpClient client = new HttpClient();  HttpMethod method = new GetMethod("http://www.apache.org");  try {    cl

2015-03-31 15:45:19 2948

原创 利用eclipse发布web项目到tomcat

本篇文章主要是实践如何在eclipse中导入myeclipse开发的web项目,并且将项目发布到指定的tomcat。如果你的eclipse中还没安装好tomcat插件,请首先读《 eclipse集成tomcat进行发布web项目 》         1、首先导入myeclipse的web项目,这里我利用项目csp-base-clear作为示例。右键“import”找到要选择的项目,导入后如下面

2015-03-20 15:27:21 1052

原创 eclipse集成tomcat

背景:开发web项目,myclipse肯定是第一选择,但是myeclipse扩展了很多web开发的插件,是要收费的,而且体积判断,大小 约为1G。再开发比较大的项目的时候,整台电脑经常卡的很严重,这种痛苦大家都能体会得到的(我的电脑i5+4G内存配置),严重影响了开发效率。   eclipse是免费,体积大小才是250M左右,但是需要进行相关设置才能发布web项目到tomcat的。

2015-03-20 14:34:00 656

转载 移动H5前端性能优化指南

移动H5前端性能优化指南概述1. PC优化手段在Mobile侧同样适用2. 在Mobile侧我们提出三秒种渲染完成首屏指标3. 基于第二点,首屏加载3秒完成或使用Loading4. 基于联通3G网络平均338KB/s(2.71Mb/s),所以首屏资源不应超过1014KB5. Mobile侧因手机配置原因,除加载外渲染速度也是优化重点6. 基于第五点,要合理处理代码减

2015-03-20 11:09:09 478

转载 通过rsync+inotify实现数据的实时同步

一、rsync的优点与不足 与传统的cp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需

2015-03-20 10:45:10 527

转载 Jedis的Publish/Subscribe功能的运用

由于redis内置了发布/订阅功能,可以作为消息机制使用。所以这里主要使用Jedis的Publish/Subscribe功能。1.添加Spring核心包,主要使用其最核心的IoC功能。如果使用Maven,配置如下:Xml代码 dependency>groupId>org.springframeworkgroupId>artifac

2015-03-13 16:58:22 532

转载 数据库分表后,并发环境下,生成全局id生成的几种方式

最近一个项目由于数据量变大,需要进行数据分表。数据存储在淘宝的tddl上。分表后,原先的自增id就不能使用了。tddl对java支持很好,分表后无需考虑全局id的问题。但是这个项目使用的是php进行开发,必须自己生成全局id。以下列出几种分表方案,仅当抛砖引玉。方法1:使用CAS(compare and swap)其实这里并不是严格的CAS,而是使用了比较交换原子操作的思想。生成思路如

2015-03-13 15:06:41 477

转载 一致性hash算法 - consistent hashing

一致性 hash 算法( consistent hashing )consistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前在 cache 系统中应用越来越广泛;1 基本场景比如你有 N 个 cache 服务器(后面简称 cache ),那么如何将一个对象 object 映射到 N

2015-03-13 12:01:23 411

转载 The last packet successfully received fro m the server was 63,020,509 milliseconds ago

自己的小网站在测试机器上长时间不访问后(默认8小时过期),再次访问发现有如下错误:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 63,020,509 milliseconds ago.

2015-03-09 17:24:32 816

原创 Linux命令行下显示下载文件进度ftp或scp

背景:使用ftp去获取大文件时,出现假死现象,不知道文件是否还在传输1、登录到远方的ftp服务器,并输入用户,密码root@localhost list]# ftp 19.129.81.5Connected to 19.129.81.5.220 (vsFTPd 2.2.2)530 Please login with USER and PASS.530 Please lo

2015-03-05 14:11:28 11485

原创 6、JavaScript高级之继承一(原型链)

大家都知道JavaScript中没有类的概念,那么 怎么实现继承呢?这就是今天要实现的内容。在实现之前,先来看一道腾讯的js面试题: 有一只小狗,叫“花花”,它会‘汪汪’叫,它的同伴也会‘汪汪’叫,后来环境发生变化,新出生的狗狗不会‘汪汪’叫了,而是变成‘呜呜’。试通过继承来达到目的。带着实际问题去学习,更能知道自己想要的是什么,更能抓住重点。先憋开面试题不说,先看看,js如何实现继承

2015-03-02 10:48:22 684

原创 5、JavaScript高级之私有属性

学过java或者C++都知道,给对象声明一个私有属性使用private关键字就可以实现,但是在JavaScript中可不可以声明一个私有属性,答案肯定是可以的,你就相当于写了一句废话吧o(╯□╰)o。在实现JavaScript的私有属性之前,先来看看一道百度的面试题:实现一个对象,对象中有个私有属性,对象外部无法访问,但是可以通过接口实现设置和访问。如果看过上一篇的《JavaS

2015-03-01 15:41:45 707

原创 4、JavaScript高级之闭包

一、什么是闭包距离上一次更新有一段时间了,过年你懂得,接下来就谈谈JavaScript的高级用法——闭包。js的闭包其实不是什么难懂的高深的概念,只是有些书籍当中介绍的不够易懂或者说举得例子不太恰当,现在我们就通过简单的例子来理解“闭包”。作为程序员,也许一段针对的代码,比那些文字描述更能说明问题,用代码说话,眼见为实。好了,先看下面的一段代码: function t1(){

2015-03-01 14:27:00 836

原创 3、JavaScript高级之匿名函数

定义一个函数在JavaScript中,可以通过“函数声明”和“函数表达式”来定义一个函数,比如1、通过“函数声明”来定义一个函数    function t1(){}2、通过“函数表达式”来定义一个函数    t2 = function(){}但是两种方式定义函数,效果是不同的   t1是函数声明,‘词法分析’时,AO.t1 = function(){},-

2015-02-11 09:52:26 711

原创 2、JavaScript高级之词法分析

JavaScript代码自上而下执行,但是在js代码执行前,会首先进行词法分析,所以事实上,js运行要分为词法分析和执行两个阶段。词法分析    词法分析主要分为3步:         第1步:分析形参         第2步:分析变量声明         第3步:分析函数声明    如果存在函数嵌套,则从外往内进行词法分析    具体步骤:

2015-02-09 14:55:23 954

原创 1、JavaScript高级之函数作用域链

作用域链:JavaScript的每个函数function都有自己的作用域,使用Active Object(简称AO)活动对象来保存,在相互嵌套的函数中形成了作用域链,如图:作用域链就是从里到外的AO链变量的寻找:函数fn3中使用的变量,如在fn3作用域内寻找不到,则往外层fn2作用域寻找,以此类推,直到全局对象window代码演示:var c =

2015-02-09 14:40:35 1005

转载 大型网站架构改进历程:存储的瓶颈(6)

在讲数据库水平拆分时候,我列出了水平拆分数据库需要解决的两个难题,它们分别是主键的设计问题和单表查询的问题,主键问题前文已经做了比较详细的讲述了,但是第二个问题我没有讲述,今天我将会讲讲如何解决数据表被垂直拆分后的单表查询问题。  要解决数据表被水平拆分后的单表查询问题,我们首先要回到问题的源头,我们为什么需要将数据库的表进行水平拆分。下面我们来推导下我们最终下定决心做水平拆分表的演进过程,具

2015-02-04 10:27:49 460

转载 大型网站架构改进历程:存储的瓶颈(5)

上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉得这些问题都是像BAT这样巨型互联网公司才会认真思考的,因此本篇我打算换个角度来阐述本文的后续内容。

2015-02-04 10:26:12 454

转载 大型网站架构改进历程:存储的瓶颈(4)

如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。  数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一个整体的表进一步拆分成多张表,每一张表都用独立的数据库进行存储。当表被水平拆分后,原数据表成为了一个

2015-02-04 10:22:41 460

转载 大型网站架构改进历程:存储的瓶颈(3)

存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。  这里我们先回顾下数据库的垂直拆分和水平拆分的定义:  垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。  水平拆分:是根据一定的规则把同一业务单元的数据拆分到多个数据库里。  垂直拆分是一个粗粒度的拆分数据,它主要是将原

2015-02-04 10:20:57 424

转载 大型网站架构改进历程:存储的瓶颈(2)

503错误  在上篇,我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务,503还表达了网站服务端现在有问题,但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端程序出现了错误导致网站无法正常提供服务,500通常是服务端异常和错误所致,如果生产系

2015-02-04 10:11:15 417

转载 大型网站架构改进历程:存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。  大型网站定义  首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是

2015-02-04 10:08:01 538

原创 解决sql update 1292 - Truncated incorrect DOUBLE value:

在数据库批量修改字符串的值,语句如下      update jc_content_picture set img_path="/jeecms"+img_path where 1=1执行后提示如下        err  1292 - Truncated incorrect DOUBLE value: 'jeecms'解决:     在sql语句进行字符串拼接时

2015-01-30 14:15:57 16450

原创 解决java.lang.ClassNotFoundException: org.codehaus.xfire.jaxb2.JaxbWSDLBuilderFactory

使用myeclipse生成的webservice客户端,在新建的java ee的web项目中执行没有任何问题,将代码放在现有的web工程的后,出现Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/xfire/jaxb2/JaxbWSDLBuilderFactory    at org.codeha

2015-01-27 15:30:11 4792 1

原创 使用myeclipse自动生成webservice xfire的客户端

在的myclipse的web项目自动生成webservice的客户端,服务端时采用xfire暴露的webservice接口环境 myclipse10 jdk61、选中项目,右键,新建文件 --》other -->web services ,选择web service client,如图:2、继续“next”,可以看到myeclipse默认采用jdk的jax-ws去实现webserv

2015-01-27 15:07:56 2465

原创 解决XFireFault: Server did not recognize the value of HTTP Header SOAPAction: .

1、使用Xfire客户端调用webService接口时出现异常Exception in thread "main" org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Server did not

2015-01-27 14:10:35 4442

转载 JAVA多线程和并发基础面试问答

原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/  多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)

2015-01-22 16:11:29 406

转载 深入理解ThreadLocal

本文目录大纲:  一.对ThreadLocal的理解  二.深入解析ThreadLocal类  三.ThreadLocal的应用场景一.对ThreadLocal的理解  ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变

2015-01-22 16:01:56 969

原创 深入理解volatile关键字

1.volatile关键字的两层语义  一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:  1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。  2)禁止进行指令重排序。  先看一段代码,假如线程1先执行,线程2后执行:?12

2015-01-22 14:25:35 519

转载 Firebug 调试器开发中的12个技巧

Firebug 调试器开发中的12个技巧      相信很多从事Web开发工作的开发者都听说和使用过Firebug,但可能大部分人还不知道,其实它是一个在网页设计方面功能相当强大的编辑器,它可以对 HTML、DOM、CSS、HTTP和Javascript进行全面的跟踪和调试。它是Firefox浏览器的一个插件,所以建议各位Web开发者,要充 分利用FireFox浏览器和Firebug插件进

2015-01-16 09:35:29 498

java-jvm-JikesRVM

使用java实现的一款java虚拟机,可以用来学习和研究jvm内部原理

2018-05-10

空空如也

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

TA关注的人

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