- 博客(268)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 消息队列的流派之争
这篇文章的标题很难起,网上一翻全是各种MQ的性能比较,很容易让人以为我也是这么“粗俗”的人(o(╯□╰)o)。我这篇文章想要表达的是——它们根本不是一个东西,有毛的性能好比较?MQ是什么Message Queue(MQ),消息队列中间件。很多人都说:MQ通过将消息的发送和接收分离来实现应用程序的异步和解偶,这个给人的直觉是——MQ是异步的,用来解耦的,但是这个只是MQ的效果而不
2016-07-21 20:24:50 4255 1
转载 用slf4j+logback实现多功能日志解决方案 --- 转
大家都知道,slf4j是原来log4j的作者写的一个新的日志组件,意思是简单日志门面接口,可以跟其他日志组件配合使用,常用的配合是slf4j+logback,无论从功能上还是从性能上都较之log4j有了很大的提升,我想很多用户都已经尝试,并应用到项目中。对于日志记录,说实话,以前用过log4j,但没有深入研究,用其最简单的功能。有幸在项目中用到了slf4j,来解决一个稍微复杂点的日志记录需求。
2016-07-21 20:21:46 1764
转载 Java自带的性能监测工具用法简介——jstack、jconsole、jinfo、jmap、jdb、jsta、jvisualvm
JDK内置工具使用一、javah命令(C Header and Stub File Generator)二、jps命令(Java Virtual Machine Process Status Tool)三、jstack命令(Java Stack Trace)四、jstat命令(Java Virtual Machine Statistics Monitoring To
2016-07-21 19:18:35 5573
原创 git提交
代码提交代码提交一般有五个步骤:1.查看目前代码的修改状态2.查看代码修改内容3.暂存需要提交的文件4.提交已暂存的文件5.同步到服务器1. 查看目前代码的修改状态提交代码之前,首先应该检查目前所做的修改,运行git status命令a) 已暂存 (changes to be committed)
2016-07-14 13:02:14 417
原创 Redis学习手册(事务)
一、概述: 和众多其它数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。在Redis中,MULTI/EXEC/DISCARD/WATCH这四个命令是我们实现事务的基石。相信对有关系型数据库开发经验的开发者而言这一概念并不陌生,即便如此,我们还是会简要的列出Redis中事务的实现特征: 1). 在事务中的所有命令都将会被串行化的顺序执行,事务执行期间,R
2016-07-14 10:58:40 431
转载 keepalived
http://blog.csdn.net/kkdelta/article/details/39433137通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。下面来以keepalived结合tomcat来实现一个web服务器的双机热备。keepalived的工作原理是V
2015-09-06 12:01:43 693
转载 git 合并
http://gitbook.liuhui998.com/3_3.htmlhttp://gitbook.liuhui998.com/5_3.htmlhttp://blog.csdn.net/hudashi/article/details/7668798一、如何分支的合并在git中,可以使用git merge 和git rebase两个命令来进行分支的合并。git mer
2015-08-26 16:11:38 477
转载 Git Rebase教程: 用Git Rebase让时光倒流
http://os.51cto.com/art/201410/456046.htm你的功能分支已经超前master有6个提交了。你是一个优秀的开发人员并做了有意义的语义提交。但有一件事情:你开始慢慢意识到,这个疯狂的东西仍需要更多的时间才能真的做好准备被合并回主分支。m1-m2-m3-m4 (master) \ f1-f2-f3-f4-f5-f6(feature)
2015-08-26 10:11:34 586
转载 端口
有时候关闭软件后,后台进程死掉,导致端口被占用。下面以JBoss端口8083被占用为例,列出详细解决过程。解决方法:1.查找被占用的端口 netstat -tln netstat -tln | grep 8083 netstat -tln 查看端口使用情况,而netstat -tln | grep 8083 则是只查看端口8083的使用情况
2015-08-20 18:00:40 420
转载 python 单步调式
http://www.cnblogs.com/chencheng/archive/2013/07/07/3161778.html在交互环境中通常使用pdb.run来调试:import pdb def pdb_test(arg): fori in range(arg): print(i) ret
2015-08-19 21:50:47 857
转载 git rebase 更改历史树
http://www.cnblogs.com/dabaopku/archive/2012/06/24/2559652.htmlhttp://github.danmarner.com/section/ch6-4/重写历史很多时候,在 Git 上工作的时候,你也许会由于某种原因想要修订你的提交历史。Git 的一个卓越之处就是它允许你在最后可能的时刻再作决定。你可以在你即将提交暂存区时决
2015-08-19 21:49:59 735
转载 Linux服务器网络开发模型
http://blog.csdn.net/ibmfahsion/article/details/7833974为什么Nginx的性能要比Apache高得多?这主要是因为Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(FreeBSD)网络I/O模型,而Apache则使用的是传统的select模型。曾在一篇博客上看到有这么个实例:假设你在大学中读书,要等待一个
2015-08-11 20:58:31 364
转载 nginx启动,重启,关闭命令;以及升级nginx切换命令
nginx启动,重启,关闭命令停止操作停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的步骤1:查询nginx主进程号ps -ef | grep nginx在进程列表里 面找master进程,它的编号就是主进程号了。步骤2:发送信号从容停止Nginx:kill -QUIT 主进程号快速停止Ngi
2015-08-11 20:30:13 695
转载 nginx学习教程初级篇
http://blog.csdn.net/ibmfahsion/article/details/14145703一、介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.二、Location语法语法:location [=|~|~*|^~] /
2015-08-11 20:15:42 682
转载 字符串匹配的KMP算法
字符串匹配的KMP算法http://kb.cnblogs.com/page/176818/作者: 阮一峰 发布时间: 2013-08-28 17:12 阅读: 46337 次 推荐: 112 原文链接 [收藏] 字符串匹配是计算机的基本任务之一。 举例来说,有一个字符串"BBC ABCDAB ABCDABCDABDE",我想知道,里面是否包含
2015-08-10 10:19:08 331
转载 浅析Java中的反射机制原理
http://blog.csdn.net/xiaoxian8023/article/details/9154227 反射反射,程序员的快乐! Java中反射机制使用的还是比较广泛的,系统的灵活性、可扩展性大都都是通过反射等方式来加载外部插件,使得系统与插件解耦的同时,增加了功能。但是很多人都只是会用,却是不知道它的实现机制,今天就由我来带大家揭开反射机制的神秘面纱。
2015-08-09 16:34:47 474
原创 正向代理 反向代理 CDN
正向代理 代理请求反向代理 代理服务正向代理 用户发请求, 服务器网关 和用户之间的服务器是 正向代理服务器,有用户的内容时直接返回给用户,没有时 代理用户请求 传到服务器网关。反向代理位于服务器网关内,请求经正向代理服务器发送过来后,反向代理服务器根据请求,去访问真正的服务器(后面是服务器集群),并把改服务发送给用户。cdn用户发
2015-08-05 16:05:06 2151
转载 CDN
1.用户向浏览器输入www.web.com这个域名,浏览器第一次发现本地没有dns缓存,则向网站的DNS服务器请求;2.网站的DNS域名解析器设置了CNAME,指向了www.web.51cdn.com,请求指向了CDN网络中的智能DNS负载均衡系统;3.智能DNS负载均衡系统解析域名,把对用户响应速度最快的IP节点返回给用户;4.用户向该IP节点(CDN服务器)发出请求;5.由于是
2015-08-05 15:52:32 542
转载 ContextClassLoader
ContextClassLoader为线程上下文加载器,正常的双亲委派模型中,下层的类加载器可以使用上层父加载器加载的对象,但是上层父类的加载器不可以使用子类加载的对象。而有些时候程序的确需要上层调用下层,这时候就需要线程上下文加载器来处理。一般情况下.保证同一个类中所关联的其他类都是由当前类的类加载器所加载的。线程类加载器是为了抛弃双亲委派加载链模式。类加载器与
2015-08-04 20:39:33 559
转载 String、StringBuffer与StringBuilder之间区别
http://www.open-open.com/lib/view/open1322537017406.html 1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String 的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量
2015-08-04 19:46:22 359
转载 Java并发编程:深入剖析ThreadLocal
http://www.cnblogs.com/dolphin0520/p/3920407.html想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal的使用方法和实现原理。首先,本文先谈一下对ThreadLocal的理解,然后根据ThreadLocal类的源码分析了其实现原理和使用需要注意的地方,最后给出了两个应用场景。 以下是本文目录大纲:
2015-08-04 17:32:15 302
转载 Amdahl定律
有些问题使用越多的资源就能越快地解决——越多的工人参与收割庄稼,那么就能越快地完成收获。另一些任务根本就是串行化的——增加更多的工人根本不可能提高收割速度。如果我们使用线程的重要原因之一是为了支配多处理器的能力,我们必须保证问题被恰当地进行了并行化的分解,并且我们的程序有效地使用了这种并行的潜能。大多数并发程序都与农耕有着很多相似之处,由一系列并行和串行化的片断组成。Amdahl定律描述了
2015-08-04 16:05:04 666
转载 final....
final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finall
2015-08-04 11:19:57 411
转载 对象的强、软、弱和虚引用
http://blog.csdn.net/coding_or_coded/article/details/6603549今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混。后来在网上查资料,感觉收获颇多,现记录如下。 对象的强、软、弱和虚引用在JD
2015-08-04 11:04:15 304
转载 Java并发编程:volatile关键字解析
http://www.cnblogs.com/dolphin0520/p/3920373.htmlJava并发编程:volatile关键字解析 volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile关键字
2015-08-03 21:26:09 411
转载 Thread interrupt
http://hapinwater.iteye.com/blog/310558interruptedpublic static boolean interrupted()测试当前线程是否已经中断。线程的中断状态 由该方法清除。换句话说,如果连续两次调用该方法,则第二次调用将返回 false(在第一次调用已清除了其中断状态之后,且第二次调用检验完中断状态前,当前线程再次中断的情况除外
2015-08-03 19:40:50 455
转载 lock synchronized 区别
http://blog.csdn.net/natian306/article/details/18504111添加了类似锁投票、定时锁等候和可中断锁等候的一些特性。此外,它还提供了在激烈争用情况下更佳的性能一、synchronized和lock的用法区别 synchronized:在需要同步的对象中加入此控制,synchronized可以加在方法上,也可以加在特定代码块中,括号
2015-08-02 21:15:22 494
转载 乐观锁 悲观锁
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改
2015-08-02 20:27:08 285
转载 公平锁 轻量锁
非公平锁的获取流程,允许插队,直接尝试CAS操作,尝试失败时才执行入队。竞争激烈的环境中,非公平锁直接尝试锁定操作可以提高系统吞吐量。如果当前线程请求锁时,正好锁刚刚被释放,其他等待线程还没有被唤醒,在这过程中该线程完成了相关操作并释放锁,此时其他线程刚好被唤醒。利用线程唤醒的延时,其他线程能够完成操作,且不影响该阻塞线程唤醒后获取锁。 非公平锁在请求获取锁时,直接尝试CAS操
2015-08-01 19:59:40 731
转载 线程 进程 同步 通信
线程与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销
2015-08-01 18:39:08 546
转载 epoll +++
http://www.cnblogs.com/Anker/p/3265058.htmlselect,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读
2015-08-01 17:25:44 340
转载 内存映射
引用apue的说法:存储映射I/O(Memory-mapped I/O)使一个磁盘文件与存储空间的一个缓冲区相映射。于是当从缓冲区取数据,就相当于读文件中的相应字节。与此类似,将数据存入缓冲区,则相应文件就自动写入文件。这样就可以不使用read和write的情况下执行I/Ommap叫内存映射,就是让用户层程序可以访问一些设备的资源,以前是不允许访问的。文件映射只是其中的一特例,让应用层
2015-08-01 17:20:16 315
转载 epoll
http://blog.chinaunix.net/uid-24517549-id-4051156.html什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.4
2015-08-01 16:48:49 273
转载 ps aux
http://blog.csdn.net/anxuegang/article/details/7006147运行 ps aux 的到如下信息: ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDsmmsp 3521 0.0 0.7 6556 1616 ?
2015-07-30 13:39:09 396
转载 Java回顾之序列化
在这篇文章里,我们关注对象序列化。 首先,我们来讨论一下什么是序列化以及序列化的原理;然后给出一个简单的示例来演示序列化和反序列化;有时有些信息是不应该被序列化的,我们应该如何控制;我们如何去自定义序列化内容;最后我们讨论一下在继承结构的场景中,序列化需要注意哪些内容。 序列化概述 序列化,简单来讲,就是以“流”的方式来保存对象,至于保存的目标地址,可以是文件,可以是数据库,也可
2015-07-29 21:17:18 282
转载 Java 序列化的高级认识
https://www.ibm.com/developerworks/cn/java/j-lo-serial/引言将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java 系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用 ObjectInputStream 和 ObjectOutputStr
2015-07-29 21:05:16 302
转载 java error
LinkageError是一个比较棘手的异常,准确的说它是一个Error而不是Exception。java api对它没有直接的解释,而是介绍了它的子类: Subclasses of LinkageError indicate that a class has some dependency on another class; however, the latter class has
2015-07-28 21:41:39 522
转载 Runtime Exception vs Exception
在java的异常类体系中,Error和RuntimeException是非检查型异常,其他的都是检查型异常。所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类 不可以在不声明的情况下抛出非RuntimeException简单的说,非RuntimeException要自己写catch块处理掉。或者throwExcep
2015-07-28 21:34:46 431
转载 linux scopy
经常需要从一台服务器复制一些文件到另一台服务器,则需要用到远程复制 命令:scp如:从已登录的服务器1 (192.168.1.1)复制目录/usr/a 到服务器2 (192.168.1.2)的/usr目录 下,命令如下:scp -r /usr/a root@192.168.1.2:/usr/回车之后等待片刻,提示输入服务器2的密码 ,输入正确密码之后,开始复制目录a
2015-07-28 20:19:53 6684
转载 HashMap,LinkedHashMap,TreeMap的区别
http://blog.csdn.net/fg2006/article/details/6411200Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为
2015-07-27 22:12:53 339
express connect-timeout 中间件 超时
2015-07-31
TA创建的收藏夹 TA关注的收藏夹
TA关注的人