Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
定制WebLogic';s心跳信息_Weblogic_Cluster Computing_Heartbeat - Fatal编程技术网

定制WebLogic';s心跳信息

定制WebLogic';s心跳信息,weblogic,cluster-computing,heartbeat,Weblogic,Cluster Computing,Heartbeat,我目前正在开发一个系统,以确保高性能、可用性和可扩展性;WebLogic集成场景中的故障转移和崩溃恢复 是否有人知道是否可以自定义WebLogic的本机心跳消息,以添加一些附加信息,例如当前CPU使用情况和/或网络负载 其目的是允许使用“自定义”信息的负载平衡算法,以避免服务器因更多请求而过载。据我所知,这是不可能的。首先,服务器实例使用心跳来通告其可用性(并且仅通告其可用性)(通过监视心跳消息,集群中的服务器实例确定服务器实例何时出现故障)。其次,WebLogic的算法是不可插入的,并且不使用

我目前正在开发一个系统,以确保高性能、可用性和可扩展性;WebLogic集成场景中的故障转移和崩溃恢复

是否有人知道是否可以自定义WebLogic的本机心跳消息,以添加一些附加信息,例如当前CPU使用情况和/或网络负载


其目的是允许使用“自定义”信息的负载平衡算法,以避免服务器因更多请求而过载。

据我所知,这是不可能的。首先,服务器实例使用心跳来通告其可用性(并且仅通告其可用性)(通过监视心跳消息,集群中的服务器实例确定服务器实例何时出现故障)。其次,WebLogic的算法是不可插入的,并且不使用心跳(至少不直接使用)

因此,您可以使用:

  • 使用代理插件时HTTP请求的循环负载平衡
  • 循环、基于权重(对于非同质集群)或EJB和RMI对象的随机负载平衡
如果您想对HTTP请求使用(更高级的)基于负载的平衡策略,则必须使用另一个支持此算法的解决方案—很可能是硬件负载平衡器


请注意,基于负载的策略不是我经常看到的,即使对于大型网站也是如此。大多数情况下,一个简单的循环算法提供了非常令人满意的请求分布,从而平衡了资源的利用。

我知道这一点,并且我已经在我的WebLogic集群上使用HttpClusterServlet实现了负载平衡解决方案(仅用于开发/登台阶段)。然而,这种负载平衡算法并没有我想要的那么丰富,因为我想分析集群服务器的CPU使用情况和网络接口负载,以立即确定哪台机器具有最高的可用性。您确定不能通过扩展本机心跳消息来实现这一点吗?@XpiritO好吧,扩展
HttpClusterServlet
实际上与上面的场景不可比,我甚至没有提到它,因为不建议在生产中使用此servlet。是的,我认为您无法扩展本机心跳消息。顺便问一下,你确定你真的需要一个基于负载的策略吗?这不是我十多年来不经常看到的…@Pascal我目前正在开发一个基础架构,以在WebLogic集群上提供高可用性、可扩展性、故障转移和负载平衡功能。主要目的是支持一系列流程来解析通过webforms和/或webservices提交的XML消息(一条消息可能包括若干其他XML消息和附件,如docx和pdf文件)。此系统必须准备好在不影响可用性的情况下处理巨大的负载峰值。@XpiritO那么,硬件负载平衡器可能适合您的情况。您是否计划对基础架构的原型进行基准测试?@Pascal我计划使用硬件解决方案(用于负载平衡)而不是Servlet(仅用于开发/登台阶段)。是的,我计划在完成解决方案的体系结构时对基础架构的原型进行基准测试。