当前位置: 首页 > 面试题库 >

Java对应用程序进行网格/集群启用的最佳库是什么?

终波涛
2023-03-14
问题内容

这种功能可以在服务器群集上运行应用程序,以分配负载并提供额外的冗余。

我看过GridGain的演示文稿,对此印象深刻。

认识其他人吗?


问题答案:

有几个:

  • Terracotta(开源,基于Mozilla Public License);
  • Oracle Coherence(以前是Tangosol Coherence;商业;基于JSR 107,从未正式采用);
  • GigaSpaces(商业;基于JavaSpaces API(Jini的一部分));
  • 您提到的GridGain(开源:LGPL);
  • 使用Java客户端库进行内存缓存(开源:BSD许可证;
  • EHCache(开源:Apache软件许可;
  • OSCache(开源:修改后的Apache许可;以及
  • 毫无疑问,还有其他几个。

现在我还没有使用所有这些,但是我已经使用或研究了其中大多数。

GridGain和GigaSpaces
比网格更注重网格计算,并且(imho)比数据网格更适合计算网格(请参阅此计算与数据网格的说明)。我发现GigaSpaces是一项非常有趣的技术,它具有多个许可选项,包括免费版本和面向初创企业的免费完整版本。

Coherence和Terracotta尝试将缓存视为Maps,这是一个相当自然的抽象。我已经使用了很多Coherence,这是一款出色的高性能产品,但并不便宜。我不太熟悉的兵马俑。我有时会缺少有关Coherence的文档,但它确实是功能强大的产品。

OSCache我主要用作减少JavaWeb应用程序中内存使用和碎片的一种方法,因为它具有相当整齐的JSP标签。如果您曾经看过已编译的JSP,您会发现它们执行了许多String串联。这个标记使您可以有效地将JSP代码和HTML的结果缓存到单个String中,这在某些情况下可以极大地提高性能。

EHCache是​​一个简单的缓存解决方案,我也在Web应用程序中使用过。绝对不要作为分布式缓存,但是它可以做到。我倾向于将其视为快速而肮脏的解决方案,但这也许是我的偏见。

memcached在PHP世界中尤为流行(并被Facebook等网站所使用)。这是一个非常轻便的解决方案,它的优点是它不会在同一过程中运行,而且如果对您而言很重要,那么您将拥有与其他技术堆栈更好的互操作性选项。



 类似资料:
  • 问题内容: 我想在Windows 7上发布Java GUI应用程序。该应用程序正在使用Swing Toolkit,并且不需要任何本机代码。使用NSIS安装程序安装该应用程序。我想将此应用程序尽可能地集成到Windows 7中。这表示: 当应用程序运行时,必须可以将应用程序固定到任务栏。 必须有可能将数据文件与应用程序关联,以便Windows用我的应用程序打开这些文件。 必须自动与32位Java运行

  • 问题内容: Java是我选择的编程语言之一。尽管将应用程序分发给最终用户,但我总是遇到问题。 为用户提供JAR并不总是像我想要的那样友好,并且使用Java WebStart要求我维护Web服务器。 分发Java应用程序的最佳方法是什么?如果Java应用程序需要在用户计算机上安装工件,该怎么办?有没有好的Java安装/打包系统? 问题答案: 有多种解决方案,取决于你的发行要求。 只是用一个jar。这

  • 问题内容: 我正在研究可用于Java Web应用程序的最佳免费邮件库。它具有更多的支持并且易于使用。如果它很复杂,但可以通过其出色的功能证明其合理性,那就可以了。 有什么建议吗? 问题答案: “最佳”是主观的,尤其是因为您没有指定可能需要的任何特定功能。 话虽如此,以下是几个让您入门的方法: 简单Java邮件 -建立在JavaMail之上,简化了API以产生正确的电子邮件 Commons Emai

  • 问题内容: 我正在搜索Java库以解析XML(复杂的配置和数据文件),我用Google搜索了一下,但除了dom4j之外都找不到(似乎他们正在V2上工作)。不喜欢它,其他有关XML的Apache项目似乎处于hibernate状态。我还没有独自评估dom4j,只是想知道-Java是否有其他(良好)开源xml解析库?您对dom4j的体验如何? 在@Voo回答之后,让我再问一个-我应该使用Java的内置类

  • 我们正在Kubernetes上以应用程序模式运行Flink作业,问题是当作业完成/停止时,作业管理器容器将退出,但1。任务管理器2的部署。作业管理器服务3。除非我们运行kubectl delete来清理它,否则configMap仍然存在。 如果我们手动停止作业,这没什么大不了的,但是如果我们的Flink作业是一个批处理作业,稍后会完成,这意味着我们需要一个外部服务来保持监控作业管理器容器并在完成后

  • 我有Kerberos并启用了Hadoop集群。我需要使用Java代码执行HDFS操作。 多谢了。