自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张兆坤

路漫漫其修远兮,吾将上下而求索

  • 博客(153)
  • 收藏
  • 关注

转载 牺牲一致性来换取分布式架构的可伸缩性(转)

系统架构师角色关键的一方面就是衡量相互冲突的需求、决定解决方案,常常要牺牲一个方面来换取另一个方面。随着系统变得越来越大、越来越复杂,越来越多关于如何构建应用的传统智慧正在受到挑战。比如说,去年3月在伦敦召开的QCon会议上,Dan Pritchard谈论了eBay的架构。他的介绍随后得到了很多的报道,其中一个主要的结论就是eBay不使用事务,用数据一致性上的损失来换取系统整体伸缩性和性能上相当大

2010-01-17 22:27:00 1165

转载 可伸缩性最佳实践:来自eBay的经验(转)

在eBay,可伸缩性是我们每天奋力抵抗的一大架构压力。我们所做的每一项架构及设计决策,身前身后都能看到它的踪影。当我们面对的是全世界数以亿计的用户,每天的页面浏览量超过10亿,系统中的数据量要用皮字节(1015或250)来计算——可伸缩性是生死交关的问题。在一个可伸缩的架构中,资源的消耗应该随负载线性(或更佳)上升,负载可由用户流量、数据量等测量。如果说性能衡量的是每一工作单元所需

2010-01-17 22:22:00 886

转载 为什么要用非关系数据库?(转载)

随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如: 1、High performance - 对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息

2010-01-13 22:06:00 1155 1

转载 Hbase分析报告(转载)

Hbase分析报告本文基于环境hadoop-0.16.4 和 hbase-0.1.3 编写 Hbase是一个分散式开源资料库,基于Hadoop分散式文件系统,模仿并提供了基于Google文件系统的Bigtable资料库的所有功能。 Hbaes的目标是处理非常庞大的表,可以用普通的电脑处理超过10亿行资料,并且有数百万列元素组成的资料表。 Hbase可以直接使用本地文

2010-01-13 20:40:00 3078

转载 构建高性能的SNS网站架构(转载)

一、满足极高读写性能需求的Key-Value数据库高性能Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet, Flare,这3个Key-Value DB都是用C编写的,他们的性能都相当出色,但出了出色的性能,他们还有自己独特的功能:1、RedisRedis是一个很新的项目,刚刚发布了1.0版本。Redis本质上是一个Key-Value类型的

2010-01-13 20:26:00 1910

转载 了解NoSQL的必读资料汇总(转载)

PHPChina讯:NoSQL 是非关系型数据存储的广义定义。它打破了长久以来关系型数据库与ACID理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语在 2009 年初得到了广泛认同。当今的应用体系结构需要数据存储在横向伸缩性上能够满足需求。而 NoSQL 存储就是为了实现这个需求。Google 的B

2010-01-13 20:19:00 1184

转载 高性能数据库HyperTable(转载)

数据库领域近来吸引了不少眼球。IBM不久前投资于EnerpriseDB;EnerpriseDB有一个运行在Amazon EC2上的云版本。Amazon去年末发布了他们自己的云数据库。而Google的BigTable尽管并不开源,也得到了社区的广泛研究。同样是在这个 领域,两个开源项目——HBase和Hypertable利用开源Map/Reduce平台Hadoop提供了类似于BigTable的可伸缩

2010-01-13 20:17:00 2109 1

原创 Struts2源代码分析(二)类ContainerImpl的实现分析

要理解Struts2的源代码的一个核心是要理解它的对象容器的实现方式了。涉及的具体代码是接口com.opensymphony.xwork2.inject.Container.java,以及该接口的实现类com.opensymphony.xwork2.inject.ContainerImpl.java。在Struts2中容器的概念主要在于将使用了Inject注解的构造函数、方法和字段的依赖对象注入其

2010-01-07 20:06:00 3480 2

转载 Tomcat服务器session持久化

