自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 Tomcat 架构 (一)

在实践过程中,从WebSphere中实现一个EJB的容器以及从WebLogic中实现一个JMS几乎都是不可能的,然而来自Apache基金会的servlet容器Tomcat至少在理论上是可能做到的。请注意,这里所说的“接口”也包含抽象类。规范的API可能会提供一个实现的模板,其中包括定义了一些抽象的基本类型的操作来供服务提供者去实现。而服务提供者应提供这些接口和抽象类的具体实现。例如,在To

2015-02-08 20:59:08 886

原创 Java类加载器深入解析(二)

在做Java开发时了解Java类加载机制是非常好的。而对类加载机制的基本理解对Java开发人员处理类加载器(ClassLoader)相关的异常也很有帮助。类加载器委托机制Java类的装载是通过类加载器(CL)来完成的,这些类加载器负责将类加载到JVM中。简单的应用可以使用java平台自带的类加载器来加载自身的类,而稍微复杂一些的应用则倾向于自定义类加载来加载自身的类。

2015-02-08 20:56:10 536

原创 Java类加载器工作原理

Java类加载器是用来在运行时加载类(*.class文件)。Java类加载器基于三个原则:委托、可见性、唯一性。委托原则把加载类的请求转发给父 类加载器,而且仅加载类当父 类加载器无法找到或者不能加载类时。可见性原则允许子类加载器查看由父类加载器加载的所有的类,但是父类加载器不能查看由子类加载器加载的类。唯一性原则只允许加载一次类文件,这基本上是通过委托原则来实现的并确保子类加载器不重新加载由

2015-01-20 18:50:30 812

原创 Memcache内部剖析

Memcache在web社区中是一个非常著名的系统,而且有一个好的原因:它速度快、稳定、轻量级,而且如果你在网站服务器安装了memcache后它似乎会自动将网站访问速度提升10倍。虽然这似乎有点不可思议,但是:定制一个好的缓存策略对网站或应用很有用。如果你只是想知道如果在你的网站中应用memcache,那很不幸,本文并不是教你如何使用memcache。我们将抽丝剥茧,看看是什么使memcache如

2015-01-15 17:13:04 731 2

原创 Redis架构

REDIS是一个开源的、先进的键值存储系统。它通常可以被用作数据结构服务器,因为它的键可以包含字符串(string)、哈希值(hash)、列表(list)、集合(set)以及有序集合(sortedset)。而且Redis使用的是内存数据集合。根据你自身的使用情况,你可以定时将这些内存中的数据保存至磁盘中,或者将每个命令都添加至日志中。你可以通过redis的项目主页了解它的更多功能。Redis最初的

2015-01-12 15:46:18 697

原创 如何在ubuntu14.0下为WordPress应用服务器搭建四层负载均衡

介绍在本教程中,我们将教你如何使用HAProxy为你的WordPress服务器搭建第四层负载均衡--特别是web应用层。负载均衡web服务器要在设置中增加冗余,这会在碰到服务器失败、网络问题时增加服务的可靠性;同时将负载分摊在多个服务器上可以提交读操作的性能。我们假设你所配置中包括一个WordPress应用服务器去连接一台单独的MYSQL数据库服务器(假设你已经知道如何架设)。如果你只是运

2015-01-12 15:42:23 1639

原创 Nginx与HAProxy在web应用中的比较

这几天我对Nginx和HAProxy做了比较,得出了令人吃惊的结果。首先,介绍一些背景情况。在很长的一段时间里,我们在Bengler把Nginx作为我们项目的主要web服务器,就像在Mongrel下代理Rails运行一样。Nginx是一个非常好的小开源软件,它占用空间小、有合理的配置语言、功能先进而且速度快。然而,我们却很快发现nginx中代理的负载均衡特性却不尽如人意。这其中最核心的问题

2015-01-11 21:12:17 1012

原创 Apache 多路复用模块(MPMs) - Prefork, Worker, Event

