07 2013 档案
摘要:前言:代码简洁与性能高效无法两全其美,本文章专注于并发程序的性能,如果您追求代码简洁,本文章可能不太适合,本文章属于Java Concurrency in Practice读书笔记。在java5中,新增加ReentrantLock提供了一种比synchronized更为灵活的锁机制。为啥说灵活,而不是说性能更高呢?ReentrantLock提供的锁功能跟synchronized的功能基本是一致的,就是一翻版的synchronized类。但是它支持可轮询,定时及可中断的机制,所以说它是更灵活的。为啥没说他性能更高呢?因为这个在java6及以上,性能跟synchronized的基本持平。所以说,如
阅读全文
摘要:一、5年工作生活经历08年毕业于一个普通的院校。还没有毕业,就已经来北京实习,实习结束后顺利转正。毕业时,朋友给我介绍一媳妇,瞬间感觉无比幸福。当时每月3k,住学生公寓,每月才200,一个月下来还能剩1.5k,当时还觉得日子过得很不错。剩下来,跟媳妇订婚,订日子,过了一年,顺利结婚。媳妇工作双丰收,当时可真美了一阵子。后来,公司老不给涨工资,跳槽了,到了第二家公司。说到第一次跳槽,过程很曲折。总结教训就是,不收到人力最后的offer,千万不要认为offer到手了,某些技术负责人虽然很欣赏你,但是人力有时也会卡你。在第二家公司正好赶上一个大项目,大干了3年多,工资在这期间也翻了一倍。3年时间,努
阅读全文
摘要:在常规数据库中,我们都知道有一个sql就是group,分组。如果主表只有对应的一个列记录的分组的ID,那么还好统计,比如说每本书book表,有一个分类catId,记录是属于哪一类的书,那么直接按照catId进行分组即可。可是在实际应用种,并非如此简单。一本书往往属于多个分类,比如:某本书既属于科技类
阅读全文
摘要:学习Mongodb已经有半年多了,为啥学习它,工作需要啊。好了,废话不说,总结在实际项目应用中的几点问题。学习总结首先,mongodb基本上既照顾到了sql某些语法,又有nosql的许多优点。入门简单,上手快,所以很多人开始探索nosql及云计算时,基本上都是从mongodb开始。但有几点需要注意:1、mongodb不支持事务,所以,在你的项目中应用时,要注意这点。无论什么设计,都不要要求mongodb保证数据的完整性。但是mongodb提供了许多原子操作,比如文档的保存,修改,删除等,都是原子操作。所谓原子操作就是要么这个文档保存到Mongodb,要么没有保存到Mongodb,不会出现查询到
阅读全文
摘要:搜索引擎我也不是很熟悉,但是数据库还是比较了解。可以把搜索理解为数据库的like功能的替代品。因为like有以下几点不足: 第一、like的效率不行,在使用like时,一般都用不到索引,除非使用前缀匹配,才能用得上索引。但普通的需求并非前缀匹配。 第二、like的不能做到完全的模糊匹配。比如like
阅读全文
摘要:熟悉ES中的几个关键概念: 节点(Node):一个elasticsearch运行的实例,其实就是一个java进程。一般情况下,一台机器运行在一台机器上。 集群(Cluster): 好几个有相同集群名称的节点(Node)。 索引(Index):有点象数据库。 类型(Type):可以看做是数据库中的标
阅读全文
摘要:1、什么是内存映射文件(memory mapped files)?内存映射文件是操作系统通过调用函数mmap()创建的一个放在内存中的一个数据文件。这种文件可以当做一个从零开始的内存或者数组,你可以将内容放在任意位置。内存映射文件是mongodb存储引擎中的一个很重要组成部分。通过使用这种文件,mongodb可以将数据文件当内存一样任意分配和使用。同时又可以以一种极其简单的访问方式和极快的速度访问和操作数据。2、内存映射文件的原理是什么?内存映射文件会将一个文件映射到内存,使mongodb以访问内存的方式访问文件(无需经过操作系统的缓存,性能高)。3、Mongodb是如何使用内存映射文件的?m
阅读全文
摘要:spring,真是一个好东西;性能,真是个让人头疼又不得不面对的问题。如何排查出项目中性能瓶颈?如何迅速定位系统的慢查询?在这我就不说spring自带的性能监控器了,实在是有些简陋。下面就说说我自己写的这个性能监控器。先看看效果:2013-07-07 19:19:50,440 WARN [main] [aop.PerformanceInterceptor] |-144 ms; [HelloService.hellpAop] |+---10 ms; [AnotherService.childMehhod] |+---21 ms; [AnotherService.childMehhod3...
阅读全文
摘要:Mongodb FAQ(基础篇),是官方文档的翻译。如有翻译不到之处,还请谅解。1、Mongdb是什么数据库?mongodb是一个面向文档(document)的数据库,既不支持表连接,也不支持事务。主从复制,故障自动转移,内建的水平扩展是mongodb的几个主要特性。同时还支持二级索引,表达式查询语言,基于文档的原子写操作,一致性读取。2、Mongdb有表吗?mongodb的collections和RMDB的table的两个重要区别。一是你可以只向一些document添加某一列的属性,而不用将collection里面的所有document都增加列属性。二是Documents in a sing
阅读全文
摘要:前言:代码简洁与性能高效无法两全其美,本系列文章专注于并发编程,提高性能,本文章是在读 Java Concurrency In Practice时自己总结的一些体会。有理解不正确的地方,还请指出。请回答以下几个问题:问题一、你的项目是否运行在多核CPU甚至多CPU的服务器上?问题二、你的项目中,是否使用到了线程池?问题三、你的项目是否使用到了集群或者用到了分布式框架?问题一不用想,任何人都会回答是,那么恭喜你,你离并发编程仅有1米的距离了,已经有必要看看并发编程了。如果你符合以上三个问题的所有条件,那么恭喜你,你离并发编程只有0.1毫米了,你应该好好学习并发编程了,并发已经深深渗人你的项目中,
阅读全文
摘要:前言:代码简洁与性能高效无法两全其美,本文章专注于大并发程序的性能,如果您追求代码简洁,本文章可能不太适合,因为本文章主要讨论如何写出在高并发下也能运行很好的代码。并文章属于Java并发编程实战中例子。但结合实际场景进行了阐述。通常,我们如果写一个单实例模式的对象,一般会这样写:写法一:public class Singleton { private static final Singleton instance = new Singleton(); /** * 防止其他人new对象 */ private Singleton(){ ...
阅读全文