自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Linux 网络通信

客户端TCP状态迁移:CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED服务器TCP状态迁移:CLOSED->LISTEN->SYN_RECV ->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED各个状态的意义如下:LISTEN - 侦听来自远方...

2014-08-28 09:12:53 136

原创 java NIO 中 flip rewind clear的区别

对缓冲区的读写操作首先要知道缓冲区的下限、上限和当前位置。下面这些变量的值对Buffer类中的某些操作有着至关重要的作用:limit:所有对Buffer读写操作都会以limit变量的值作为上限。position:代表对缓冲区进行读写时,当前游标的位置。capacity:代表缓冲区的最大容量(一般新建一个缓冲区的时候,limit的值和capacity的值默认是相等的)。flip、re...

2014-08-16 17:48:01 157

原创 kestrel 源码分析之四 Journal消息持久化类

上文我们看到PersistentQueue类的实现,它就代表每个消息队列在服务其中的实现,另外我们会看到每个PersistentQueue类包含一个Journal对象,该对象主要是负责队列的持久化操作。对于文件的读写我们用Java NIO来实现。下面我们来看一看主要的几个方法[code="java"]def fillReadBehind(gotItem: QItem => Unit)(go...

2014-07-06 00:19:39 259

原创 kestrel 源码分析之三 PersistentQueue对应一个内存中的队列

PersistentQueue类主要用于在内存中维护一个队列,该类是Kestrel的核心类,是真正对于一个队列的维护。我们看到上文中QueueCollection中主要是调用下面的setup方法,下面我们看看setup方法到底做了什么[code="java"]def setup() { synchronized { queueSize = 0 repl...

2014-07-05 23:14:07 213

原创 kestrel 源码分析之二 QueueCollection消息队列管理

前一篇已经对Kestrel的启动类进行了说明,我们看到在启动类中定义了一个QueueCollection,这个类主要用在内存中维护用户定义的队列。[code="java"]def loadQueues() { Journal.getQueueNamesFromFolder(path) map { queue(_) } }def queue(name: String)...

2014-07-05 23:12:27 157

原创 kestrel 源码分析之一 综述

Kestrel 是Twitter内部使用的,用scala语言实现的一个消息队列中间件。而且核心代码只用了两千多行,能够支持事务,并且支持消息的持久化,Kestrel底层的通信是通过netty实现的,支持memcached协议。下面我们来分析一下kestrel的几个核心实现类,并讨论一下它是如何支持事务和消息的持久化。而Kestrel的消息的持久化是通过Java NIO实现。下面是Kestr...

2014-07-05 17:22:06 429

原创 maven pom之增与减的平衡

重构是广大开发者再熟悉不过的技术,在Martin Fowler的《重构——改善既有代码的设计》一书中,其定义为“重构(名词):对软件内部结构的一种调整,目的是在不改变软件之可察行为前提下,提高其可理解性,降低其修改成本.”以及“重构(动词):使用一系列重构准则(手法),在不改变软件之可察行为前提下,调整其结构.”。重构能够改善软件设计,使代码更易读,更容易找出bug,并帮助你更快速地编码。较之于一...

2013-07-16 11:59:40 102

原创 maven生成可执行jar包

1.修改pom.xml增加如下内容 org.apache.maven.plugins maven-jar-plugin 2.4 true lib/ com.syswar...

2013-07-15 22:57:33 383

原创 Maven构建时出现miss Tools.jar的解决方法

Java代码Missing: ---------- 1) com.sun:tools:jar:1.5.0 Try downloading the file manually from the project website. Missing:----------1) com.sun:tools:jar:1.5.0 Try downloading the...

2013-06-03 10:24:16 308

原创 java 中map 与线程安全问题

java5的java.util包提供了大量集合类。其中最常用的集合类有List、Set、Map等。这篇文章主要介绍其中的Map。首先,来看下java.util包中Map相关的集合类的类图(见附件中图1)。接口Map是整个类图的跟,Map往下又提供了两个接口:ConcurrentMap和SortedMap。ConcurrentMap是java5中新增的线程安全的Map接口;而SortedMap则...

2013-05-22 17:33:05 387

ibatis中selectKey的用法与源码

最近用到插入oracle数据库时,主键id是sequnce自动生成,具体写法如下对于oracle: select SEQ_USER_ID.nextval as id from dual insert into user (id,name,passw...

2012-12-04 21:17:54 444

maven多项目pom文件

在一个企业级多项目的maven项目中,顶层的pom中会同时含有dependencyManagement和dependencies项,它们之间的区别是什么??顶层 pom 中的 dependencies 与 dependencyManagement 中的 dependencies 元素有一个重要的区别: dependencyManagement 中的 dependencies 元素只...

2012-05-29 22:17:53 709

原创 如何查看线上日志

一般来说,linux服务器大多是通过ssh客户端来进行远程的登陆和管理的,使用ssh登陆linux主机以后,如何能够快速的和本地机器进行文件的交互呢,也就是上传和下载文件到服务器和本地; 与ssh有关的两个命令可以提供很方便的操作: sz:将选定的文件发送(send)到本地机器 rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器(receive)...

2012-05-24 11:01:37 228

原创 基于maven插件的配置管理

[size=medium][/size]对于java程序员来说各种各样的配置文件是司空见惯的,比如spring的bean配置,struts的action配置等等。有些配置会随着运行环境的变化而各不相同,最典型的就是jdbc驱动的配置,在开发环境可能链接到开发本地的数据库,测试环境则有一套测试专用的数据库环境,线上的生产环境也会有一套数据库,如果一个应用要部署到多个idc中,那这些配置又有可能各不相...

2012-05-23 22:33:43 228

原创 maven仓库配置

[size=medium]什么是Maven仓库在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文件,如log4j.jar,junit.jar等等。每建立一个项目,你都需要建立这样的一个/lib目录,然后复制一对jar文件,这是很明显的重复。重复永远是噩梦的起点,多个项目不共用相同的jar文件,不仅会造成磁盘...

2012-05-23 22:30:03 94

原创 关于truncate和delete的区别

truncate 是DDL,用于清空表中的数据,因为是DDL语言所以不能够回滚,并且不触发trigger。具体使用方式:TRUNCATE TABLE emp;delete 是DML,用于where条件的清空数据,当没有where时清空所有数据。因为是DML语言所以可以回滚,并且在执行过程中触发trigger。具体使用方式为:DELETE FROM emp WHERE job = 'CL...

2012-05-23 14:35:11 122

原创 索引失败原因

where 条件的区分度太小导致索引失败 原因:基于cost成本分析(oracle因为走全表成本会更小):查询小表,或者返回值大概在10%以上失效原因: 索引失效 1) 没有查询条件,或者查询条件没有建立索引 2) 在查询条件上没有使用引导列 3) 查询的数量是大表的大部分,应该是30%以上。 4) 索引本身失效 5) 查询条件使用函数在索引列上(见12...

2012-05-23 14:27:14 617

空空如也

空空如也

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

TA关注的人

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