当整个世界都慢慢倾向于nginx的时候,如果你还在使用apache,那么你可能会用尽一切办法来保证速度。你也许会调整要加载的模块,使用Keepalive、摆弄内容协商模块(mod_negotiation,译注:从几个文档中选择一个最匹配客户端要求的文档)、FollowSymLinks指令(译注:允许在此目录中使用软链接)以及重写功能;你甚至可能还会投入更多硬件,并假装自己没有。然而,如果你运营的网

2015-01-11 21:08:39 592

原创 负载均衡调度算法

负载主机可以提供很多种负载均衡方法,也就是我们常说的调度方法或算法:轮循(Round Robin)这种方法会将收到的请求循环分配到服务器集群中的每台机器,即有效服务器。如果使用这种方式,所有的标记进入虚拟服务的服务器应该有相近的资源容量以及负载形同的应用程序。如果所有的服务器有相同或者相近的性能那么选择这种方式会使服务器负载形同。基于这个前提,轮循调度是一个简单而有效的分配请求的方式。然而

2015-01-11 21:06:38 526

原创 网速慢?这可不仅仅是带宽问题!

从服务质量角度来看,如果不考虑其他因素,那么家庭网络服务很大程度上取决于带宽。虽然带宽对于web内容用户来说非常重要,但是它并不是仅有的重要指标。众所周知,市面上所卖的高带宽连接并不是真正意义上的传输速度,它们不过是最大网速,只是一个卖点而已。直接说就是:不要期望能达到广告中的速度。让我们来看一个东西...TCP或者叫传输控制协议,是你的浏览器连接一个网站时所使用的网络协议,而且是数据如何通过

2014-11-14 21:19:53 1146

原创 分布式还是混合式? 谈CDN架构对服务质量的影响

传统分布式模型通 常,内容分发网络(CDN)采用分布式模型。在这种模型里, 用户的文件存放在一个源服务器上,并且由大量边缘服务器负责分发这些文件。这些边缘服务器的磁盘空间比较小,所以大多数的文件被放在内存中。因此,当一个 文件传输至终端用户之前,如果该文件在边缘的CDN缓存服务器上不存在,那么这些服务器会先去原始服务器请求该文件或流。这种分布式模型起 源于20世纪末,也就是在那时全球第

2014-11-14 21:17:53 1017

原创 CDN详解(篇二)

还有另一个问题就是所有的内容都放在同一个地方。如果我们的服务器在芝加哥,那么美国中西部的人们访问服务器的响应时间和用户体验就比香港、德国、南非以及佛罗里达州的用户好。因为那些用户离服务器的物理距离更远,根据物理定律来看,这些用户获取内容显然需要更长时间。这加大了请求的数量,而且其中大部分请求为静态内容或者是占用大量带宽的文件的请求。单个字节的数据以服务器为原点传输到终端用户所花的时间被称为“往

2014-11-14 21:16:24 733

原创 CDN详解(篇一)

CDN是一个致力于使内容传输更快、更高效的针对web服务器的全局分布式网络。通过CDN来复制使这些内容可以在很多地方同时存在。比较有名的CDN厂商有AKamari,Amazon Cloudfont以及Edgecast。为什么CDN会存在?最根本的原因...获得更好的用户体验。而且第二层好处是可以使网络资源更有效的被利用。CDN主要使用两方面的技术来实现:保持重要的内容分布在

2014-11-14 21:15:03 1463

原创 CDN架构设计及注意事项

内容传输网络或内容分发网络(CDN)是一个包含数据副本的缓存系统,存在于网络中不同的节点以便可以最大化的利用网络来传输数据至客户端。一个客户端访问离它最近节点的数据副本,而不是所有的客户端访问相同的中心服务器,因此避免了服务器瓶颈问题。CDN所缓存的内容类型包括web对象、可下载的对象(媒体文件、软件、文档)、应用程序和实时媒体流。从最高层面来看,所有的CDN看起来都相似,都拥有一个类似于图(1)

2014-11-14 21:12:57 1444

原创 【重磅】移动网络性能揭秘(上)--移动网络组件详解

