将现有的 JNDI HornetQ 服务作为 HA 的步骤?

DR

使用 HornetQ 设置配置 HA-JNDI 服务的步骤是什么?我觉得文件有点散乱。我已经通读了 给你文件,但似乎没有详细说明。

更长的版本:

因此,我们有一个 HornetQ JMS 设置与 JNDI 一起。我们有5台服务器,每台服务器上运行 HornetQJMS 主实例和 JNDI 服务。在这5台服务器中的每一台上,我们还有一个辅助实例,用于运行其他 HornetQ 主实例。

举例说明:

Server A - HornetQa_primary, JNDI, HornetQb_secondary
Server B - HornetQb_primary, JNDI, HornetQc_secondary
Server C - HornetQc_primary, JNDI, HornetQd_secondary
Server D - HornetQd_primary, JNDI, HornetQe_secondary
Server E - HornetQe_primary, JNDI, HornetQa_secondary

这些 HornetQ 服务器中的每一个都作为我们各种后端需求的中间件,这意味着5个服务器、5个 HornetQ 主实例、5个 HornetQ 辅实例和5个 JNDI 服务器。然而,这种设置的问题在于,如果一个服务器主机(不仅仅是进程,还有主机本身) ,比如说 A,出现故障,理想情况下,服务应该回退到运行在服务器 E 上的 HornetQ,该服务器承载着 A 的 HornetQ 辅助服务器。但是,要恢复为 HornetQ 主服务器,HornetQa _ second 需要与服务器 A 上运行的 JNDI 进程进行对话(我假设是为了复制消息)。由于主机 A 本身已经关闭,在 E 上运行的 HornetQa _ second 无法与 A 上的 JNDI 通信,因此不能作为主进程继续运行。

如果 JNDI 服务高度可用,次要 HornetQ 进程可以按预期恢复主要进程。有人能指出文档或者用简单的步骤说明我们如何将现有的设置转换为 HA-JNDI 吗?值得一提的是,我已经阅读了多个 消息来源,但它似乎没有详细说明如何配置 HA-JNDI。请让我知道,如果你需要更多的信息,我们目前的设置。

3092 次浏览

使用所描述的体系结构,对我来说似乎很困难,因为实际上您需要将从服务器重新配置为主服务器,然后您将遇到一定的故障。

HornetQ HA 是通过一个实时备份对提供的,负载平衡是 通过群集提供。

如果您同时想要 HA 和负载平衡,那么您将需要2 聚集在一起的实时备份对。

资料来源: https://developer.jboss.org/thread/254232

您可以不通过主机名而是使用 虚拟 IP 地址虚拟 IP 地址来引用主机,这样在主机宕机的情况下,您可以将其中一个从机重新配置为主机,并启动虚拟 ip,这样您就不必重新配置其余的从机。(为了在主服务器关闭时仍然保持 HA,您需要有2个从服务器,这样您可以重新启动其中一个从服务器作为主服务器,并且仍然有一个从服务器在运行)。

实现相同结果的另一种方法是使用特定于主机的 DNS 主机名,如果一台主机关机,则可以重新配置该主机名以指向不同的 IP。因为 DNS 是缓存的,所以这些条目最好放在“ hosts”文件中。

如果每个 HA 域有3个主机是太多的硬件,那么使用虚拟服务器可以更容易地实现这一点,而不需要购买更多的硬件。