自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TPS和事物的平均响应时间 怎么个关系,有关系吗

问者:每秒处理的事物数和事物的平均响应时间 怎么个关系,有关系吗kaku21:举个例子:一个高速路 有10个入口,每个入口每秒钟只能进1辆车,请问1秒钟最多能进几辆车??问者:10kaku21:每辆车需要多长时间响应??问者:针对这个问题的话 那tps就是10 ,事物的响应时间是1kaku21:好,那现在我有20辆车,那每秒能进几辆??每辆响应时间是多少??...

2012-05-25 10:08:55 771

原创 Facebook’s architecture(转)

From various readings and conversations I had, my understanding of Facebook’s current architecture is:* Web front-end written in PHP. Facebook’s HipHop [1] then converts it to C++ and compiles it ...

2011-05-09 10:09:54 146

原创 位图存储优化

位图作为一种简高效使用内存的数据结构,在很多场合都能够用最省的内存表达大量的数据。我对位图最早的印象来自于《编程珠玑》中用位图结构来存储电话号码。感叹其简单、方便。本质上,位图是一个存储单个位的数组,每一个位表示一个数组元素。例如如果我们需要标记100万用户的在线状态,则可以将每个用户对应到一个位,只需要100万个位(约0.125M内存)的位图就可以表示了。如下图所示,在线的用户标记为绿色。其存储...

2011-04-21 13:14:44 333

原创 BitTorrent中的数据块校验方式改进:Merkle Hashing Tree

