在Without Ejb第四章中有段对EJB的分布化和可扩展性的讨论:
在人们中间有一个广为传播的信念: 分布式应用系统是高度可扩展的.这种观点认为,可以使用4个web容器, 8个ejb容器所有的业务都通过web层远程调用.这样就可以得到非常好的扩展行.
然后作者在下文中批判了这种观点.每次远程方法调用造成的性能代价太过高昂,以至于在理论上还有什么 收益的化,早也被网络传输或对象编组中的损失给大大超过了. 作者建议的是对整个应用系统进行集群式部署. 然后在运用硬件负载均衡或web容器的负载均衡来分流访问.
集群是个诱惑的名字. 今天花了一上午了解了如何在Tomcat中实现集群. 还不错, 当在Tomcat官方网站上看了集群的文章时, 感觉并不是很难, Tomcat5.X已经把集群内嵌了.
配置也瞒简单的, Tomcat是用多波包(
multicast)的方式去发现其他的节点,其他节点回返回IP 和 端口, 以提供session的复制. 所以放在session里面的对象一定要实现序列化, 当在一定的时间内没有收到某个节点返回值时, 那个节点就判定死了. 还有就是要怎样实现load balancing , 你要怎样分发请求(request)到集群节点(Node)去, 这里也有许多方法, 我看的是用Servlet Filter去做这件事的(参考下面网站的例子).
集群能给我们带来很多好存, 性能的可扩展性, 可以关掉几台Node, 而系统不受影响.
今天在Javalobby看到一个关于集群的一个trick.
假如在一台node中的session中存有一个List对象.
如果你是这样使用的话,
List l = (List)session.getAttribute("list");
l.add("Denny");
这个session不会引发session复制. 所有你还需要把这个List set回session中.
If you have an ArrayList in the session representing shoppingcart objects and if you just call getAttribute() to retrieve theArrayList and then add or change something without calling thesetAttribute(……………) then the container may not know that you have addedor changed something in the ArrayList. So the session will not bereplicated.
ok 就讲这么多了.
官方指南
http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html
下面的这个不错, 带了一个例子, 自己实现了两个load balancing的算法. 用的是Filter
Clustering and Load Balancing in Tomcat 5, Part 1
http://www.onjava.com/pub/a/onjava/2004/03/31/clustering.html?page=1
Clustering and Load Balancing in Tomcat 5, Part 2
http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html?page=1
分享到:
相关推荐
Customer Segmentation and Clustering using SAS EM
Text Documents Clustering using K-Means Algorithm
利用谱聚类进行文档分类处理 讲述谱聚类的基本方法和应用
基于深度学习特征的人脸聚类,胡易,董远,本文提出了一种新的人脸聚类的方法,它包括两个部分: 特征提取和层次聚类. 针对特征提取,采用了卷积神经网络来提取出相比于传统��
基于最小生成树的半监督聚类算法,霍萌萌,刘阳阳,已知的多数半监督聚类算法依赖成对约束的方法提出。这些算法通常使用先验知识提高聚类精度。本文使用另一种叫做标签传播的半监督
藏经阁-Hierarchical clustering using spark.pdf
Neural Network Based Clustering using Self Organizing Map (SOM) in Excel,很不错的源码实例
Subspace clustering using a symmetric low-rank representation
Unsupervised, Auto K-Means Audio Clustering using Dynamic Weight Selection
2008-TSMC-Automatic Clustering Using an Improved Differential Evolution Algorithm.pdf
MATLAB codes for "An novel Spectral Clustering Algorithm Using Low-rank Approximation
Robust ensemble clustering using probability trajectories
MYDBSCAN:基于密度的聚类DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法的底层实现 MYAP:基于划分的聚类AP(Affinity Propagation Clustering Algorithm )算法的底层实现--近邻传播...
详细介绍了高效的K—匿名聚类技术,包括基本定义,算法等。
包含QT聚类的matlab程序,以及qt聚类原理说明。
多篇关于层次聚类的论文,打包下载,具有一定的学习价值
聚类算法,密度聚类,高效聚类,无监督聚类,快速聚类
为了提高传统CURE(clustering using representatives)聚类算法的质量,引入信息熵对其进行改进。该算法使用K-means算法对样本数据集进行预聚类;采用基于信息熵的相似性度量,利用簇中元素提供的信息度量不同簇...
轨迹聚类算法,先划分,后聚类,聚类算法是改进的DB-Scan;linux 编译,里面有Makefile
层次聚类算法描述