- 博客(157)
- 资源 (13)
- 收藏
- 关注
原创 四、基于HTTPS协议的12306抢票软件设计与实现--水平DNS并发查询分享
因为12306是全球都可以访问的网站,需要提供高并发等功能,因此在各地都提供了多个服务器,通过DNS解析,不同地区的用户访问距离本地最近的服务器来进行解析,通过这样12306来分解各地的高并发请求。但这样的话就造成了另外一个问题,就是不同地区的用户在同一抢票时间抢相同的火车票,但看到的页面数据会有差别,有的可以看到剩余车票,而有的看不到,这是因为他们访问的不是同一个12306服务器,不同的缓存导致的。
2014-12-16 17:41:25 7352 10
原创 大数据时代之hadoop(六):hadoop 生态圈(pig,hive,hbase,ZooKeeper,Sqoop)
hadoop是有apache基金会所开发的分布式系统基础架构,其主要提供了两方面的功能:分布式存储和分布式计算。其中分布式存储是分布式计算的基础,在hadoop的实现里面,提供了分布式存储的接口,并自己实现了一个分布式存储的实现即HDFS,但并不代表hadoop只支持HDFS这一中实现,其同时支持别的存储系统,并在别的存储系统上运行分布式计算程序(mapreduce)。 从开发角度来说,h
2014-11-11 08:40:39 13882 2
原创 大数据时代之hadoop(五):hadoop 分布式计算框架(MapReduce)
hadoop的核心分为两块,一是分布式存储系统-hdfs,这个我已经在上一章节大致讲了一下,另一个就是hadoop的计算框架-mapreduce。mapreduce其实就是一个移动式的基于key-value形式的分布式计算框架。其计算分为两个阶段,map阶段和reduce阶段,都是对数据的处理,由于其入门非常简单,但是若想理解其中各个环节及实现细节还是有一定程度的困难,因此我计划在本文中只是挑几个
2014-11-03 10:33:58 11107 1
原创 大数据时代之hadoop(四):hadoop 分布式文件系统(HDFS)
分布式文件系统即是网络中多台计算机组合在一起提供一个统一存储及管理的系统。Hadoop提供了一个文件系统接口和多个分布式文件系统实现,其中比较重要的就是HDFS(Hadoop Distributed Filesystem)了。Hadoop是一个综合性的文件系统抽象,因此它也可以集成其他文件系统的实现,如本地文件系统和Amazon S3系统及淘宝 TFS等。概念模型
2014-10-20 09:46:14 8077 1
原创 大数据时代之hadoop(三):hadoop数据流(生命周期)
了解hadoop,首先就需要先了解hadoop的数据流,就像了解servlet的生命周期似的。hadoop是一个分布式存储(hdfs)和分布式计算框架(mapreduce),但是hadoop也有一个很重要的特性:hadoop会将mapreduce计算移动到存储有部分数据的各台机器上。
2014-10-15 09:38:20 7717
原创 大数据时代之hadoop(二):hadoop脚本解析
“兵马未动,粮草先行”,要想深入的了解hadoop,我觉得启动或停止hadoop的脚本是必须要先了解的。说到底,hadoop就是一个分布式存储和计算框架,但是这个分布式环境是如何启动,管理的呢,我就带着大家先从脚本入手吧。说实话,hadoop的启动脚本写的真好,里面考虑的地方非常周全(比如说路径中有空格,软连接等)。 hadoop的脚本分布在$HADOOP_HOME下面的bin目录下和conf
2014-10-14 09:35:14 8849 5
原创 大数据时代之hadoop(一):hadoop安装
Hadoop的运行模式有以下三种: 独立模式(standalone或local mode):无需任何守护进程(daemon),所有程序都在单个JVM上执行。主要用在开发阶段。默认属性就是为本模式所设,所以不需要额外的配置。 伪分布式模式(pseudo-distributed model):Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。 全分布模式(full distributed model):Hadoop守护进程运
2014-10-13 09:37:26 5671 2
原创 全文索引-lucene,solr,nutch,hadoop之nutch与hadoop
在去年的时候,就想把lucene,solr,nutch和hadoop这几个东东给详细的介绍下,但由于时间的关系,我还是只写了两篇文章,分别介绍了一下lucene和solr,后来就没有在写了,但我心里还是期待的,虽然到现在我没有真正搞过nutch和hadoop实战项目,但公司马上就要做hadoop大数据的监控了,我一直都说,要做一个有准备的人,因此我从去年到现在从未停止过对hadoop相关技术的学习、思考、实战。
2014-10-11 09:06:28 4516 6
原创 NIO框架之MINA源码解析(五):NIO超级陷阱和使用同步IO与MINA通信
1、NIO超级陷阱之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪。当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题
2014-09-15 07:56:07 5527 1
原创 NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码
1、粘包与段包指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收
2014-09-11 08:27:56 7730 7
原创 NIO框架之MINA源码解析(三):底层通信与责任链模式应用
本文主要介绍下在mina中责任链模式的应用以及mina对于数据读写的处理。在mina中,对数据的读操作是在processor类里面触发的,收到新消息后就触发读数据链去处理新消息直到自己的业务逻辑代码(IoHandler)。在mina中,数据的写(write)和发(send)差别相对较大,mina中的写消息最终的结果只是把要写的消息经过写数据链处理后的最终结果放在了一个缓存中,并把当前session
2014-09-10 08:11:06 5648 2
原创 NIO框架之MINA源码解析(二):mina核心引擎
MINA的底层还是利用了jdk提供了nio功能,mina只是对nio进行封装,包括MINA用的线程池都是jdk直接提供的。MINA的server端主要有accept、processor、session三部分组成的。其中accept主要负责在指定的端口监听,若有新连接则建立一个新的session;processor则负责处理session对应的发送数据和接收数据并调用上层处理;session则缓存当
2014-09-03 08:42:13 7389 1
原创 NIO框架之MINA源码解析(一):背景
“你们的agent占了好多系统的端口,把我们的很多业务系统都给整死了,给我们造成了很大的损失,要求你们的相关领导下周过来道歉”--来自我们的一个客户。 怎么可能呢,我们都不相信,我们的agent只占一个端口啊!事实胜过雄辩,经过查证,确实是由于我们的agent占了好多系统的端口,我看了一下日志,基本把系统可用的端口占完了!为什么呢?MINA框架私自开的!由于我们的agent端使用了NIO通信框
2014-09-01 08:24:22 7246 2
原创 虚拟化(六):vmware 桌面虚拟化 horizon view 介绍
vmware桌面虚拟化产品包括3种,即vmware horizon view、horizon mirage、horizon workspace。vmware view客户端通过使用微软的RDP协议或vmware 专有的PCoIP协议,连接到虚拟桌面,并且可以使用本地的USB设备、本地存储。vmware view产品有“客户端设备”、view connection server、
2014-08-13 09:12:02 27181 3
原创 虚拟化(四):vsphere高可用功能前提-共享存储搭建
vsphere高级功能HA、DRS、FT等,都需要有共享存储环境,即多台esxi主机同时连接一个共享存储,这样在新建虚拟机时,可以指定把虚拟磁盘保存在共享存储上,便于虚拟机在各个主机之间“飘移”。 常见的存储有DAS/NAS/SAN/iSCSI/FC等。由于独立存储价格相对昂贵,因此,在这里我将使用微软提供的iscsi software target在window
2014-08-11 08:29:15 20837
原创 虚拟化(三):vsphere套件的安装注意及使用
vsphere套件里面主要的组件有esxi、vcenter server 、vsphere client和vsphere web client。vcenter做为vsphere套件的核心管理成员之一,负责esxi主机的管理,在整个vsphere中起着重要的角色。我这里用的环境是:两台esxi主机(安装esxi5.1.0),一个ad包括dns(win server 2008,域:ba
2014-08-07 08:42:48 7611
原创 虚拟化(一):虚拟化及vmware产品介绍
由于公司最近在做虚拟化监控,因此就需要把虚拟化方面的知识给学习总结一下,对于虚拟化的概念,摘自百度百科,如下: 虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。1、虚拟化分类 现在主流的虚拟
2014-07-18 09:56:29 15808
原创 大型网站技术架构(八)--网站的安全架构
大型网站技术架构(一)--大型网站架构演化大型网站技术架构(二)--架构模式大型网站技术架构(三)--架构核心要素大型网站技术架构(四)--网站的高性能架构大型网站技术架构(五)--网站高可用架构
2014-06-16 08:35:14 7761 2
原创 大型网站技术架构(七)--网站的可扩展性架构
大型网站技术架构(一)--大型网站架构演化大型网站技术架构(二)--架构模式大型网站技术架构(三)--架构核心要素大型网站技术架构(四)--网站的高性能架构大型网站技术架构(五)--网站高可用架构 大型网站技术架构(六)--网站的伸缩性架构[草稿]
2014-06-12 07:48:01 14530 3
原创 大型网站技术架构(六)--网站的伸缩性架构
网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能,通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的 规模总是在不断扩大。
2014-06-09 08:49:40 6826 1
原创 大型网站技术架构(三)--架构核心要素
大型网站技术架构(一)--大型网站架构演化大型网站技术架构(二)--架构模式 所谓架构,一种通俗的说法就是“最高层次的规划,难以改变的决定”,这些规划和决定奠定了事物未来发展的方向和最终的蓝图。 而软件架构即“有关软件整体结构与组件的抽象描述,用于指导大型软件系统各方面的设计”。一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。
2014-05-26 08:35:04 9048
原创 大型网站技术架构(二)--架构模式
大型网站技术架构(一)--大型网站架构演化 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。 所谓网站架构模式即为了解决大型网站面临的高并发访问、海量数据、高可靠运行灯一系列问题与挑战。为此,在实践中提出了许多解决方案,以实现网站高性能、高可靠性、易伸缩、可扩展、安全等各种技术
2014-05-25 09:41:53 8455 1
原创 大型网站技术架构(一)--大型网站架构演化
看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。
2014-05-24 21:21:08 17098 6
原创 class常量池陷阱-百看不如一战
今天在修改现场项目时,遇见一个特别值得深刻记住的问题,说大也不大,其实就是class常量池的问题。 场景是这样的,现场原来已经部署了一套软件,现在呢,软件有了一点问题,于是我在本地源代码里面添加了几行日志后,编译成class文件后,替换现场的class文件,重启现场的程序后,发现问题更严重了,直接报文件找不到异常,试了好多次都不行。 于是,我在多处添加日志,发
2014-04-24 19:54:03 2933 1
原创 java命令解释器介绍-bsh
今天在项目里面看到了前人用到了一个很有用的工具java beanshell(bsh),网上搜罗了一番,发现挺有用的,于是乎,赶紧记下来备忘。 下载地址:http://www.beanshell.org/download.html(就是一个jar包) doc:http://www.beanshell.org/manual/bshmanual.html B
2014-04-22 21:40:11 7441
原创 同步容器、并发容器、阻塞队列、双端队列与工作密取
在多线程的开发中经常会碰到数据的并发修改,并发存取,因此正确的使用不同的容器很关键,直接影响到数据的正确性。下面主要记录下三种重要的队列,以及一种非常使用的双端队列。1、同步容器 主要代表有Vector和Hashtable,以及Collections.synchronizedXxx等。 锁的粒度为当前对象整体。 迭代器是及时失败的,即
2014-03-23 13:46:46 4008
原创 利用btrace在线监控java程序状态
btrace介绍 下载地址:https://kenai.com/projects/btrace/downloads/directory/releases/ 选择版本进行下载,这里下载的是release-1.2.4 /btrace-bin.zip 这两天在调试程序时,发现一个比较好用的工具-btrace,能够线上监控程序状态,获取运行时数据信息,如方法返
2014-03-01 17:25:46 14532
翻译 深入理解java虚拟机(八):java内存分析工具-MAT和OQL
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 深入理解java虚拟机(六):java垃圾收集分析实
2014-02-27 17:38:59 7371 1
原创 深入理解java虚拟机(七):java垃圾收集分析总结
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 深入理解java虚拟机(六):java垃圾收集分析
2014-02-26 15:56:47 7015 2
原创 深入理解java虚拟机(六):java垃圾收集分析实战(内存分配与回收策略)
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法深入理解java虚拟机(五):hotspot垃圾收集算法实现 试验环境jdk 1.6.0_37。
2014-02-24 18:20:55 7999 2
原创 深入理解java虚拟机(五):hotspot垃圾收集算法实现
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战深入理解java虚拟机(三):String.intern()-字符串常量池深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法 本文所讲的是sun hotspot虚拟机实现,主要讲解Serial,ParNew,Parallel Scavenge,Serial
2014-02-20 15:33:51 6656 2
原创 深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 深入理解java虚拟机(三):String.intern()-字符串常量池 程序计数器、虚拟机栈、本地方法栈3个区域随线程生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的执行这出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类
2014-02-20 10:28:17 7043 5
原创 深入理解java虚拟机(三):String.intern()-字符串常量池
深入理解java虚拟机(一):java内存区域(内存结构划分)深入理解java虚拟机(二):java内存溢出实战 看源码: public native String intern(); Returns a canonical representation for the string object. A pool of strings, initially empty
2014-02-19 14:47:44 14784 3
原创 深入理解java虚拟机(二):java内存溢出实战
深入理解java虚拟机(一):java内存区域(内存结构划分)按照java内存的结构,发生内存溢出的地方常在于堆、栈、方法区、直接内存。1、堆溢出堆溢出原因莫过于对象太多导致,看代码。package baby.oom;import java.util.ArrayList;import java.util.List;/** * java 堆溢出 * VM
2014-02-19 13:13:07 9190 3
原创 深入理解java虚拟机(一):java内存区域(内存结构划分)
图一:java内存结构划分由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。1、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。2、虚拟机栈线程私有,它的生命周期和线程相同。描述的是java方法执行的内存模型:每个方法在执行的同时多会创建
2014-02-18 17:45:12 28321 7
oracle版火车票销售系统-java-内附源码
2011-11-24
mysql版火车票系统-完整版-JAVA-GUI-WEB
2011-11-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人