我正在构建一个内容服务应用程序,该应用程序由两种类型的节点(ContentServers 和 ContentBuilders)组成的集群。
我们的想法是始终提供新鲜的内容。如果内容是最近构建的,则内容是新鲜的,即 Content.buildTime < MAX_AGE。
要求:
*ContentServers 只需要查找内容并提供它(例如从分布式缓存或类似的),除了对每个内容项的第一次请求外,无需等待任何内容的构建。
*ContentBuilders 应该是负载平衡的,应该在内容到期之前重建内容,应该只构建实际被请求的内容。构建的内容应该可以被所有 ContentServer 快速检索
我应该使用什么架构?我目前正在考虑一个分布式缓存(也许是 EhCache)来保存构建的内容和一个消息队列(也许是 JMS/ActiveMQ)来将内容请求中继给构建器,尽管我会考虑任何其他选项/建议。我如何确定 ContentBuilders 不会同时构建相同的东西,并且只会在内容接近到期时构建内容?
谢谢。