- 博客(39)
- 资源 (6)
- 收藏
- 关注
原创 java 并发 ConcurrentHashMap 与 HashTable源码分析总结
一、HashTable源码结构大致与HashTable相同
2014-09-15 14:30:01
460
转载 m2eclipse issues ArtifactTransferException
1. Open folder by running this text (without Quotes) in Search Explorer of Window “%USERPROFILE%\.m2″2. After running above command, “m2″ folder of maven will open. Now search for file (without Quot
2014-04-10 18:32:59
541
转载 新浪微博构架
注: 本文是根据网上资料整理而成 1 概述首先给大家介绍一下新浪微博架构发展的历程,新浪微博在短短一年时间内从零发展到五千万用户,我们的基层架构也发展了3个大的版本。 2 架构演变2.1 第一版LAMP架构第 一版就 LAMP架构,优点是可以非常快的实现我们的系统。我们看一下技术特点,微博这个产品从
2014-03-21 11:35:14
876
转载 流式数据概念
将网关设计为,如果该网络内的第二客户机请求正向该网络内的第一客户机提供的数据流,则由网关复制该数据流,而不是再次向服务器请求相同的数据流。可以联合许多此类网关,以构成一个较大的负载均衡网络。本发明的一个重要方面是网关中的软件接口,该接口能够将数据包的地址类型从单点传送转变为多点传送或相反。执行子系统中的数据有三种类型:元组、元素和中间数据。元组是数据的基本单元。在逻辑上,元组是属性值的集合;在实
2014-03-21 10:00:51
1929
转载 大规模日志收集处理项目的技术总结
大规模日志收集处理项目的技术总结以下是2012年一个公司内部项目的技术总结,涉及到的方面比较多比较杂,拿出来和大家分享下。如果有更好的方案或者想法请联系我,谢谢~!注:文章中提到的其他系统(如哈勃Agent、EagleEye)是公司内部的其他系统,这里就不详细介绍了。简介TLog是一个分布式的,可靠的,对大量数据进行收集、分析、展现的的系统。主要应用场景是收集大量的运行
2014-03-20 16:11:39
664
转载 解决TOMCAT支持J2EE版本问题
从别处copy过来的项目,用的是tomcat 6.x。当前的运行环境是tomcat 5.5。修改了classpath下面的server和java的配置信息后,仍然无法deploy到server上。错误信息类似为:tomcat x.x does not support version 2.5 of J2EE specification.....。通过search,发现在pro
2014-03-18 10:55:40
860
转载 Eclipse中10个最有用的快捷键组合
一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。1. ctrl+shift+r:打开资源1这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml
2014-03-18 10:28:27
488
转载 PaxHeader文件夹
出现 PaxHeader 文件夹,只可能是压缩包的某些特性(extension),解压软件中不支持。具体情况参考下面的内容:http://lists.freebsd.org/pipermail/freebsd-current/2004-August/034946.html
2014-03-18 09:43:35
15641
转载 Twitter的开放实时计算系统Storm
Twitter 在 Strange Loop 大会上公布分布式实时计算系统 Storm 的源代码,可以用于各种编程语言,弥补了 Hadoop 实时性的缺失,意义重大。据了解,Storm 代码来自于 Twitter 上月收购的 BackType,后来被 Twitter 收购用于 Twitter。业内普遍认为这是 Twitter 为方便用户解析数据所作出的努力。Twitter 首席工程师 Na
2014-03-17 13:51:40
576
转载 线程安全性
一、线程安全性定义: 当多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。 无状态对象一定是线程安全的。二、原子性 1、竞态条件 当某个计算的正确性取决于多个线程的交替执行时序时,那么就会发生竞态条件。最常见的竞态条件是 “先检查后执行” 操作。本质是基于一种可能失效的观察结果来做出判断或
2014-02-28 13:22:30
446
转载 servlet生命周期和并发
对于单个servlet来说,其生命周期相当简单:请求来临时,servlet容器根据请求路径匹配对应的servlet定义,调用构造函数实例化servlet。实例化之后,再调用servlet的init()方法进行初始化;如果初始化成功,就调用servlet的service()方法处理请求。请求处理完后,servlet的destroy()方法被调用。根据API的说明,只有当servelt的ini
2014-02-28 13:03:07
618
转载 分布式缓存
一、关于memcached1、memcached 使用物理内存来作为缓冲区,为了在内存为如此之多的数据结构提供高速的查找,memcached 使用了高效的基于key的hash算法来设计数据结构。2、数据过期机制:淘汰机制:LRU过期机制:根据站点具体情况进行设置3、网络并发模型 memcached 运行在独立的服务器上,动态内容通过TCP Socket 来
2014-02-28 12:54:25
487
转载 互斥与同步(二)
一、管程1、定义:管程是由一个或多个过程、一个初始化序列和局部数据组成的软件模块,主要特点如下:局部数据变量只能被管程的过程访问。进程通过调用管程的一个过程进入管程。任何时候,只能有一个进程在管程中执行,调用管程的任何其他进程被挂起。2、函数cwait(c):调用进程的执行在条件c 上被挂起,管程现在可被另一个过程使用。——进入条件队列csignal(c):恢复在cwa
2014-02-22 07:29:50
607
转载 互斥与同步(一)
一、并发的原理1、竞争条件发生在当多个进程或者线程在读写数据时,其最终结果依赖于多个进程的指令执行顺序。2、临界资源:两个或更多的进程需要访问的不可共享的资源。3、临界区:使用临界资源的那一部分代码。4、互斥互斥产生的两个问题:死锁、饥饿(如三个进程P1、P2、P3,访问权轮流授予P1,P2,而P3无法访问资源)二、信号量1、基本原理:为了在进程之间发信号,定义一个称为
2014-02-22 05:28:12
547
转载 服务器并发策略
一、简介 从本质上讲,所有到达服务器的请求都封装在IP包中,位于网卡的接收缓冲区中,这时候Web服务器软件要做的事情就是不断地读取这些请求,然后进行处理,并将结果写到发送缓冲区,这其中包含了一系列的I/O操作和CPU计算,而设计一个并发策略的目的,就是让I/O操作和CPU计算尽量重叠进行。二、一个进程处理一个连接,非阻塞I/O1、fork模式:主进程负责accept()来自客
2014-02-21 10:49:48
653
转载 I/O模型
一、同步阻塞I/O 这里的阻塞指的是当前发起I/O操作的进程被阻塞,并不是CPU被阻塞。 同步阻塞I/O是指当进程调用某些涉及I/O操作的系统调用或库函数时,比如accept()、send(),进程便暂停下来,等待I/O操作完成后再继续运行。这是一种简单有效的I/O模型,代价是多进程的大量内存开销。二、同步非阻塞I/O 该I/O的调用不会等待数据的就绪。相
2014-02-21 09:36:43
465
转载 系统调用、内存分配和持久连接
一、系统调用简介1、进程的两种运行模式:Linux进程有用户态和内核态两种运行模式,进程可以在两种模式之间切换。这两种态的分离,动机主要在于提高系统底层安全性以及简化开发模型。减少不必要的系统调用,也是Web服务器性能优化的一个方面。2、可以使用strace来跟踪进程,获得该进程的一系列系统调用。二、内存分配Apache的多进程模型,使用了基于内存池策略的内存管理方案;Li
2014-02-21 08:05:44
623
转载 CPU并发计算
一、一些概念1、进程多执行流的一般实现便是进程。多进程的好处不仅仅在于CPU时间的轮流使用,还在于对CPU计算和I/O操作进行了很好的重叠利用。进程的创建使用fork()系统调用。2、轻量级进程采用大量进程的Web服务器在处理大量并发请求时,内存的大量消耗有时会成为性能提升的制约因素。在Linux 2.0后,提供了对轻量级线程的支持,它由一个新的系统调用clone()来创建,这
2014-02-21 07:30:36
1583
转载 吞吐率与压力测试
一、并发能力的衡量标准1、吞吐率,单位是” reqs/s “,即Web服务器单位时间处理的请求数。2、压力测试,通过模拟足够数目的并发用户数,分别持续发送一定的HTTP请求,并统计测试持续性总时间,计算出基于这种压力下的吞吐率。3、压力测试的前提条件:并发用户数、总请求数、请求资源描述。对于压力测试的每一个用户,连续发送请求实际是指在发送一个请求并接收到响应数据后再发送下一个请求。
2014-02-21 03:47:48
1353
转载 数据的网络传输
一、数据发送过程(从主机进入线路)1、应用程序首先得将需要发送到数据写入该进程的内存地址空间中;2、应用程序通过系统函数库接口(比如send函数)向内核发出系统调用,系统内核将这些数据从用户态内存区复制到由内核维护的一段称为内核缓冲区的内存地址空间;3、当数据写入内核缓冲区后,内核会通知网卡控制器来取数据,同时CPU转而处理其他进程;4、网卡缓冲区中的数据需要发送到线路中,就是将数
2014-02-21 03:20:05
571
转载 Ajax 与 Comet
一、关键词:Javascript,XML,XMLHttpRequest二、XMLHttpRequest 1、创建 var xhr = new XMLHttpRequest(); 2、方法 同步请求 Javascript 代码会等到服务器响应之后再继续执行 xhr.open("get"
2014-02-20 13:18:33
433
转载 java远程技术
一、常用的RPC模式 RPC模式使用情况RMI(远程方法调用)不考虑网络限制(如防火墙)是,访问/公开基于Java的服务Hessian 或 Burlap考虑网络限制时,通过HTTP访问/公开基于Java的服务HTTP invoker考虑网络限制时,访问/公开基于Spring的服务JAX-RPC/SOAP访问/公
2014-02-20 02:43:56
505
转载 Hadoop的序列化
1、对象的序列化:将对象编码成一个字节流,以及从字节流中重新构建对象。2、java内建的序列化机制 在Java中,只需要在类声明中加入 implements Serializable即可。具体操作如在对象流ObjectOutputStream对象上调用writeObject()等。Java序列化参见《Java Object Serialization Specification》
2014-02-19 22:28:17
508
转载 Java 范型实现原理
一、Java泛型的实现方法:类型擦除在最开始的时候已经简单介绍了一下,现在在回顾一下:泛型思想早在C++语言的模板(Templates)中就开始生根发芽,在Java语言处于还没有出现泛型的版本时,只能通过Object是所有类型的父类和类型强制转换两个特点的配合来实现类型泛化。例如在哈希表的存取中,JDK 1.5之前使用HashMap的get()方法,返回值就是一个Object对象,
2014-02-16 12:39:08
571
转载 Linux的回环接口lo
路由器上回环接口一个在路由器上创建并分配IP地址的逻辑接口(或有时被称为软件接口)。该接口是稳定的,如果配置了,其IP地址常用来作为路由选择协议如BGP和OSPF的路由回环接口是些逻辑的接口,即虚拟的软件接口,它们并不是真正的路由器接口.在ospf路由协议中配置使用回环接口是为了确保在ospf进程中总有一个激活的接口.回环接口可以用于ospf的配置和诊断.如果你不配置回环接口,路由器上的最
2014-02-15 04:03:45
2172
转载 Web 负载均衡
一、HTTP重定向 1、介绍: 当HTTP代理想Web服务器请求某个URL后,Web服务器可以通过HTTP响应头信息中的Location标记来返回一个新的URL,这意味着HTTP代理需要继续请求这个新的URL,这样便完成了自动跳转。(HTTP 302、303、307状态码)。 2、 转移均衡方案: 随机转移方案;
2014-02-14 10:19:43
505
转载 http常用状态码
301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303:对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI。307:对于POST请
2014-02-14 06:02:44
460
转载 Java集群之session共享解决方案
随着互联网的日益壮大,网站的pv和uv成线性或者指数倍的增加.单服务器单数据库早已经不能满足实际需求.比如像盛大,淘宝这样的大型网络公司,更是如此. 集群,也就是让一组计算机服务器协同工作,达解决大并发,大数据量瓶颈问题.但是在群集中,session往往是一个比饺头疼的问题.一般情况下,session不可跨服务器而存在.下面给出几种session共享的解决方案. 第一种,
2014-02-10 03:04:28
574
转载 Java线程状态转换的方法以及它们的区别
suspend() 和 resume() 方法:两个方法配套使用,suspend()使得线程进入阻塞状态,并且不会自动恢复,必须其对应的resume() 被调用,才能使得线程重新进入可执行状态。典型地,suspend() 和 resume() 被用在等待另一个线程产生的结果的情形:测试发现结果还没有产生后,让线程阻塞,另一个线程产生了结果后,调用 resume() 使其恢复。但suspend()方
2014-01-07 16:45:17
474
转载 JVM指令集理解
1.凡是带const的表示将什么数据压操作数栈。 如:iconst_2 将int型数据2压入到操作数栈 aconst_null 将null值压入栈。2.bipush和sipush 表示将单字节或者短整形的常量值压入操作数栈。3.带ldc的表示将什么类型数据从常量池中压入到操作数栈。 如:ldc_w 将int或者flat或者string类型的数据压入到操作数栈。(宽索
2013-12-27 15:14:19
527
转载 Serializable接口与Externalizable接口区别
被Serializable接口声明的类的对象的内容都将被序列化,如果现在用户希望自己指定序列化的内容,则可以让一个类实现Externalizable接口,此接口定义如下:public interface Externalizable extends Serializable { public void writeExternal(ObjectOutput out) throws I
2013-12-22 10:42:30
2197
1
modern_operating_systems_3rd_edition_tanenbaum
2011-03-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人