自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis集群

redis集群由多个节点组成组成,可以使用 cluster meet 像集群中的一个节点发起链接请求握手成功,将节点添加到集群当中。例子:集群中有3台机器A,B,CD跟C握手过程:1、当A收到D的请求会为D建一个clusterNode结构 ,并将结构加到clusterState.nodes字典里.2、A像D发送meet消息3、D收到消息,建立一个clusterNode结构

2016-01-24 14:39:48 608

原创 redis复制

redis的复制主要是通过同步(sync)和 命令传播搞定的。同步(sync):即是在从服务器想主服务器发送同步请求,主服务器接收请求,然后执行bgsave命令,在后台生成一个rdb文件,同时将后续命令写入缓冲区,当rdb文件生成,发送

2016-01-13 12:50:09 516

原创 redis过期策略

redis 存储采用dirt和expires两个字典表来存储数据。expires存储键值和时间。redis采用懒过期和定期同步的策略。懒过期:在get数据时候检查,如果过期delete掉数据定期:每次运行时,在数据库中随机进行检查,如果过期del掉.全局有一个变量current_db记录当前检查的进度,并在下一次执行时,重这个起点开始,比如检查到第5个db,下次重第6个db开始检查

2016-01-11 10:09:59 1055

原创 postgresql for linux

按下面顺序安装:yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpmyum install postgresql94-server postgresql94-contrib/usr/pgsql-9.4/bin/postgresql94-set

2015-08-19 09:40:34 509

原创 postgresql表分区

pg的表分区实际就是所说的分表,

2015-06-12 10:36:28 1346

转载 Hessian和Java反序列化问题小结

转载地址:http://hittyt.iteye.com/blog/1691772#bc2368273 Hessian反序列化问题众所周知,Hessian框架提供的序列化方式,在性能上要优于Java自己的序列化方式。他将对象序列化,生成的字节数组的数量要相对于Java自带的序列化方式要更简洁。目前公司的一个项目中,有RPC调用的需要,这里我们使用了公司自己的开源

2015-04-16 10:37:21 14637

转载 微博春晚背后的技术故事

一年一度的春晚再次落下帷幕,而微博也顺利地陪伴大家度过除夕之夜。   谈及马年春晚,人们首先想到的不是春晚上精彩的节目,而是微博上的吐槽,边看春晚,边刷微博,边吐槽,已经成了国人的习惯。看春晚不再是为了看节目,而是为了能够在微博上吐槽,知道大家在吐槽什么,更有人戏称不是春晚成就了微博,而是微博拯救了春晚。   马年春晚又格外引人注目,不仅仅是因为冯小刚亲自坐镇,担当

2014-03-17 16:30:17 595

转载 Redis 2.2.* 到 2.4.*升级方案

Redis 2.2.* 到 2.4.*升级方案博客分类: NosqlRedisRedisRedis2.4还是很有必要升级的,下面是2.4的一些新特征和改进1.对小数据量的sorted sets结构的内存使用做很大的优化2.RDB文件的持久化速度也将会大大提高3.对目前的一些写操作命令进行了改进,支持批量写入功能4.

2013-11-18 14:03:46 1080

转载 HTTP协议三次握手过程

Http协议三次握手过程  2013-05-23 17:00:28|  分类: http头|字号 订阅TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机

2013-09-22 16:09:42 99606 6

转载 HTTPS连接的前几毫秒发生了什么

首页最新文章资讯程序员设计IT技术创业在国外营销趣文特别分享更多 >- Navigation -首页最新文章资讯程序员设计IT技术创业在国外营销趣文特别分享更多 >- 工具与资源- 书籍与教程- 自由职业- 互联网- 管理- 运营- 人力资源- 职场分享伯乐在线 > 首页 > 所有文

2013-09-22 11:35:44 1822

原创 eclipse mvn update project报错误