简介在过去的几年里我们在移动蜂窝网络性能方面取得了重大进展。但是由于网络延迟的膨胀导致许多应用并没有得到改善。延迟问题长期以来一直制约着移动网络。尽管近年来已取得一些进展,但减少网络延迟没有跟上延迟的增长速度。正是由于这种不对等导致了延迟,而不是吞吐量,成为影响网络性能的最大因素。这篇文章逻辑上主要包含两章。第一部分将讨论导致移动网络延迟的细节;第二部分介绍提高网络性能降低延迟的软件技

2014-11-10 21:10:08 1229

原创 【重磅】移动网络性能揭秘(下)--网络协议及性能提升实践

网络协议的性能现在轮到我们实际上可以控制的东西了。网络处理的性能与延迟时间的增加是不成比例的。这是由于大多数网络协议的内在操作是双向信息交换。本章的其余部分则侧重于理解为什么会产生这些信息交换以及如何减少甚至消除它们交换的频率。 图3:网络协议 传输控制协议传输控制协议(TCP)是一种面向连接、基于ip的传输协议。TCP影响下的无差错双工通信信道对其他协议如HTTP

2014-11-10 21:06:22 976

原创 你设计的应用是IO依赖型还是CPU依赖型?

这个话题可能看起来很枯燥,但它对mysql的性能优化非常重要。事实上我在MYSQL咨询工作中无时无刻接不在接触这类问题。IO工作负载与cpu依赖完全不同,尤其是当你的工作集(通常只有数据库的一小部分)载入内存的时候。当数据在内存中时读取是非常快的,如果不在内存中,则非常缓慢。例如,当你查询分析10000行数据时,如果这10000行全部加载在内存中,则只需要很短时间;但是如果到磁盘上去读的话

2014-11-10 21:02:10 637

原创 WEB安全:SQL注入

SQL注入是网站和web应用程序中最常见的安全漏洞。这种恶意技术有很多应用场景, 但(SQL注入)通常是指在数据输入的地方注入代码以利用数据库应用程序中的安全漏洞。 SQL注入在接收用户输入的接口处 (也就是说在注册表单、查询表单等地方)尝试执行注入操作。对(SQL注入)高度关注以及方便检测数据库应用程序中的安全漏洞使得攻击者经常地以最小的努力“测试”网站/应用程序的安全完整性。危害成功执

2014-11-10 21:00:03 940

原创 理解负载均衡

负载均衡是一个针对许多节点的分布式负载。在网络行业,它通常作为一个web前端而被用来平衡各个服务器的http流量。为了这篇文章,我们关注Zenus负载均衡器在http和https流量上的负载均衡。负载均衡器允许用户智能的分发流量到许多使用不同协议的多台服务器中的单个IP。这意味这负载处理可以被多个节点共享,而不是局限于在活动频繁时提高行单个服务器性能。这提高了你的web应用的可靠性,而且允许你

2014-11-10 20:55:55 667

原创 nginx介绍(四) 经验篇

5.经验学习当Igor Sysoev开始编写nginx的时候,构建互联网的大多数软件已经存在,这些软件的体系结构通常 遵循 旧式服务器的定义、网络硬件、操作系统以及老互联网架构。然而,这并没有阻止Igor 思考他或许能够在web服务器领域做一些改善性的工作。因此,第一课似乎很明显:改进的空间总会是有的。自从头脑中有了更好的web软件的想法,Igor花费了很多时间开发ngin

2014-10-10 13:01:13 420

原创 nginx介绍(三) 配置篇

3. nginx配置nginx配置系统受益于Igor Sysoev(nginx创始人)在Apache(阿帕奇软件基金会)的经历。Igor Sysoev洞察出可扩展的配置系统对于一个web服务器来说是必不可少的。当维持众多虚拟服务器、目录库、地址信息和数据集的大规模结构复杂的配置时,扩展中的主要问题便不期而遇。如果在应用端和系统工程师设计方面处理的不恰当,对于配置一个相对大的web服务器来说

2014-10-10 12:54:45 413

原创 nginx介绍(二) 架构篇

2. nginx架构总览传统的基于进程或者基于线程的模型处理并发的方式都是为每个连接单独创建一个处理进程或线程,会在网络传输或者I/O操作上阻塞。而这对应用来说,在内存和 CPU的使用上效率都是非常低的。而且生成一个单独的进程或者线程还需要为该进程或者线程准备新的运行环境包括分配堆栈内存,还必须为它创新一个新的上下文执行环境。创建这些都消耗额外的CPU时间,这最终也会因为线程上下文来回切换导致