简介Jakarta Tomcat服务器是一种Servlet/JSP容器,经历了3.x到4.0.x到4.1.x的变迁,现在最新的版本为5.0.x,支持 Servlet2.4和JSP2.0规范,从apache网站上下载Tomcat 5,在环境变量中配置一下JAVA_HOME,小猫就能生灵活现的跑起来了。若小猫启动失败,DOS窗口会自动关闭,若运行catalina run命令DOS窗口是不会自动关闭

2010-01-05 23:14:00 1164

转载 基于Java 2平台的引用类使用指南

Java 2 平台引入了 java.lang.ref 包,其中包括的类可以让您引用对象,而不将它们留在内存中。这些类还提供了与垃圾收集器(garbage collector)之间有限的交互。Peter Haggar 在本文中分析了 SoftReference 、 WeakReference 和 PhantomReference 类的功能和行为,并就这些类的使用给出了一些编程风格上的建议。

2009-12-26 22:28:00 1032

原创 Struts2源代码分析(一)配置文件加载

       一直以来我都想找个时间好好研究一下Struts2的源代码,彻底弄清楚它的配置文件是如何加载和解析的?Action对象是如何创建的?属性等又是如何获取和注入的?拦截器和拦截器栈是如何实现的?              任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。通常,所有的MVC框架都需要We

2009-12-23 19:26:00 7420 1

原创 华为BME框架与Struts2集成Spring的比较分析

      最近我一直在考虑一个问题,华为的BME框架与裸奔的Struts2集成Spring到底差别在哪里呢?由于多次直接使用BME框架来开发MTV Portal系列项目,觉得BME框架整合集成Spring和Struts2做得相当好,使用比较方便,就想彻底弄明白BME开发框架和直接使用Struts2+Spring究竟有哪些不同?当然要搞清楚这个问题必须有3个前提:第一个是明白Struts2集成Sp

2009-12-20 23:30:00 24851 17

原创 Struts2与Spring集成

       最近我一直在考虑一个问题,华为的BME框架与裸奔的Struts2集成Spring到底差别在哪里呢?这两者在使用方式上基本相同,由于多次直接使用BME框架来开发MTV Portal系列项目,觉得BME框架整合集成Spring和Struts2做得相当好,使用比较方便,由于无法直接看到BME的源代码,遂决定对比一下在具体使用上BME框架与直接使用Struts2集成Spring的异同点,借此

2009-12-13 07:44:00 4406

原创 适配器模式(Adapter)-对象结构型模式

 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式有两种典型的结构类型,即类的适配器模式结构和对象的适配器模式结构。 类的适配器模式的结构类图如下:   对象的适配器模式的结构类图如下:

2009-11-24 19:34:00 1350

原创 进行面向对象设计的6条基本原则

      相信凡是做了几年软件开发的程序员都会有过这样的感叹:“这个程序的耦合性太高了,根本无法修改,如果实在要扩展功能的话只能重新写过!”,“这一块代码太乱啦,我看了几天还没有搞明白!”,“新增加的这个功能,原来的那些代码我们根本用不上啊!”。。。。。。      这样的感叹我是听得比较多,尤其是在做维护工作或者是进行版本升级的情况下最常遇见。 导致存在这些问题的根本原因在于那些系统的可扩

2009-11-21 18:22:00 1321

原创 装饰模式(Decorator)-对象结构型模式

       装饰模式又叫做包装器(Wrapper),它可以动态的给一个对象(而不是类)添加一些额外的职责。       装饰模式可以在不使用创造更多子类的情况下将对象的功能加以扩展,客户端并不会觉得对象在装饰之前和装饰之后有什么区别。一般情况下,我们扩展类的功能,往往是给该类创建子类,一个扩展功能创建一个子类,但是在这扩展的多个功能之间有组合的时候,就会导致类爆炸了。装饰模式可以很好的解决这

2009-11-18 22:42:00 831

原创 代理模式(Proxy)-对象结构型模式

      代理模式隶属于对象的结构型模式。代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。      所谓代理,就是一个人或者一个结构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介作用。      代理模式的典型类图如下图所示。               

2009-11-18 22:32:00 890

原创 什么是SOA?

