- 浏览: 485364 次
- 性别:
- 来自: 大连
最新评论
-
龘龘龘:
TrueBrian 写道有个问题,Sample 1中,为了控制 ...
What's New on Java 7 Phaser -
龘龘龘:
楼主总结的不错。
What's New on Java 7 Phaser -
TrueBrian:
有个问题,Sample 1中,为了控制线程的启动时机,博主实际 ...
What's New on Java 7 Phaser -
liguanqun811:
不知道楼主是否对zookeeper实现的分布式锁进行过性能测试 ...
Distributed Lock -
hobitton:
mysql的get lock有版本限制,否则get lock可 ...
Distributed Lock
文章列表
3 Inside Terracotta
3.1 Core Terracotta Concepts
3.1.1 Root
共享对象图中的顶层对象被称为root,它在Terracotta的配置文件中指定。所有经root引用可达的对象都会被Terracotta分配一个集群内唯一的object id,并在集群内共享直到被分布式垃圾收集器回收。需要注意的是,声明root对象的类也会被Terracotta隐含地标记为instrumented。
当集群内的某个JVM第一次对root引用赋值的时候,Terracotta会在集群内创建root,并且所有接下来的对root引用的赋值操作均 ...
2. Terracotta Eclipse Plugin
开发基于Terracotta的应用程序的最便捷的方法就是使用TerracottaEclipse Plugin。http://www.terracotta.org/web/display/docs/Eclipse+Plugin+Guide上有详细的安装说明。安装完毕后,通过Terracotta->Add Terracotta Nature可以给已有的工程增加Terracotta Nature。此外也可以通过File->New->Project->Java->Terracotta Projects ...
1. Introduction
Terracotta 在其官方文档中的定义是一种透明的集群服务,也可以看成是JVM级别的集群。其中“透明”的含义并不是指已有程序无需做任何改动就可以使用Terracotta ,但是使用Terracotta 的代码无需实现特定的接口,也不依赖各种magic beans。通常意义上的“集群”是指多个应用通过网络通信、共享数据等,但是这种集群方式通常要求在应用程序中加入集群相关的代码。Terracotta 是在应用程序之下,JVM级别上的集群。这使得应用程序从复杂的集群相关的逻辑中解放出来,从而可以关注在业务逻辑本身。
Terr ...
Jakarta Commons Cookbook这本书中介绍了一个使用回归分析来估计某个工作需要多长时间的例子。 笔者看过之后感觉有些问题(也可能是笔者数学功底不够)。以下是经过笔者修改后的代码。
import org.apache.commons.lang.math.RandomUtils;
import org.apache.commons.lang.time.StopWatch;
import org.apache.commons.math.stat.regression.SimpleRegression;
public class ProgressEstimat ...
1 DestinationResolver
DestinationResolver接口的作用是将指定的目的地名解析为目的地实例。其定义如下:
public interface DestinationResolver {
Destination resolveDestinationName(Session session, String destinationName,
boolean pubSubDomain) throws JMSException;
}
参数pubSubDomain用于指定是使用“发布/订阅”模式(解析后的目的地是 ...
1 Overview
由于项目需要, 笔者开发了一个基于JMX的监控程序。这个监控程序本身也提供了JMX远程服务,并且在开发过程中一直使用jconsole来管理这个监控程序。本打算在将监控程序部署到生产环境后,通过设置NAT(目前还不能通过VPN接入到生产环境)以便仍然可以通过jconsole来管理这个监控程序。但是发现为RMI使用的端口设置好NAT之后,jconsole仍然无法连接到监控程序。经过调查,发现RMI实际上使用了两个端口,一个是可以在程序中指定的(用于客户端下载stub,默认是1099);另外一个是随机选择的(用于方法调用)。虽然可以通过指定一个RMISocketFact ...
1 Introduction
Java Management Extension (JMX) API定义于JSR 3,用于应用程序管理。这些API对于被管理的应用程序来说是本地的。也就是说,在JSR 160发布之前,如果客户端要通过JMX来管理和监控远程的应用程序,并没有标准的做法。JSR 160扩展了JSR 3,提供了标准的API用于连接到支持JMX的远程应用程序。JSR 255将会把JMX升级到2.0,并可能体现在Java 7中。
目前JSR 160定义了基于RMI(支持RMI/JRMP 和 RMI/IIOP)的连接器,还定义了可选的JMXMP连接器,它基于TCP Soc ...
@filelist = map {$_->[0]} sort {$a->[1] <=> $b->[1]} map {[$_, (stat $_)[9] ]} @filelist;
前几天看到如上一行Perl代码, 其作用是将给定一个文件名列表,根据文件的最后修改时间排序。 看过之后
突然想起《明朝那些事》中的一句话:“越接近对方的水平,就越了解对方的强大,就会越来越畏惧”。在体会Perl
代码简洁的特点之余,我对这段代码的作者也心生敬意。
1 Installation
EPIC(Eclipse Perl Integration)是一个基于Eclipse平台的开源Perl集成开发环境。其支持的功能有语法高亮、语法检查、代码提示、Perldoc支持、模版、Perl调试器和正则表达式插件等。
在安装EPIC之前需要安装Eclipse3 ...
4 Protocol Stack
4.1 Transport protocols
Transport protocols是指协议栈中最底层的协议,它们负责发送和接收消息。JGgroups提供了以下几种transport protocols。
4.1.1 UDP
JGroups中的UDP协议使用IP multicast向集群发送消息,使用UDP datagr ...
3 Building Blocks
Building blocks位于org.jgroups.blocks包中,在逻辑上可以视为channels之上的一层,它提供了更复杂的接口。Building blocks并不必依赖于channels,部分building blocks只需要实现了Transport接口的类即可工作。以下简要介绍部分b ...
2 API
2.1 Interfaces
2.1.1 Transport
Transport接口只定义了最简单的方法,用于发送和接收消息。其定义如下:
public interface Transport {
void send(Message msg) throws Exception;
Object receive(long timeout) throws Exception;
}
2.1.2 MessageLi ...
1 Overview
JGroups是一个用于建立可靠的组播通信的工具包(这里指的组播并不一定是IP Multicast,JGroups同样支持使用TCP作为传输协议)。其中可靠性是指通过适当的配置可以保证:消息在传输的过程中不会丢失;所有的接收者以相同的顺序接受所有的消息;原子性:一个消息要么被所有的接收者接收,要么不被任何一个接收者都接收。目前在JBoss Application Server Clustering,OSCache Clustering,Jetty HTTP session replication, Tomcat HTTP session replication中 ...
本文部分内容节选自Enterprise JavaBeans 3.0 by Bill Burke & Richard Monson-Haefel
5 Security
EJB规范虽然规定了如何将安全信息从客户端传递到服务器,但是EJB规范并没有规定客户端如何取得安全信息,也没有规定如何进行验证。对于大多数应用服务器而言,JNDI验证是最为常见的一种方式。客户端在与JNDI InitialContext建立连接时进行验证,之后在调用远程EJB时,安全信息会传递到服务器并在服务器中进行传播。验证的执行过程是将一个或者多个角色与给定的用户进行关联。用户一旦通过了验证,应用服务器 ...
本文部分内容节选自Enterprise JavaBeans 3.0 by Bill Burke & Richard Monson-Haefel
4 Persistence
EJB支持声明性事务,事务传播行为可以由TransactionAttribute annotation或者XML配置文件指定。事务属性有下列可选值:NotSupported、Supports、Required、RequiresNew、Mandatory和Never(Srping多支持一个NESTED)。默认的事务属性是Required。
伴随着事务的传播,persistence contex ...