自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

it_man的专栏

释放你的能量

原创 延时任务队列-单机支持每秒10万延时消息高效触发(可部署多台提供更高并发)

本文方案是看了58的一位架构师的分享,但并没有实现细节。本文是对方案的深入研究及代码实现业务场景1.下单之后如果三十分钟之内或12小时没有付款就自动取消订单2.下单成功后60s之后给用户发送短信通知3.用户希望通过手机远程遥控家里的智能设备在指定的时间进行工作。这时候就可以将用户指令发送到延时队列,当指令设定的时间到了再将指令推送到只能设备。4. 七天自动收货5.一定时间后自动评价6...

2018-08-06 13:57:11 7564 3

原创 spring5.X源码构建

第一种方式,按照官方构建,地址见:https://github.com/spring-projects/spring-framework/wiki/Build-from-Source这种方式需要安装GIt和gradle(下载地址:https://gradle.org/releases/)第二种:eclipse构建源码地址:https://github.com/spring-projec

2017-11-23 15:22:28 3940 1

转载 Spring+iBatis+Atomikos实现JTA事务

Atomikos TransactionsEssentials 是一个可靠的库,可以加入到您的Java应用程序,也就是说为了使用这个产品,您必须添加一些jar文件(包括在dist和lib文件夹下)到您的应用程序或者应用程序服务器。起因: 小项目,没有用分布式,但要操作两个数据库。本以为随便用spring配置两个数据源就搞定,查询是没问题,问题是有一个数据库老是插不进数据。Google狂搜之后,大概

2017-05-17 11:10:38 1420

转载 各种排序算法的分析及java实现

排序一直以来都是让我很头疼的事,以前上《数据结构》打酱油去了,整个学期下来才勉强能写出个冒泡排序。由于下半年要准备工作了,也知道排序算法的重要性(据说是面试必问的知识点),所以又花了点时间重新研究了一下。  排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。  内排序有可以分为以下几类: 

2015-12-20 18:22:25 4744

转载 AJAX POST&跨域 解决方案 - CORS

一晃又到新年了,于是开始着手好好整理下自己的文档,顺便把一些自认为有意义的放在博客上,记录成点的点滴。         跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一。  和大多数跨域的

2015-12-20 18:19:35 2294

转载 YAML

YAML是“另一种标记语言”的外语缩写[1]  (见前方参考资料原文内容);但为了强调这种语言以数据做为中心,而不是以置标语言为重点,而用返璞词重新命名。它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料序列的编程语言。它是类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。诞生YAML参考了其他多种语言,包括:XM

2015-12-16 16:13:19 2788

转载 HTTP状态码

HTTP状态码当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。下面是常见的HTTP状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存

2015-12-09 13:50:59 10645

转载 Spring AOP 实现原理

什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到

2015-12-09 09:51:43 3614

原创 Java程序员必知的10个调试技巧

在本文中,作者将使用大家常用的的开发工具Eclipse来调试Java应用程序。但这里介绍的调试方法基本都是通用的,也适用于NetBeans IDE,我们会把重点放在运行时上面。在开始之前,推荐大家去看看Eclipse shortcuts这篇文章,它将会给你带来很多方便。在本文中使用的是Eclipse Juno版(Eclipse 4.2),在开始前给大家提3点建议!不要使用System.out.pr

2015-12-09 09:35:31 6321 1

转载 json规范

http://www.json.org/json-zh.htmlJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独

2015-12-04 15:42:20 2500

原创 非常详细GC学习笔记

一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收四、J2SE 5.0的HotSpot JVM上的GC学习 - 分代、GC类型、快速分配五、J2SE 5.0的HotSpot JVM上的GC学习 - SerialGC六、J2SE 5.

2015-09-27 13:07:18 2753 1

转载 JVM之ClassLoader

http://www.jiagou4.com/2015/08/744.html为了支持跨平台的特性,java语言采用源代码编译成中间字节码,然后又各平台的jvm解释执行的方式。字节码采用了完全与平台无关的方式进行描述,java只给出了字节码格式的规范,并没有规定字节码最终来源是什么,它可以是除了java语言外的其他语言产生,只要是满足字节码规范的,都可以在jvm中很好的运行。正因为这个特性,极大的

2015-08-26 20:53:31 2202

原创 jquery插件--ajaxfileupload.js上传文件原理分析