SOA的定义: SOA(Service-Oriented Architecture)即面向服务的体系结构,是一个架构范式,它处理的业务流程分布在现存的或者新的范围巨大,并且处于不同的所有者控制下的异质系统上。SOA的定义如何理解?1、SOA关键的技术概念是服务、互操作性和松耦合。2、SOA关键要素是基础设施、架构和流程(包括建立SOA的元流程以及监管)3、SOA成功的关键因素是

2009-11-15 10:57:00 1225

转载 Web服务协议以及使用方式

 Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。尽管W3C的定义涵盖诸多相异且

2009-11-04 08:16:00 10138

转载 开发WebService两种开源工具CXF和Axis2的比较

 在SOA领域,我们认为Web Service是SOA体系的构建单元(building block)。对于服务开发人员来说,AXIS和CXF一定都不会陌生。这两个产品都是Apache孵化器下面的Web Service开源开发工具。 Axis2的最新版本是1.3.CXF现在已经到了2.0版本。 这两个框架 都是从已有的开源项目发展起来的。Axis2是从Axis1.x系列发展而来。CXF则是XFire

2009-11-01 15:53:00 1612

转载 Web 服务系列标准和规范

   CONTENT GOES HERE-->Web 服务系列标准是一组新兴标准,支持异类信息技术流程和系统间的互操作集成。可以将其视为一种新的具有自包含性和自描述性的 Web 应用程序,能提供从最基本的到最复杂的业务和科学流程的功能和互操作机制。简而言之,Web 服务系列标准承诺提供用于在异类系统间进行互操作集成的公共标准机制,实际上,其关键之处在

2009-11-01 15:33:00 3140

原创 使用Apache cxf 和Spring在Tomcat下发布Webservice指南

      最近学习了如何使用apache cxf和Spring发布webservice,虽然网上的资料很多,但是没有一个文档可以让读者按照操作步骤来实现完整的发布流程,都需要多篇文件杂合在一起,互相参考才可以完成第一个HelloWorld形式的Webservice。现在将我利用apache cxf和Spring发布webservice的详细的发布过程记录下来,以供后来者参考。 环境信息如下:

2009-10-30 23:21:00 7458 2

原创 路漫漫其修远兮,吾将上下而求索

       从2003年毕业开始写ASP.NET程序,到2005年开始写J2EE程序,从2007年开始也断断续续作了几个项目的Leader,到现在6年了,一回首6年来参与过的项目,写过的程序也数不胜数,但是回头看自己的个人能力也汗颜不已啊,懂的东西貌似不少,但是真正具有强势竞争力又有什么呢,少之又少啊!      目前火红的Spring+Hibernate+Struts技术方案也用过不少,早

2009-10-22 18:00:00 1678 8

原创 大型高并发高负载web应用系统架构-数据库架构策略

      在WEB网站的规模从小到大不断扩展的过程中,数据库的访问压力也不断的增加,数据库的架构也需要动态扩展,在数据库的扩展过程基本上包含如下几步,每一个扩展都可以比上一步骤的部署方式的性能得到数量级的提升。      1、WEB应用和数据库部署在同一台服务器上      一般的小规模的网站采用这种方式,用户量、数据量、并发访问量都比较小,否则单台服务器无法承受,并且在遇到性能瓶颈的时

2009-10-22 09:15:00 21024 2

转载 利用memcached构建高性能的Web应用程序

面临的问题对于高并发高访问的Web应用程序来说,数据库存取瓶颈一直是个令人头疼的问题。特别当你的程序架构还是建立在单数据库模式,而一个数据池连接数峰值已经达到500的时候,那你的程序运行离崩溃的边缘也不远了。很多小网站的开发人员一开始都将注意力放在了产品需求设计上,缺忽视了程序整体性能,可扩展性等方面的考虑,结果眼看着访问量一天天网上爬,可突然发现有一天网站因为访问量过大而崩溃了,到时候哭都来

2009-10-20 20:11:00 2441

转载 大型web站点缓存策略设计概要

