在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
分享到:
相关推荐
1. **聚类算法**:常见的聚类算法有K-means、层次聚类(Hierarchical Clustering)、DBSCAN等。其中,K-means算法因其简单易用且效率较高而被广泛应用于商业领域。 2. **评估指标**:为了评价聚类效果的好坏,可以...
文本文档聚类是数据挖掘和自然语言处理领域中的一个重要任务,它旨在将大量无结构的文本数据分成不同的组,使得同一组内的文档相似度较高,而不同组间的文档相似度较低。K-Means算法是一种广泛应用的无监督学习方法...
在这个“Neural Network Based Clustering using Self Organizing Map (SOM) in Excel”的例子中,我们将探讨如何在Excel环境中利用SOM进行数据分类。 SOM的基本原理是通过竞争学习机制,将高维度输入数据映射到二...
总的来说,"An novel Spectral Clustering Algorithm Using Low-rank Approximation"提供了一种有效且灵活的方法,通过结合谱聚类和低秩近似技术,能够处理大规模数据集并提升聚类的准确性和效率。通过MATLAB代码...
2008-TSMC-Automatic Clustering Using an Improved Differential Evolution Algorithm.pdf
为了解决这个问题,文中提出了基于Spark的并行化实现——SHAS(Single-linkage Hierarchical Clustering Algorithm using Spark)。 SHAS算法利用Spark的分布式计算模型,将数据集划分为若干小部分,分别计算每个...
本文档探讨了一种名为“无监督自动K-Means音频聚类使用动态权重选择”(Unsupervised, Auto K-Means Audio Clustering using Dynamic Weight Selection)的技术方法。该技术旨在解决音乐特征提取、数据预处理以及...
QT聚类,全称为Quality Threshold Clustering,是一种无监督学习的聚类算法,主要用于数据集的划分,将相似的数据点归为一类。该方法在处理高维数据或大规模数据集时,表现出一定的优势,因为它不需要预先设定聚类的...
层次聚类(Hierarchical Clustering)是数据挖掘和统计分析中的一个重要方法,它通过构建一个树状结构(也称为 dendrogram)来展示数据点之间的相似性或距离关系。在这个树形结构中,每个叶节点代表一个原始数据点,...
title = {Efficient Parameter-free Clustering Using First Neighbor Relations}, booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, pages = {89
《基于对称低秩表示的子空间聚类》(LRRSC) 子空间聚类是一种在高维数据中寻找潜在结构的重要方法,尤其在计算机视觉、图像处理和机器学习领域广泛应用。通过对数据进行聚类,我们可以揭示数据内在的低维结构,这...
MYDBSCAN:基于密度的聚类DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法的底层实现 MYAP:基于划分的聚类AP(Affinity Propagation Clustering Algorithm )算法的底层实现--近邻传播...
DB-Scan(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的空间聚类算法,它能够发现任意形状的聚类,并且对噪声数据不敏感。在轨迹聚类中,DB-Scan可以通过考虑轨迹之间的距离和...
### 基于概率轨迹的鲁棒集成聚类方法 #### 概述 本文提出了一种基于稀疏图表示和概率轨迹分析的新型集成聚类方法。该方法旨在解决现有集成聚类方法中存在的两个主要限制:一是忽视了不确定性链接的问题,这可能会...
### 高效k-匿名化使用聚类技术 #### 概述 本文深入探讨了一种高效k-匿名化的实现方法,特别关注了如何利用聚类技术来最小化数据修改过程中的信息损失,同时确保数据隐私的安全性。k-匿名化是一种重要的数据隐私...