errror:An internal error occurred during: “Updating Maven Project”. Unsupported IClasspathEntry kind=4解决方法:命令行到项目目录下执行 mvn eclipse:clean

2013-08-17 10:40:35 2250

原创 斐波序列

public static int feibo(int n){ if(n  return feibo(n-1)+feibo(n-2);      }

2013-07-12 11:56:53 609

原创 冒泡排序

EqualsMaxpublic static void main(String[] args){int[] iarray = {3,6,8,5};int temp = 0;for(int i= iarray.length - 1; i >= 1;i--){ for(int j=0; j if(iarray[j] > iarray[j+1]){temp = iarra

2013-07-12 11:51:29 513

原创 java 内存模型

java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。注意:此处的不变量包括实例字段,静态字段和构成数组对象的元素,但是不包括局部变量与方法参数,因为这些都是线程是有的,不会被共享,自然就不存在竞争的问题。java内存模型规定所有的变量都存储在主内存。每条线程还有自己的工作内存,线程的工作内存保存了该线程使用到的变量

2013-07-03 09:00:38 511

转载 Publish failed using Ant publisher Resource is out of sync

这个问题是由于Eclipse内的文件和操作系统的文件不统一所引起的。只需选中工程, F5 更新即可整个工程解决。本文来源:http://blog.csdn.net/bob007/article/details/5731797

2013-06-21 14:59:42 928

原创 mysql索引的限制

1、myisam存储引擎长度总和不能超过1000字节2、BLOB和TEXT类型的列只能创建前缀索引3、MYSQL目前不支持函数索引4、使用不等于的时间mysql无法使用索引5、过滤字段使用了函数运算后,mysql无法使用索引6、join语句中join条件字段类型不一致的时候无法使用索引7、使用like操作的时候以通配符开始无法使用索引8、使用非等值查询的时候无法使用Ha

2013-06-14 16:48:52 852

原创 如果判断是否需要创建索引

1、较频繁的作为查询条件的字段应该创建索引.2、唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件:唯一性太差的字段:如状态字段,类型字段等。这些字段即使创建了单独的索引,MySQL Query Optimizer大多数也不会选择使用,如果什么时候     选择了这种索引,可能会带来极大的性能问题。由于索引字段中每个值都含有大量的记录,那么存储引擎在根据索引访问数据的时候会带来大

2013-06-14 16:40:42 2498

原创 索引的好处与弊端

索引的优点:1、索引能够提高数据检索的效率,降低数据库的IO成本。2、索引还有一个非常重要的用途,就是降低数据的排序成本。       每个索引中的索引数据都是按照索引键值进行排序后存放的,所以,当我们的query语句中包含排序分组操作的时候,如果我们的排序字段和索引字段刚好一致,MySQL Query Optimizer就会告诉mysqld在取得数据后不用排序了。      分组

2013-06-14 14:26:02 12768

原创 安装mysql

1、rpm -qa|grep mysqlmysql-libs-5.1.47-4.el6.x86_642、yum -y remove mysql-libs-5.1.47-4.el6.x86_643、rpm -ivh mysql-server.rpm 4、客户端 rpm -ivh MySQL-client-5.6.11-2.el6.x86_64.rpm 5、my

2013-06-05 17:27:04 492

转载 Hashmap实现原理

0.参考文献:hash算法 (hashmap 实现原理)Java实现的散列表1.HashMap的数据结构  数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。那么我们能不能综合两者的特性,做出一种寻址容易,插入删除也容易的数据结构?答案是肯定的,这就是我们要提起的哈希表,哈希表有多种不同的实现方法,我接下来解释的是最常用的一种方法——

2013-04-22 14:26:58 583

原创 http浏览器解析地址过程

1、浏览器从url中解析出服务器域名  2、将域名解析转换为ip地址 3、解析端口号 4、建立一条与web服务器的tcp连接 5、想服务器发送请求报文 6、服务器发送一条http响应报文 7、关闭连接、显示文档

2013-04-21 12:23:35 1008

原创 mysql执行查询的过程

1、客户端将查询发送给mysql服务器2、服务器检查查询缓存。如果找到了,就从缓存中饭后结果,否则进行下一步。3、服务器解析,预处理和优化查询,生成执行计划4、执行引擎调用存储引擎API执行查询5、服务器将结果返回客户端。

2013-04-21 11:43:58 560

原创 分解连接

1、分解连接   分解连接的好处,  1、可以提高缓存的效率。   2、对于MyIsam表来说,每个表的一个查询可以更有效利用表锁。因为查询会锁住单个表较短的时间。   3、在应用程序端进行连接,可以把不同的表放在不同的库中。   4 、可以减少多余行的访问。在应用程序进行连接意味着对每行数据只会访问一次,而连接从本质上说是非正则化的,它会反复地访问同一行数据。基于同样的原因,

2013-04-21 11:38:45 649

原创 mysql存储引擎

myisam存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。分别是:存放表结构信息的.frm文件,表数据文件.MYD和索引数据.MYI.支持三种索引类型:1、B-Tree,所有的索引节点都按照balance tree的数据结构来存储,所有的索引数据节点都在叶节点。2、R-Tree, 主要设计用于存储空间和多维数据的字段做索引,所以目前的mysql版本来说,也仅支

2013-04-17 14:06:20 431

原创 join的实现原理与优化思路

join实现原理 mysql只有一种join算法,就是大名鼎鼎的Nested Loop JoinNested Loop Join实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件下一个表中查询数据,然后合并结果。如果还有第三个参与Join,则在通过之前连个表的join结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复。

2013-04-16 16:02:39 841

原创 mysql数据类型

更小通常更好一般来说,要试着使用能正确地存储和表示数据的最小类型。更小的数据类型通常更快,占用磁盘空间、内存、CPU缓存,需要的CPU周期更少。     但是要确保不会低估需要保存的值,在架构中的多个地方增加数据类型的范围是一件极其费时费立的工作,如果不能去顶需要的类型,就选择你认为不会超出范围的最小类型。   (如果系统不是非常繁忙或不会保存太多的数据,在或者还处于设计的早期,就可以

2013-04-14 15:08:08 719

原创 AtomicInteger

AtomicI nteger是一个持原子操作的Integer类,在没有AtomicInteger前,要实现一个按顺序获取的Id,需要加锁。incrementAndGet()此方法为先获取当前的value属性值,然后将value加1,赋值个一个局部的next变量,很明显,这两步都是线程非安全的,关键的方法是如下这行代码:if(compareAndSet(current, next)){

2013-04-08 14:18:05 685

原创 寻找性能瓶颈

通常性能平均的表象是资源消耗过多,外部处理系统的性能不足,或者资源消耗不多,但程序的响应速度却仍达不到要求。    资源主要消耗在cpu,文件io,网络io以及内存方面,机器的资源是有限的,当某资源消耗过多时,通常会造成系统响应速度慢。外部处理的性能不够主要是所调用的其他系统提供的功能或数据库操作的响应速度不够,所调用的其他系统性能不足,多数情况下也是资源消耗过多,但程序的性能不足造成的;

2013-04-07 15:49:25 641

原创 序列化/反序列化

对于java的网络通信而言,将对象转化为流然后进行网络传输是基本也最常用的方法,而要把对象转化为流及将流还原为对象,最常用的方法就是JAVA自带的序列化。采用java序列化的情况下,类必须实现Serializable接口或Extrnalizable接口。可已通过是实现Externalizable接口、编写私有的writeObject或writeReplace方法。给属性增加transient或

2013-04-07 14:36:56 519

原创 concurrenthashmap

ConcurrentHashMap是线程安全的HashMap的实现和HashMap一样,同样有initialCapacity和loadFactor属性,多了一个concurrentyLevel属性,在调用构造器的情况下,这三个属性分别为16,0.75,16。设置了以上三个属性值后,基于以下方式计算size int sshhift = 0;int ssize = 1;while(

2013-04-06 11:44:06 967

原创 CopyOnWriteArraySet

CopyOnWriteArraySet基于CopyOnWriteArrayList实现,其唯一的不同是在add时调用的是CopyOnWriteArrayList的addIfAbsent方法.adIfAbsent方法同样采用锁保护,并创建一个新的大小+1的Object数组。遍历当前Object数组,如Object数组中已有了当前元素,则直接返回,如果没有则放入Object数组的尾部,并返回。从以

2013-04-05 19:09:34 5556

原创 CopyOnWriteArrayList

随着元素的数量和线程数量增加,CopyOnWriteArrayList在增加元素和删除元素时的性能下降明显,并且性能会比ArrayList低。但在查找元素这点上随着线程的增长,性能较ArrayList会好很多。例如在元素为100、线程数量为50时,CopyOnWriteArrayList查找元素的性能大概为ArrayList的15倍,当线程增长100时,更是达到了31倍之多。在读多写少的并发场

2013-04-05 18:51:44 577

原创 双重检查加锁 之单例模式并发

public Class Singleton{  private volatile static Singleton instance;    private Singleton(){};  public static Singleton getInstance(){   if(instance==null){          synchronized (Singleton.class){

2013-04-02 15:04:35 513

原创 maven项目不显示Maven Dependencies问题

1、选择项目-------maven--------Disable Dependency Management2、选择项目----------maven---------Enable Dependency Management项目就可以显示maven Dependencies了

2013-04-01 11:00:16 2802

原创 死锁()

安全性和活跃度通常相互牵制。我们使用锁来保证线程安全,但是滥用锁可能引起锁顺序死锁(lock-ordering deadlock)死锁:当一个线程永远占用一个锁,而其他线程尝试去获得这个锁,那么他们将永远被阻塞。当线程A占有锁L时,想要获得锁M,但同时,线程B持有M,并尝试获得L,两个线程将永远等待下去。这种情况是死锁的最简单形式(或称致命拥抱,deadly embrace),发生在多

2013-03-27 18:17:22 776

原创 Eclipse国际化中文字符转换----安装 JInto插件

安装 JInto插件地址http://www.guh-software.de/jinto.html下载对应版本 将解压的包copy到eclipse相应目录下,重启eclipse即可

2013-03-01 10:37:02 809

原创 LVS软件四层负载

软件四层负载的代表作LVS(Linux Virtual Server),LVS是一个开源的软件,可以实现LINUX平台下的简单负载均衡。LVS 集群采用IP负载和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程

2013-02-27 19:56:42 589

原创 eclipse报错java compiler level does not match the version of the installed java project

java compiler level does not match the version of the installed java project解决办法:右键项目“Properties”,在弹出的“Properties”窗口左侧,单击“Project Facets”,打开“Project Facets”页面。在页面中的“Java”下拉列表中,选择相应版本就OK了

2013-02-21 13:59:42 419

原创 tomcat 不能识别maven web项目

tomcat不识别maven web项目问题解决mvn -Dwtpversion=2.0 eclipse:eclipse刷新eclipse项目 tomcat就可以发布项目了

2013-02-21 13:48:48 5337 1

原创 网络IO消耗

对于分布式Java应用而言,网络IO消耗非常值得关注,尤其要注意网卡中断是不是均衡分配到各CPU的(可通过cat/porc/interrupts查看)。对于网卡中断只分配到一个CPU的现象,google采用kernel的方法对网卡中断分配不均的问题进行修复,据其测试性能大概能提升3x左右,或是采用支持MSI-X的网卡来修复。在Linux中可以采用sar来分析网络IO的消耗状况输入 sar

2013-02-07 17:46:26 982

空空如也

空空如也

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

TA关注的人

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