上篇对疯狂代码缓存配置进行了概要的设计,可能说的有点模糊了,有几个朋友发了几个问题探讨了下,这里有必要先澄清一个问题,和常见的缓存策略不同,我们的缓存策略将重点放在更新策略而不是只读策略上。只读缓存以及共性缓存策略性质实现的难度并不大,我们要解决的是非共性缓存,并发更新缓存,可扩充性缓存,分布式缓存更新运算的问题,而对于共性的东西的话我们可以很轻松的实现,而不必做太多的运算。 试想一个问题

2009-10-19 20:57:00 6800 1

转载 数据库对象的缓存策略

原帖:http://www.javaeye.com/topic/9706前言 本文探讨Jive(曾经开源的Java论坛)和Hibernate(Java开源持久层)的数据库对象的缓存策略,并阐述作者本人的Lightor(Java开源持久层)采用的数据库对象缓存策略。 本文的探讨基于以前开源的Jive代码,Hibernate2.1.7源码,和作者本人的Lightor代码。 本文用ID (Ident

2009-10-19 08:44:00 1575

转载 高效分布式数据库缓存经典解决方案

原文:http://topic.csdn.net/u/20080722/22/3a63114f-31ea-4174-ba9f-0c0d0c8cb293.html      为什么要用缓存?如果问这个问题说明你还是新手,数据库吞吐量毕竟有限,每秒读写5000次了不起了,如果不用缓存,假设一个页面有100个数据库操作,50个用户并发数据库就歇菜,这样最多能支撑的pv也就50*3600*15=270

2009-10-18 15:21:00 6362

转载 互联网服务技术架构方面的理念、原则,方法

(1)“ 拆分”,数据库的拆分以及应用的拆分,要做到的目标通常是便于应用的无限水平伸缩;(2)能异步就异步,这需要业务的允许;(3)能自动就自动,就像自动化的部署系统;(4)记住所有失败的事情,这点非常重要;(5)容忍不一致性,这句话的含义是尽量少用强事务,而是采用最终一致性这类方案。当然,除了上面这五点之外,还有像多用缓存、自行实现关键技术(以控制稳定性、性能和做到及时响应)

2009-10-17 16:14:00 1651

原创 大型高并发高负载web应用系统架构-缓存架构策略

目前在网站的架构构成中普遍使用到缓存来提供WEB应用的性能,由于网站规模的不同,分别存在如下几种类型的缓存架构。(1)单机缓存(2)简单分布式缓存(3)使用复制方式的缓存集群(4)使用散列方式的缓存集群(5)高性能高、可靠的缓存集群下面对于上述几种缓存策略的实际应用的适用情况以及优缺点进行详细分析,当然并没有一个缓存的教条存在,有的只是参考案例,对于具体的应用来讲要具体分析

2009-10-15 20:45:00 5842

原创 Apache + MOD_JK + TOMCAT实现集群和负载均衡配置指南

对于Web应用的集群学习我是从Tomcat5.5开始的,下面是我的实际操作过程和一些体会。第一部分 环境介绍负载均衡×××××××××××××××××   操作系统:windows xp    IP地址   :192.168.1.200   Apache:apache_2.2.13-win32-x86-openssl-0.9.8k.msi mod_jk:mod_jk-1

2009-09-27 15:38:00 2967

原创 使用Axis在Tomcat下发布Webservice操作指南

       最近在工作过程中总是需要向其它项目组提供Webservice的接口,由于开始需求不是很明确,接口的定义经常需要变更,每一次下来都需要将Java到wsdl,从wsdl到Java,再根据wsdd文件在tomcat上deploy服务这个过程重复一遍.在这个过程中经常出现一些问题,尤其是长期不用axis之后再突然这么用上一用的时候,总是有或多或少的问题存在,遂经上述过程的一些详细操作步骤整理

2009-09-23 10:20:00 7066 2

原创 图解Windows下VMWare中的Linux网络配置

(一)Windows下的配置(1)本地连接如下配置(2)VMware Network Adapter VMnet1如下配置(3)VMware Network Adapter Vmnet8如下配置 (二)Linux下的配置(1)虚拟网卡的配置如下(2)SUSE中网卡的配置如下(3)Linux防火墙的配置如下     安装完毕后,发现在其他机器上不能telnet

2009-09-17 08:46:00 1470

空空如也

空空如也

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

TA关注的人

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