大家都知道,目前BT应用的发展具有一个非常显著的趋势,那就是用来交换电影、游戏、ISO等大尺寸的数据文件。然而我们也能够观察到另一个事实,那就是:下载文件所对应的索引文件(.torrent)也越来越大,越来越难以下载;这是因为在索引文件中保存了被下载文件中所有数据块的20字节SHA1校验值,而文件越大,数据块越多,则.torrent文件越长(块数=文件长度/数据块长,Bit Torrent标准协议...

2011-04-11 13:55:54 208

原创 构建高可用系统之故障篇(转)

对于构建高可用的系统而言,都希望尽可能的避免故障,但通常来说故障是不可避免的,要尽可能做到的应该是在故障出现时能快速的屏蔽故障对核心功能的影响或快速修复,在这篇blog中,来分析下该如何更好的面对程序故障(这里就不讨论人工操作造成的状况),保障系统的高可用,由于这些更多的来自自己对厂内的经验的总结,必然会有一定的狭隘性,希望大家多多拍砖。所有的系统必然都有其核心功能,我们把核心功能相关的操...

2011-03-28 10:06:00 171

原创 Java 序列化的高级认识

本文将逐一的介绍几个情境,顺序如下面的列表。 * 序列化 ID 的问题 * 静态变量序列化 * 父类的序列化与 Transient 关键字 * 对敏感字段加密 * 序列化存储规则列表的每一部分讲述了一个单独的情境,读者可以分别查看。序列化 ID 问题情境:两个客户端 A 和 B 试图通过网络传递对象数据,A 端将...

2011-03-15 13:23:20 228

原创 The Unit Of Work Pattern And Persistence Ignorance

In the April 2009 issue of MSDN Magazine ("Persistence Patterns") I presented some common patterns that you will encounter when using some sort of Object/Relational Mapping (O/RM) technology to persis...

2011-02-10 14:54:47 197

原创 分布式系统设计模式

[color=darkblue] [align=left] 1. 系统失败是很平常的事情:每年有1-5%的硬盘会报废,服务器每年会平均宕机两次,报废几率在2-4%几率。 2. 将一个大而复杂系统切分为多个服务:而且服务之间依赖尽可能的少,这样有助于测试,部署和小团队独立开发。例子:一个google的搜索会依赖100多个服务。ike:需要一套机制来确保服务的faul...

2011-02-10 14:16:05 132

原创 Select 事务

Session s = factory.openSession(); Transaction tx = s.beginTransaction(); List auctions = s.createQuery("select ...").list(); tx.commit(); s.close();如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执...

2010-12-30 09:55:21 129

消除分布式事务的方法:消息队列和消息应用状态表

http://info.52z.com/html/28855.html由于数据量的巨大,大部分Web应用都需要部署很多个数据库实例。这样,有些用户操作就可能需要去修改多个数据库实例中的数据。传统的解决方法是使用分布式事务保证数据的全局一致性,经典的方法是使用两阶段提交协议。 长期以来,分布式事务提供的优雅的全局ACID保证麻醉了应用开发者的心灵,很多人都不敢越雷池一步,想像没有分布...

2010-03-24 16:22:45 497

原创 Consistent Hashing

[code="java"]import java.util.Collection; import java.util.SortedMap; import java.util.TreeMap; public class ConsistentHash { private final HashFunction hashFunction; private ...

2010-02-09 17:12:32 114

原创 CAP理论以及Eventually Consistent (最终一致性)解析(转)

1 CAP理论简介10年前,Eric Brewer教授指出了著名的CAP理论,后来Seth Gilbert 和 Nancy lynch两人证明了CAP理论的正确性。CAP(Consistency,Availability,partition tolerance)理论告诉我们,一个分布式系统不可能满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个(至于CAP理论的证明,可以参考附...

2010-01-19 09:53:53 113

原创 ACID, BASE和CAP(转)

云计算平台是非常巨大的分布式系统,需要处理庞大的处理请求,因此任何小概率事件在此平台中都必然发生。DBMS强调ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性 (Durability)。其中的一致性强调当程序员定义的事务完成时,数据库处于一致的状态,如对于转帐来说,事务完成时必须是A少了多少钱B就多了多 少钱。而对于很多互联...

2010-01-17 22:33:26 115

原创 由JSESSIONID谈cookie与SESSION的区别和联系[转]

在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码:[code="java"]< % cookie[]cookies = request.getCookies();if (cookies.lenght == 0 || cookies == null)doStuffForNewbie()...

2009-12-28 13:52:08 97

原创 Cache 一致性问题解决思路

http://www.dbanotes.net/arch/facebook_scaling_out.html大量的 MySQL + Memcached 服务器,布署简示:California (主 Write/Read)............. Virginia (Read Only)主数据中心在 California ,远程中心在 Virginia 。这两个中心网络延迟就有 7...

2009-09-14 14:54:22 906

原创 两阶段提交协议

在第一阶段,交易中间件请求所有相关数据库准备提交(预提交)各自的事务分支,以确认是否所有相关数据库都可以提交各自的事务分支。当某一数据库收到预提交后,如果可以提交属于自己的事务分支,则将自己在该事务分支中所做的操作固定记录下来,并给交易中间件一个同意提交的应答,此时数据库将不能再在该事务分支中加入任何操作,但此时数据库并没有真正提交该事务,数据库对共享资源的操作还未释放(处于锁定状态)。如果由于某...

2009-08-03 16:27:21 148

原创 海量数据处理汇总

原文地址:http://blog.csdn.net/DaiZiLiang/archive/2006/12/06/1432193.aspx笔者在实际工作中,有幸接触到海量的数据处理问题,对其进行处理是一项艰巨而复杂的任务。原因有以下几个方面:一、数据量过大,数据中什么情况都可能存在。如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考...

2009-07-23 17:26:02 164

原创 CompletionService

[code="java"]package thread;import java.util.concurrent.Callable;import java.util.concurrent.CompletionService;import java.util.concurrent.ExecutionException;import java.util.concurrent.Exec...

2009-06-03 17:23:23 82

原创 Spring 事务

导读:   Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。   我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在进行事务划...

2009-04-14 21:33:00 75

原创 防止JAVA程序重复启动的一个另类解决办法

[url]http://www.iteye.com/topic/37732?page=1[/url][b]控制这个程序在同一主机上只能启动一个实例[/b] [code="java"]/** * 检测系统是否只启动了一个实例 */ protected void checkSingleInstance() { try { ...

2009-03-31 20:29:23 369

原创 简单LRU算法实现缓存

[url]http://www.blogjava.net/killme2008/archive/2008/01/14/149645.html[/url]最简单的LRU算法实现,就是利用jdk的LinkedHashMap,覆写其中的removeEldestEntry(Map.Entry)方法即可,如下所示:[code="java"]import java.util.ArrayList...

2009-03-27 11:31:20 149

原创 Semaphore 信号量

[url]http://www.java2000.net/p14873[/url]Semaphore 信号量,就是一个允许实现设置好的令牌。也许有1个,也许有10个或更多。 谁拿到令牌(acquire)就可以去执行了,如果没有令牌则需要等待。 执行完毕,一定要归还(release)令牌,否则令牌会被很快用光,别的线程就无法获得令牌而执行下去了。 [code="java"]i...

2009-03-21 23:25:39 102

原创 JNDI配置原理详解

[url]http://www.javaeedev.com/blog/article.jspx?articleId=ff808081129558b50112bd2ad54b000f[/url]和多数java服务一样,SUN对JNDI也只提供接口,使用JNDI只需要用到JNDI接口而不必关心具体实现:[code="java"]private static Object jndiLoo...

2009-03-21 12:05:32 76

原创 MappedByteBuffer内存映射

通过把一个套接字通道(SocketChannel)注册到一个选择器(Selector)中,不时调用后者的选择(select)方法就能返回满足的选择键(SelectionKey),键中包含了SOCKET事件信息.异步套接字对服务器程序来说更具吸引力.一般同步SOCKET服务器的实现都是采用线程池来处理客户请求的,基于请求超时时间和并发线程数目的限制,如果并发处理能力能够达到上千就已经是不错了.异...

2009-03-15 21:26:03 137

原创 for循环求和

[url]http://www.iteye.com/topic/39694?page=1[/url][code="java"]class Details { double getBalance(); double getFixed(); double getVariable(); double getSpendDown(); ...

2009-03-13 10:51:02 1170

原创 如何知道方法的调用者

[url]http://www.iteye.com/topic/13179[/url]线程运行栈信息的获取一、问题的引入我们在Java程序中使用日志功能(JDK Log或者Log4J)的时候,会发现Log系统会自动帮我们打印出丰富的信息,格式一般如下:[运行时间] [当前类名] [方法名]INFO: [用户信息]具体例子如Tomcat启动信息:Jul 9, 20...

2009-03-11 20:35:27 194

原创 JAVA中操作数据库方式与设计模式的应用

[url]http://www.iteye.com/topic/198175[/url]一个最简单地数据库连接池实现:[code="java"]public class ConnectionPool { private static Vector pools; private final int POOL_MAXSIZE = ...

2009-03-11 15:02:26 74

原创 java调用Oracle EXP备忘

[url]http://www.blogjava.net/BlueDavy/archive/2006/11/22/82909.html[/url]需求就是:调用Oracle EXP命令完成备份,并返回生成的备份文件名,这个备份文件会很快在其他的地方被使用。采用Runtime.getRuntime().exec我们都知道,需要处理它的InputStream,以避免出现执行的命令输出的...

2009-03-10 11:28:54 108

原创 关于java中volatile字段的ordering

[color=blue][list][*]多个volatile操作之间是有序的,compiler和处理器都不能进行乱序[/list][list][*]volatile store之前的load/store操作不能乱序到volatile store之后执行[/list][list][*]volatile load之后的load/store操作不能乱序到volatile l...

2009-03-08 22:00:21 81

原创 Initialize-on-demand Holder Class

[code="java"]public class Singleton { private static class SingletonHandler{ static final Singleton singleton =new Singleton(); ...

2009-03-02 15:01:26 169

原创 Interceptor的实现

[code="java"]public interface Action { public String execute() throws Exception; } public class TestAction implements Action { public String execute() throws Exception { Sys...

2009-03-01 21:26:36 75

原创 Spring声明式事务

[code="java"]Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要我们在与事务相关的方法中处理大量的try…catch…finally代码。 我们在使用Spring声明式事务时,有一个非常重要的概念就是事务属性。事务属性通常由事务的传播行为,事务的隔离级别,事务的超时值和事务只读标志组成。我们在...

2009-02-28 22:32:39 85

原创 取得地址栏完整请求信息

[code="java"]public static String getCompleteURL(HttpServletRequest request) { return new StringBuilder(getCurrentHttpURL(request)) .append(request.getServletPath()).append("?") ...

2009-02-17 12:06:18 243

原创 JS菜单

[code="java"] /* */ 菜单一 1子菜单一 子菜单二 子菜...

2009-02-16 16:33:57 72

原创 Quartz CronTrigger最完整配置说明

CronTrigger配置格式:格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , - * / 2 分 是 0-59 , - * / 3 小时 是 0-23 , - * / 4 日 是 1-31 , - *...

2009-02-15 15:12:14 89

原创 Builder模式

[code="java"]import java.util.ArrayList;interface Builder{ public void buildPartA(); public void buildPartB(); public void buildPartC(); public Product getProduct();}class Product{...

2009-02-12 17:59:55 82

原创 Command命令模式

[code="java"]Java代码 1. public class Invoker { 2. private Command command; 3. 4. public void setOrder(Command command) { 5. this.command = command; ...

2009-01-22 11:09:41 80

原创 State状态模式

[code="java"] 1. //先来一个状态: 2. package State; 3. 4. public abstract class State 5. { 6. 7. /** *//** Creates a new instance of State */ 8. pu...

2009-01-22 10:42:11 88

原创 ClassLoader介绍

JVM在运行时会产生三个ClassLoader,Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader.其中,Bootstrap是用C++编写的,我们在Java中看不到它,是null。它用来加载核心类库,在JVM源代码中这样写道:[code="java"]static const char classpathFormat[] =...

2009-01-21 13:24:23 71

原创 Decorator模式

[code="java"]abstract class Component{ abstract public void printTicket();}class SalesTicket extends Component{ public void printTicket() { System.out.println("打印出salesTicket的内容"); }}...

2009-01-13 21:43:39 121

空空如也

空空如也

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

TA关注的人

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