问题标签 [failovercluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
msmq - MSMQ 服务在故障转移群集中不可用
我想集群我的服务,因为我的服务使用 msmq 服务,所以我还必须集群 msmq 服务。我成功创建了集群并将我的服务和 msmq 服务都添加为集群的资源,并且它们都已联机。那么问题来了,我的服务说msmq服务不可用。
集群 msmq 服务有一些技巧,比如我的服务应该勾选“计算机名的用户网络名称”选项,本地机器上的 msmq 服务应该以本地系统帐户运行等等。我遵循了所有这些提示,但我的服务仍然无法使用 msmq 服务。
有人有这东西的经验吗?我会非常感激。
.net - 用于主动/被动故障转移群集的 .NET 库
我想开发一个连接到一些输入源并处理它读取的消息的应用程序(原则上想想 BizTalk,但没有那么重)。为了性能和可靠性,我想启用服务的水平扩展,显然是通过利用共享存储(例如 DB)作为消息队列机制。
但是,访问电子邮件或磁盘文件夹等资源的线程无法水平扩展。一次只能运行一个实例,从该输入源读取数据。(进一步的消息处理业务逻辑当然可以驻留在多个节点上)。
这是主动/被动集群的理想选择。一个节点被认为是“主动的”并主动连接到“单实例”资源(例如电子邮件收件箱),而其他节点是“被动的”。如果“主动”节点死亡,那么其他“被动”节点会在它们之间选出一个新的“主动”节点。
现在的问题是:是否有一个 .NET 库可以帮助实现通常的故障转移集群逻辑?(即实现必要的心跳发送/检测,以及“活动”节点选举过程)。因为我不想重新发明轮子。
我可以从已经完成的研究中看到:
- BizTalk Server 本身支持此功能,但我没有使用 BizTalk,因为它太重且太贵(但我想模拟它的此功能)
- Windows Server 支持故障转移群集(在某些高端版本中,如 Windows Server 2008 Enterprise 或 Datacenter),但这又是一个昂贵的解决方案(因为每个节点都需要昂贵的许可证)
- 有很多关于故障转移算法应该如何工作的信息,但我在任何地方都看不到开源实现......(仅在以溢价出售的商业产品中)
我知道它可能被认为是先进和理想的功能,因此为什么它的商业解决方案很昂贵。这很好 - 如果那里没有开源实现或库,我将自己开发一个。我只是不想花费它已经存在的努力。
更新 12/02/2011:找到 SAForum ( http://www.saforum.org/link/linkshow.asp?link_id=214720 ),这是一个发布用于开发服务可用性概念的开放规范的网站。还有 OpenSAF ( http://www.opensaf.org/Welcome-to-OpenSAF%E2%84%A2~151213~14944.htm ),以及 SAForum 上规范的开源 C++ 实现。看起来很全面,但是很重。我将花费大量时间来浏览规范和文档。它还涵盖的不仅仅是故障转移,还为完全可扩展的分布式系统(通知、分布式事件、锁、集群管理等)提供规范……仍然没有任何地方实现 .NET 的迹象。
dns - MSFC“集群名称不在线”
我的实验室中有一个 microsoft 2008 故障转移集群,还有一个非生产性的 dns 服务器。不幸的是,我遇到了硬盘崩溃并从备份中恢复了我的集群。
但是现在,在集群管理器中,我总是看到集群名称不在线的消息。
在事件查看器中,我有五个错误 od 1207 的条目。我尝试了一切并授予权限。但它并没有解决很多重启后的问题。
那么,有没有办法修复 dns 条目或删除 dns 条目,集群可以从头开始创建条目?
感谢您阅读此 BR 弗兰克
c# - 确定 SQL Server 实例的当前所有者是通过使用 C# 询问故障转移群集管理服务
如何通过使用 C# 询问故障转移群集管理服务来确定 SQL Server 实例的当前所有者是谁?
这是在 SQL Server 2008 上。我配置了故障转移群集管理服务,我需要一种编程方式来确定当前所有者。
java - ActiveMQ:如何在使用临时队列时处理代理故障转移
在我的 JMS 应用程序中,我们使用生产者上的临时队列来接收来自消费者应用程序的回复。
我面临着与此线程中提到的完全相同的问题:http: //activemq.2283324.n4.nabble.com/jira-Created-AMQ-3336-Temporary-Destination-errors-on-HA-failover-in -broker-network-with-Failover-tt-td3551034.html#a3612738
每当我重新启动网络中的任意代理时,在尝试向临时队列发送回复时,我的消费者应用程序日志中都会出现许多类似的错误:
然后我看到加里的回应建议使用
作为客户端上的 url 参数brokerURL
。我立即使用这个附加参数更改了我的客户代理 URL。但是,现在当我在网络中重新启动代理以进行故障转移测试时,我看到了这样的错误:
我正在使用 ActiveMQ 5.5 版本。我的客户代理 URL 如下所示:
此外,这是我为 4 个代理之一的 activemq 配置 XML: amq1.xml
有人可以在这里调查这个问题并建议我在这个设置中犯了什么错误。
更新:
为了进一步阐明我如何在我的代码中进行请求响应:
- 我已经使用了每个生产者目的地(即临时队列)并将其设置在每条消息的回复标头中。
- 我已经在 JMSCorrelationID 标头中发送了每条消息的唯一相关标识符。
- 据我所知,甚至 Camel 和 Spring 也在使用临时队列来实现请求-响应机制。唯一的区别是 Spring JMS 实现为每条消息创建和销毁临时队列,而我为生产者的生命周期创建临时队列。当客户端(生产者)应用程序关闭时,该临时队列将被销毁,或者当 AMQ 代理意识到此临时队列没有附加活动生产者时,它会被销毁。
- 我已经在生产者端的每条消息上设置了一个消息过期,这样消息就不会在队列中停留太久(60 秒)。
sql-server - 为什么我的 SQL Server 集群每分钟执行一次“SELECT @@SERVERNAME”?
当我在我们的 SQL Server 集群上运行 Profiler 跟踪时,我注意到它每分钟执行一次“SELECT @@SERVERNAME”。我一直认为故障转移群集服务对其进行了处理,或者只是使用它来确认网络名称和 IP 组合设置是否正确。这不会在我的非集群实例上每分钟都发生,只会在属于故障转移集群的那些实例上发生。
更令人好奇的是,我使用 sp_dropserver/sp_addserver 覆盖了集群实例的名称,并且根本没有任何不良影响 - 即使集群实例名称与预期的网络/实例组合不匹配,集群manager 和 SQL Server 对此似乎完全没有问题。
这只是双重地引出了一个问题——如果你不打算对它做任何事情,为什么还要不断地查询它?有人能解释一下这里的管道吗?
rabbitmq - 在使用复制队列确认集群中的消息时,来自 RabbitMQ 的“未知传递标签”
我们已经成功使用 Rabbit 大约一年了。最近升级到 v2.6.1,因为我们想使用带有复制消息队列的集群。
我的测试遇到了一个令人费解的行为,对我来说闻起来像兔子虫。揭示这一点的测试正在使用一个双节点集群。两个节点都运行 v2.6.1。两个节点都有磁盘。两个节点都在 Mac OS 上运行,尽管我怀疑这是否相关。
我还在运行测试的节点上运行 Alice。该测试使用它以编程方式在其中一个节点上执行 stop_app,因为该测试试图验证如果集群主节点失败,并且从节点被提升以取代它,我们不会丢失消息。
因此,测试有一个小线程池,它被赋予周期性的任务 1) 发布消息,以及 2) 切换 Rabbit 主节点的状态(如果运行则停止;如果停止则启动)。其他线程正在使用来自队列的消息。
我正在使用发布者确认,并且我也在确认消费者中的消息(对 channel.basicConsume() 使用 autoAck=false)。
当主节点停止时,我看到生产者和消费者都捕获了 ShutdownSignalException。他们通过尝试重新连接到集群来处理这个问题。这工作正常。重新连接后,他们继续他们的业务。
有时,我看到消费者已成功从代理获取消息,并在收到 ShutdownSignalException 时调用 channel.basicAck()。
稍后,当消费者重新连接时,它再次拉下相同的消息。(消息体用 UUID 标记,所以我知道它是同一个。)这一次,当消费者尝试 basicAck() 消息时,它再次得到 ShutdownSignalException,但是这个包含以下文本:“回复文本 = PRECONDITION_FAILED - 未知交付标签 7"。
事实上,这与在主服务器宕机和消费者重新连接之前代理提供给消费者的交付标签相同。
谷歌搜索表明此事件意味着消费者正在尝试多次确认同一消息。
但是,怎么会这样呢?如果第一次确认成功,则消息应该已从代理的队列中删除,并且消费者不应再次看到相同的消息。
然而,如果第一次确认没有成功,那么消费者不应该因为试图重新确认消息而受到指责。
有人见过这个吗?对我来说,这闻起来像是 Rabbit 复制队列中的一个错误,但我对 Rabbit 还是陌生的,因此我愿意相信从我尚未了解的集群代理中消费的微妙之处!
谢谢,--史蒂夫
java - Java的分散式聚类库
我正在尝试开发一个基于网络安全分散复制的分布式系统。我正在寻找具有以下要求的 java 库:
库应该能够以分散的方式初始化 n 个节点(没有主节点或从节点)。它应该能够在启动时从网络故障中恢复。例如:我尝试启动一个有 5 个节点的网络,但只有 3 个启动。
一旦初始化,它应该能够检测到节点丢失,通知用户,以便用户可以在应用程序前端采取一些补救措施并从中恢复。我不担心任何新节点或故障节点再次加入集群。但如果它也支持这一点,那就太好了。
它应该允许 P2P 通信。如果它能够同时支持高效的 P2P 和组播,那就太好了。
允许在 Aleph 中的节点之间发送 Runnable 消息和可序列化对象。Alepha 很好,它不支持节点故障/恢复。
基本上,我将根据活动节点列表创建节点的动态仲裁,并在不同的仲裁上复制对象。我的框架将允许用户谈论这些法定人数并访问对象。如果节点发生故障,我需要使用新的活动节点列表重建仲裁。我想专注于仲裁算法并在网络功能上节省能源。请为此目的推荐一些合适的库。如果您也知道任何类似的仲裁解决方案,请也参考一下。
session - tomcat集群是会话复制的唯一方法吗?
我在使用 apache 作为前端负载均衡器的 ubuntu 服务器上进行Tomcat Clustering
了测试。session replication
根据我的测试经验,我说最好不要使用 tomcat 集群,而是将每个节点作为独立运行,在没有任何会话复制的情况下彼此不认识,因为我觉得它很慢,启动 tomcat 服务需要很多时间并且消耗更多内存。并且FarmDeployer
在部署中并不总是可靠的,整个配置应该放在<Host></Host>
农场部署者工作的元素下,也适用于每个虚拟主机,因此是一个巨大的 server.xml 文件。下面是来自我使用的节点之一的具有集群配置的 tomcat 虚拟主机。
Tomcat 集群是否适合在生产环境中使用,或者是否有任何替代方法用于会话复制?或者我在上述配置中遗漏了任何可以微调的东西?
欢迎任何想法。谢谢!
glassfish-3 - Glassfish 3.1.1 集群会话复制
我在 Glassfish 3.1.1 开源版本上遇到了会话复制问题。集群中包含两台物理服务器。第一个有 DAS 和实例 1。第二个物理服务器上有实例 2。两台服务器都运行 Windows 7 x64。我正在关注本教程:
http://javadude.wordpress.com/2011/05/12/glassfish-3-1-%E2%80%93-clustering-tutorial-part2-sessions/
据我了解,当我访问两个物理实例的 Web 应用程序时,会话复制工作时应该有相同的会话。因此,当我登录实例 1 时,我也应该自动登录实例 2。这是正确的吗?
有谁知道如何解决这个问题?
提前致谢。