2014-10-10 12:52:16 471

原创 nginx介绍(一) 简介篇

Nginx(发音为“engine x”)是一款由俄罗斯软件工程师Igor Sysoev写的开源的web服务器。自从2004年发布以来nginx一直关注于高性能、高并发、低内存的使用,另外还有一些特色的Web服务器功能,如负载均衡、缓存、访问和带宽控制以及能够有效的与各种应用集成这些特点使得nginx成为现代网站架构中一个不错的选择。目前,nginx在互联网最受欢迎web服务器软件排行榜上排名第

2014-10-10 12:50:01 448

原创 如何决定Web应用线程池大小

这篇文章将涉及一个在部署Web应用产品和Web系统性能测试中都会出现的问题:如何决定Web应用的线程池大小?线程池(Thread Pool)在Web应用中线程池的大小决定了在任何一个时间点应用可以处理请求的并发数。如果一个系统收到的请求数超过了线程池的大小,那么超出的请求要么进入等待队列要么被拒绝。请注意,并发和并行是不同的。并发请求是指在任何一个时间点,所有被处理的请求中只有只有很少

2014-10-10 12:46:30 396

原创 反应堆模式(二):非阻塞式IO应用

在第一部分中,我们讲述了在单个服务下扩展一个单线程应用的请求处理数量所面临的问题。在这篇文章中,我们将关注CPU使用率最大化的一个可选择的解决方案。以下来自文章一的图,表明了应用需要通过请求来使用CPU,而且还必须在两次请求之间等待。加入我们把处理请求看成一个事件,并且把这些时间进行排队然后在一个线程中执行,那么我们可以肯定CPU降一直被占用,从而也使CPU使用率达到最大,还避免了

2014-10-10 12:41:59 516

原创 反应堆模式(一):阻塞式IO应用

这里我假设一个简单的情景,比如一个运行在单cpu机器上的单线程ruby应用。实际上,操作系统把CPU时间切分为多个片段并做规律性的上下文切换。在单线程应用例如运行在ruby on rails的应用,所有请求都通过一个单独的线程来处理。当这个单独的线程做IO相关处理如数据库查询或者网络调用,那么即使这个应用/线程可以处理其他请求相关的工作也还是会被这些IO操作所阻塞。一个避免以上问题出现

2014-10-10 12:40:38 464

原创 可伸缩Web架构的4个问题:瓶颈,CPU,数据库,IO

在这篇文章中我将谈到关于大规模网站架构扩展和性能方面的一些问题。首先让我们先来了解一些术语。稍后我将对Web应用扩展过程中所遇到的不同问题进行讲解,例如: 架构瓶颈 数据库扩展 CPU消耗型应用 IO消耗型应用性能Web系统的性能受多方面因素的影响,但大多数开发人员主要关心的是响应时间和可扩展性这两方面。响应时间响应时间是指Web应用从收到请求到返回响应

2014-10-10 12:29:41 524

原创 ajax请求url中文字符参数乱码

/**     *判断用电客户安装设备的计量方式:1、 高压计量   2、低压计量;加载对应的设备关系图片     */    function getMeterLevel(consId){       $.ajax({               url:"CONSAnalyse_getMeterLevelFlag.action?cons_Id="+consId,    

2014-08-04 13:56:08 637

原创 MyEclipse 使用JPA方式逆向生成实体类POJO以及DAO类

1)使用MyEclipse   DB Browser 生成数据库表视图                                      (a) 如图(a)点击 other选项,弹出窗口:                                    (b)选中DB  Browser,点击 ok按钮:                         

2014-08-04 13:07:59 1157

win7有线上内网无线上外网

win7系统下实现有线上内网无线上外网的功能。

2013-03-21

J2SE API应用程序接口使用文档

J2SE api开发文档。此文档对java程序员是不可或缺的。希望给需要的朋友带来帮助。

2011-09-08

空空如也

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

TA关注的人

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