我们在Glassfish应用服务器群集上运行了一个基于Java EE的Web应用程序。传入流量主要是对我们的应用程序资源的基于XML表示形式的RESTful请求,但是可能有5%的流量可能是针对基于JSON或XHTML / CSS的表示形式。
现在,我们正在研究负载平衡解决方案,以在群集中的Glassfish实例之间分配传入流量。我们还在研究如何使用memcached卸载群集,memcached是一种内存中的分布式哈希图,其键将是REST资源名称(例如,“ / user / bob”,“ / group / jazzlovers”),其值为相应的XML表示形式。
听起来很有希望的一种方法是用一块石头杀死两只鸟,并使用轻量级的快速nginx HTTP服务器/反向代理。Nginx将通过首先在memcached中查找其URI来处理每个传入请求,以查看是否已经存在未到期的XML表示形式。否则,nginx将请求发送到其中的Glassfish实例之一。在这篇简短的文章中描述了nginx memcached模块。
使用这种方式对nginx和memcached的总体印象是什么,您对它们有多满意?您发现哪些资源最有助于他们的学习?如果您尝试了它们,但它们不符合您的目的,为什么不这样做?您使用了什么呢?
注意:这是一个相关的问题。在我了解ServerFault之前,我曾在StackOverflow上问过这个问题。
编辑:尽管没有直接的经验,到目前为止,这里所有的答案都非常有帮助。这个答案最终确实出现在StackOverflow上,并且对nginx / memcached设置相当看好。