摘要: 前言在平时开发、测试过程中、甚至是生产环境中,有时会遇到OutOfMemoryError,Java堆溢出了,这表明程序有严重的问题。我们需要找造成OutOfMemoryError原因。一般有两种情况: 1、内存泄露,对象已经死了,无法通过垃圾收集器进行自动回收,通过找出泄露的代码位置和原因,才好确定 阅读全文
posted @ 2017-01-09 14:36 孟凡柱的专栏 阅读(7220) 评论(0) 推荐(0) 编辑
摘要: 先谈谈闭锁和栅栏的区别: 1.关键区别在于,所有线程必须同时到达栅栏位置,才能继续执行。 2.闭锁用于等待某一个事件的发生,举例:CountDownLatch中await方法等待计数器为零时,所有事件才可继续执行。而栅栏是等待其他线程到位,所有事件才可继续下一步。例如:几个家庭决定在某个地方集合:“ 阅读全文
posted @ 2017-01-09 14:27 孟凡柱的专栏 阅读(335) 评论(0) 推荐(0) 编辑
摘要: 将应用部署到Tomcat根目录的目的是可以通过“http://[ip]:[port]”直接访问应用,而不是使用“http://[ip]:[port]/[appName]”上下文路径进行访问。 方法一:(最简单直接的方法) 删除原 webapps/ROOT 目录下的所有文件,将应用下的所有文件和文件夹 阅读全文
posted @ 2017-01-06 14:34 孟凡柱的专栏 阅读(1723) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常用于生产者和消费者的场景,生产者是往队列里添加元素的线程,消费者是从队列里拿元素的线程。 阅读全文
posted @ 2017-01-05 16:56 孟凡柱的专栏 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 关于FastDFS集群部署请见博文 FastDFS集群部署 FastDFS是由淘宝的余庆先生所开发,是一个轻量级、高性能的开源分布式文件系统,用纯C语言开发,包括文件存储、文件同步、文件访问(上传、下载)、存取负载均衡、在线扩容、相同内容只存储一份等功能,适合有大容量存储需求的应用或系统。做分布式系 阅读全文
posted @ 2017-01-05 12:15 孟凡柱的专栏 阅读(22308) 评论(1) 推荐(3) 编辑
摘要: Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是 synchronized 的一部分。本文介绍了几种有效使用 volati 阅读全文
posted @ 2017-01-01 13:03 孟凡柱的专栏 阅读(343) 评论(0) 推荐(0) 编辑
摘要: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些 阅读全文
posted @ 2016-12-28 18:10 孟凡柱的专栏 阅读(6277) 评论(0) 推荐(0) 编辑
摘要: 转文: 一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率,才能提高整个应用程序的性能。本文将从GC的工作原理、GC的几个关键问题进行探讨,最后提出一些Java程序设计建议 阅读全文
posted @ 2016-12-28 14:09 孟凡柱的专栏 阅读(18433) 评论(0) 推荐(1) 编辑
摘要: 1优缺点 非常非常的快,有测评说比Memcached还快(当大家都是单CPU的时候),而且是无短板的快,读写都一般的快,所有API都差不多快,也没有MySQL Cluster、MongoDB那样更新同一条记录如Counter时慢下去的毛病。 丰富的数据结构,超越了一般的Key-Value数据库而被认 阅读全文
posted @ 2016-12-27 15:11 孟凡柱的专栏 阅读(7403) 评论(0) 推荐(1) 编辑
摘要: redis的崛起绝非偶然,它确实有自己的新东西在里面,它不像Memcached,只能将数据存储在内存中,它提供了持久化机制和数据同步,避免了宕机后的雪崩的问题,即服务器出现问题后,内存中保留的原始数据全部丢失,需要重新组织数据到内存,这时,Memcached会经历一个很慢的过程。 Redis支持持久 阅读全文
posted @ 2016-12-27 14:10 孟凡柱的专栏 阅读(2770) 评论(0) 推荐(0) 编辑