英文注解应该是原作者写的吧~说实话,有些if判断里的东西我也没太弄明白,但是大致思路还是OK的。jQuery.extend({ createUploadIframe: function (id, uri) {//id为当前系统时间字符串,uri是外部传入的json对象的一个参数 //create frame var frameId = 'jUploadFra

2015-02-13 21:18:44 39551 5

原创 乐观悲观有内涵概念和外延概念两类

乐观悲观有内涵概念和外延概念两类我先说内涵概念cpu是时分复用的也就是把cpu切片,一片给一个thread/process片与片之间,需要进行cpu切换切换涉及到清空寄存器,缓存数据。然后重新加载新的thread所需数据这个操作必然的会有一定代价这个一般叫状态切换,碰到需要等待的,就切换出去,到blocking队列,然后等条件具备了,在通过notify()。notifyAll()唤醒回来那么,悲观

2015-02-04 15:19:55 2827

转载 Servlet 3.0 新特性详解

Servlet 3.0 新特性概述Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声:异步处理支持:有了该特性,Servlet 线程不再需要一直阻塞,直到业务

2015-01-12 15:22:48 3339

原创 二进制安全

有很多函数都说明是二进制安全的,那么什么是二进制安全的呢?  在网上搜索了一下,有一种说法是:  【TechTarget中国原创】二进制安全功能(binary-safe function)是指在一个二进制文件上所执行的不更改文件内容的功能或者操作。这能够保证文件不会因为某些操作而遭到损坏。二进制数据是按照一串0和1的形式编码的。而绝大多数的程序会给某些特殊的比特串赋予不同的格式代码,所以当用户使用

2015-01-12 10:26:07 2610

转载 基于有限状态机的交互组件设计与实现

有限状态机(FSM)(维基百科)是设计和实现事件驱动程序内复杂行为组织原则的有力工具。早在2007年,IBM的工程师就提出在在JAVASCRIPT中使用有限状态机来实现组件的方法,原文地址如下:《JavaScript 中的有限状态机》http://www.ibm.com/developerworks/cn/web/wa-finitemach/现在结合KISSY等现代JS库和框架提供的强大的自定义事

2015-01-09 15:18:25 2764

转载 (精)前后端分离的思考与实践(二)

基于前后端分离的模版探索前言在做前后端分离时,第一个关注到的问题就是 渲染,也就是 View 这个层面的工作。在传统的开发模式中,浏览器端与服务器端是由不同的前后端两个团队开发,但是模版却又在这两者中间的模糊地带。因此模版上面总不可避免的越来越多复杂逻辑,最终难以维护。而我们选择了NodeJS,作为一个前后端的中间层。试图藉由NodeJS,来疏理 View 层面的工作。使得前后端分工更明确,让专案

2015-01-09 11:02:02 2783

转载 (精)前后端分离的思考与实践(一)

前言为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式。随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本。为了提

2015-01-09 09:31:52 2659

转载 在Linux上分析死锁问题的简单方法

死锁 (deallocks): 是指两个或两个以上的进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。 由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。一

2015-01-08 09:07:11 4306

原创 ORA-24550 Signal Received Error的解决方法

oracle RAC结构。网上的说法各种。ORA-24550 Signal Received Error From Client Based Application [ID 1284564.1]      修改时间 01-JUL-2011     类型 PROBLEM     状态 MODERATED      In this Document  Symptoms  Changes  Cause

2015-01-07 16:17:13 7705 1

原创 http报 206 Partial Content

浏览器访问http报 206 Partial Content。页面中有一个300多kb的js文件,访问时始终不能完全下载,只能下载60多kb. 然后页面再刷新一下,整个页面就可以显示,第一次就不行。单独下载那个js却没有问题。查看nginx ,结果没有日志文件没有输出,后以为是nginx 日志太大,清空,访问时,结果文件时间更新了,但里面没有内容。于是怀疑是内存或硬盘不足,一查磁盘没有空间了。于是

2015-01-07 12:36:26 16351

原创 javax.mail.MessagingException: 501 Syntax: HELO hostname

java邮件发送不出去。linux报javax.mail.MessagingException: 501 Syntax: HELO hostname结果用hostname查询主机名,为:test. 然后在/etc/hosts文件里填写: 192.168.3.6 test .问题就解决了。邮件正常发送

2015-01-07 12:35:15 5120 1

原创 Java Service Wrapper

参考文档:http://wrapper.tanukisoftware.com/doc/english/integrate-start-stop-nix.html目录Java Service Wrapper使用总结1.概述2.Java Service Wrapper目录结构{WRAPPER_HOME}3.使用WrapperSimpleApp进行集成3.1        ams-collector-v

2015-01-06 14:36:12 1524

转载 复习一下:算法复杂度

在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。算法复杂度分为时间复杂度和空间复杂度。其作用: 时间复杂度是指执行算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。(算法的复杂性体现在运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时

2015-01-04 09:19:53 1200

转载 面包房算法-时钟和分布式系统中事件的顺序

Time Clocks and the Ordering of Events in a Distributed System者:Leslie Lamport. 1978原文:http://www.stanford.edu/class/cs240/readings/lamport.pdf译者:phylips@bmy 2012-10-13译文:http://duanple.blog.163.com/b

2014-12-31 16:38:54 4666

转载 (精)软件架构设计

这是我最近做的架构设计演讲内容,公布出来让大家参考。我没有整理文字稿,只看 PPT 可能不是很容易理解。Sorry。http://mp.weixin.qq.com/s?__biz=MjM5OTAxNzc3OQ==&mid=200261412&idx=1&sn=c15b11b00640181009ea37b881e03a06#rd

2014-12-31 16:14:59 2016

原创 事件钩子

http://blog.csdn.net/magictong/article/details/4753122钩子程序http://baike.baidu.com/link?url=w2iTPMGUTZoWgiwKStrEllWOQUbDiEroztpL8Lip7gmvTpuEc1bXq1cwF8W4BkPoWWA2XjgRSQbd_hSJ0rLaV_两种类型的钩子:基本上有两种情况:切换执行上下文

2014-12-31 16:11:16 2386

原创 (精)java.sql.SQLException: No more data to read from socket

dbcp (Oracle)重新链接的问题 - Cause: java.sql.SQLException: No more data to read from socket老是出现这个No more data to read from socket问题(ibatis+spring)。该异常通常是因为使用了连接池,当从连接池取得的connection失效或者超时的时候,使用这个连接来进行数据库操作就会

2014-12-26 16:13:14 48209

原创 大端(Big Endian)与小端(Little Endian)

1. 你从哪里来?端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big End

2014-12-02 08:54:08 1345

原创 2015年修炼计划

计划:      云学习架构继续修炼dubbo源码研究Oauth2.0学习产品设计学习(看2本书,以便和产品沟通方便。)-

2014-11-19 14:14:54 1404 1

原创 (精)Spring_AOP原理及拦截器

原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。  AOP将应用系统分为两部分,核心业务逻辑(Core businessconcerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事

2014-11-18 14:37:03 3077

原创 HTML5实现刮刮卡功能

HTML5实现类似刮刮卡的功能有这样一个功能,当我们使用微信公众号,发送图片时......此处省略300字!注意要点设置:1.设置用户缩放:user-scalable=no|yes[java] view plaincopyprint?"viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-s

2014-11-17 13:14:38 2827

原创 Solr各组件之间的关系图中英文对照版

2014-09-29 10:14:18 1333 2

原创 移动App的REST API设计实践

通讯协议一些只是对服务器数据进行CRUD操作的App,通常采用HTTP协议,为了安全也可以采用HTTPS协议。IM软件可以选择使用XMPP协议。其他一些特有场景的App可能基于Socket自定义协议。SOCKET是实现传输层协议的一种编程API,可以是TCP,也可以是UDP。TCP --- 传输控制协议,提供的是面向连接、可靠的字节流服务。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能

2014-09-28 21:57:36 8550

转载 (精)多版本软件构建策略分析

主要分析存在多个版本特性时的软件构建策略。多个版本特性在有些情况下仅仅对应于软件的本地化,复杂的情况就是不同版本中模块的业务逻辑、呈现策略都不相 同。这不仅在产品开发过程中增加成本,更多的成本将在维护阶段体现出来。因此,选择一个合适的构建策略对降低开发与维护成本都是非常重要的。一、传统软件构建策略 不同的版本采用不同的代码,通过派生或直接使用不同的代码实现。每个版本都会对应到一份的这个版本相关的代

2014-09-28 21:39:46 1488

原创 微信、陌陌的架构方案分析(LBS之二)

目标解决大型应用(微信、陌陌级别)中,用户经纬度在不断更新,用户查找频繁的问题。(每分钟1000W级)方案A本方案前,请先阅读 http://www.alivenode.com/index.php/archives/300(LBS的球面距离计算以及Geohash方案探讨(LBS之一))由上文,简单可得;1、仅需每分钟将用户的经纬度,上报到数据库;2、然后每次用户查找附近好友时,通过 LIKE ‘w

2014-09-28 13:41:53 6178

原创 查找附近的xxx 球面距离以及Geohash方案探讨

随着移动终端的普及,很多应用都基于LBS功能,附近的某某(餐馆、银行、妹纸等等)。基础数据中,一般保存了目标位置的经纬度;利用用户提供的经纬度,进行对比,从而获得是否在附近。目标:查找附近的XXX,由近到远返回结果,且结果中有与目标点的距离。针对查找附近的XXX,提出两个方案,如下:一、方案A:====================================================

2014-09-28 13:33:10 3216

转载 微信架构(转)

微信——腾讯战略级产品,创造移动互联网增速记录,10个月5000万手机用户,433天之内完成用户数从零到一亿的增长过程,千万级用户同时在线,摇一摇每天次数过亿...在技术架构上,微信是如何做到的?日前,在腾讯大讲堂在中山大学校园宣讲活动上,腾讯广研助理总经理、微信技术总监周颢在两小时的演讲中揭开了微信背后的秘密。周颢,2001年毕业于华南理工大学,计算机专业硕士。2005年加入腾讯广州研发部,历任

2014-09-28 11:11:22 1888

转载 (精)数据库分库分表

数据库分库分表(sharding)系列(五) 一种支持自由规划无须数据迁移和修改路由代码的Sharding扩容方案数据库分库分表(sharding)系列(四) 多数据源的事务处理数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量数据库分库分表(sharding)系列(二) 全局主键生成策略数据库分库分表(sharding)系列(一) 拆分实施策

2014-08-15 15:22:45 1560

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