标签: failover

如何使用 ASP.Net 集群上传文件夹?

我们有一种情况,允许用户上传内容,然后单独进行一些更改,然后根据这些更改提交表单。

这在单服务器、非故障转移环境中工作得很好,但是我们需要某种解决方案来在支持故障转移的服务器之间共享文件。

过去有人遇到过这个吗?您能够开发出什么样的解决方案?显然,持久化到数据库是一种选择,但我们宁愿避免这种情况。

asp.net failover iis-6 cluster-computing windows-server-2003

5
推荐指数
1
解决办法
755
查看次数

mod_proxy 超时 (502) 和故障转移

因此,我们正在运行一个由 2 个以上后端服务器(恰好是 JBoss 服务器)组成的集群,这些服务器由 Apache 2.2 进行负载平衡。有时,后端服务器可能会变得无响应(这意味着它们将等待很长时间才能回复请求,但不会立即关闭连接)。这自然会导致 502“Bad gateway”错误。我对负载均衡器的理解是,它应该进行故障转移并将请求重定向到其余实例。

我已经看到平衡器的节点可以进入错误状态,但永远无法强制将其发送到该状态(即在遇到第一个 502 后执行此操作)。我错过了什么还是这只是我想要的功能?哦,这是我的配置:

<Proxy balancer://s>
    Order deny,allow
    Allow from all

    BalancerMember http://host1:8080/ route=h1 timeout=20 retry=40
    BalancerMember http://host2:8080/ route=h2 timeout=20 retry=40
</Proxy>

# Distribute by Round Robin, use Sticky Sessions
ProxyPass / balancer://s/ stickysession=JSESSIONID lbmethod=byrequests nofailover=On
ProxyPassReverse /  http://host1:8080/
ProxyPassReverse /  http://host2:8080/
Run Code Online (Sandbox Code Playgroud)

最好的,塞巴斯蒂安

failover load-balancing apache2 mod-proxy

5
推荐指数
1
解决办法
3479
查看次数

我可以在没有镜像的情况下在我的 SQL 连接字符串中使用故障转移伙伴吗?

我承认我有点吝啬,但我不想为通过镜像获得 SQL Server 自动故障转移所需的三台服务器而生,特别是因为三台服务器中的一台除了作为见证服务器之外什么都不做。

如果我设置了从主服务器到备份服务器的正常 SQL 复制(比如快照),我是否可以在我的 ASP.NET 应用程序中设置我的连接字符串以包含“故障转移伙伴=备份”?似乎客户端上的 ADO.NET 应该只尝试主服务器,然后在主服务器不可用时故障转移到备份服务器。

或者这只适用于镜像?

(我喜欢镜像的想法,但是如果您不想为见证服务器付费,则必须手动将备份服务器切换为主服务器。)

谢谢!

sql-server replication failover mirroring

5
推荐指数
1
解决办法
6799
查看次数

Hazelcast 故障转移和备份

Hazelcast 文档指出

如果一个成员宕机,它的备份副本也包含相同的数据,将动态地重新分配数据,包括所有权并锁定它们到剩余的活动节点。因此,不会丢失任何数据。

几个问题

a) 如果为集群中的一个成员配置了 1 的备份,那么这是否意味着集群中只有 1 个成员拥有该成员的备份?或者是否有备份的备份?

b) 所以给定 a) 如果成员及其备份都出现故障,那么数据会丢失吗?

c) 如果存在直写策略并且成员及其备份都出现故障并且有数据丢失,那么是否存在动态恢复数据的机制(使用直写机制或其他机制)?

提前致谢

failover hazelcast

5
推荐指数
1
解决办法
4630
查看次数

RabbitMQ 和 Node.js 如何处理故障转移场景?

我正在使用 RabbitMQ(集群)并使用 Node.js 客户端(node-amqp - https://github.com/postwait/node-amqp)连接到它。RabbitMQ 文档指出,处理故障转移场景(集群节点故障)应该由客户端处理,这意味着客户端应该检测到故障并连接到集群中的另一个节点。支持这种故障转移平衡的最简单方法是什么。node-amqp 客户端支持这个吗?任何示例或解决方案将不胜感激。

谢谢。

failover amqp rabbitmq node.js node-amqp

5
推荐指数
1
解决办法
893
查看次数

配置 GlassFish JDBC 连接池以处理 Amazon RDS 多可用区故障转移

我有一个在 EC2 上的 GlassFish 中运行的 Java EE 应用程序,在 Amazon RDS 上有一个 MySQL 数据库。我正在尝试将 JDBC 连接池配置为,以便在发生数据库故障转移时最大限度地减少停机时间。

我的当前配置在多可用区故障转移期间无法正常工作,因为备用数据库实例似乎在几分钟后可用(根据 AWS 控制台),而我的 GlassFish 实例长时间保持卡住(大约 15 分钟) ) 在恢复工作之前。

连接池配置如下:

asadmin create-jdbc-connection-pool --restype javax.sql.ConnectionPoolDataSource \
--datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource \
--isconnectvalidatereq=true --validateatmostonceperiod=60 --validationmethod=auto-commit \
--property user=$DBUSER:password=$DBPASS:databaseName=$DBNAME:serverName=$DBHOST:port=$DBPORT \
MyPool
Run Code Online (Sandbox Code Playgroud)

如果我使用可用区 db.m1.small 实例并从控制台重新启动数据库,GlassFish 将使断开的连接无效,抛出一些异常,然后在数据库可用时立即重新连接。在此设置中,我的停机时间不到 1 分钟。

如果我使用可用区 db.m1.small 实例并从 AWS 控制台通过故障转移重新启动,我看不到任何异常。服务器完全停止,所有传入请求都超时。15分钟后,我终于明白了:

Communication failure detected when attempting to perform read query outside of a transaction. Attempting to retry query. Error was: Exception …
Run Code Online (Sandbox Code Playgroud)

mysql failover jdbc glassfish amazon-rds

5
推荐指数
1
解决办法
2697
查看次数

从 powershell 向集群添加通用服务

我是集群的新手,我正在尝试使用 PowerShell 为集群创建通用服务。我可以使用 GUI 添加它而不会出现任何问题,但由于某种原因,我无法从 PowerShell 添加它。

按照Add-ClusterGenericServiceRole文档中的第一个示例,我尝试了以下命令:

Add-ClusterGenericServiceRole -ServiceName "MyService"
Run Code Online (Sandbox Code Playgroud)

这会引发以下错误:

Static network was [network range] was not configured. Please use -StaticAddress to use this network or -IgnoreNetwork to ignore it. 
Run Code Online (Sandbox Code Playgroud)

网络和我的服务之间有什么联系?为什么从 GUI 创建它时不需要这些细节?

我还尝试了另一种方法,使用以下方法创建资源:

Add-ClusterResrouce -Name MyService -ResourceType "Generic Serice"
Run Code Online (Sandbox Code Playgroud)

此命令成功,但我在 GUI 中注意到 ServiceName 为空,因此无法启动实际服务。如果我能以某种方式更改 ServiceName 属性,它应该可以解决问题。同样,在 PowerShell 中,我尝试了以下操作:

$resource = Get-ClusterResrouce "MyService"
$Resource.ServiceName = "Actual name of service" //property ServiceName cannot be found on this object.
Run Code Online (Sandbox Code Playgroud)

我已经挣扎了几个小时,但没有运气。我缺少一些基本的东西吗?我认为这不应该像看起来那么复杂。

generics powershell service failover cluster-computing

5
推荐指数
1
解决办法
3766
查看次数

LettuceConnectionFactory 与 SentinelTopologyProvider

我通过 spring boot API 使用生菜org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory

我的bean配置为

@Bean
public LettuceConnectionFactory lettuceSentinelConnectionFactory() {
        RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration(mastername, new HashSet<>(sentinelnodes));
        return new LettuceConnectionFactory(sentinelConfig);
    }
Run Code Online (Sandbox Code Playgroud)

这工作正常,除了拓扑更改后重新连接导致异常之外。

io.lettuce.core.RedisCommandExecutionException: READONLY You can't write against a read only slave.
Run Code Online (Sandbox Code Playgroud)

一些错误报告似乎证实了这种行为

我怀着极大的兴趣读到 Lettuce 为哨兵SentinelTopologyProvider实现了一个动态拓扑发现器,它应该可以优雅地解决这个问题。

但是我无法让 LettuceConnectionFactory 使用这个动态 SentinelTopologyProvider,并且谷歌搜索也没有返回任何内容。

任何人都可以提供有关如何编写此代码的提示或一些示例代码吗?

failover redis sentinel lettuce

5
推荐指数
0
解决办法
471
查看次数

在 AWS ECS 服务中管理 Docker 容器的最佳实践

技术栈

Python (Monolith API) - Flask 框架 PostgreSQL

我们已经部署了docker容器如下

  • Docker 镜像存储在 ECR 中
  • Docker容器部署在ECS中
  • 总共 25 个 docker 容器部署在 3 个 R5 大型 EC2 实例(2 个 vCPU,16 GB)中
  • 1024/3072 最小和最大内存分配给每个容器,因此每个 EC2 实例可容纳 15 个容器

我们现在面临 OOM(内存不足)问题的停机时间,然后给定 EC2 实例中的容器开始移动到另一个 EC2 实例,当由于某种原因第三个 EC2 实例不可用时会发生这种情况,所以直到第二个实例启动并运行,我们面临着给定容器集的停机时间。

所以想检查我们使用的策略是否正确?

我们现在还计划让小型 EC2 实例持有较少数量的容器,因此如果发生问题,那么至少有少量站点关闭,而不是所有 15 个站点都关闭,我们是否朝着正确的方向前进?

我们应该搬到 Fargate 吗?与使用 ECS 相比,成本影响是什么?

如果有人帮助我为此类问题找到完美的解决方案,那就太好了。

在不久的将来,我们将拥有 100 秒的容器,并且可能会达到 500 秒,因此我们必须决定部署、故障转移、高可用性的最佳策略。

failover high-availability amazon-web-services amazon-ecs aws-fargate

5
推荐指数
1
解决办法
557
查看次数

Microsoft C# .NET YARP 504 网关错误和故障转移

我使用 Microsoft C# .NET YARP作为 ASP.NET Core Web API(最新版本)以及 Swagger 和 Kestrel 前面的 API 网关。YARP 用于到许多微服务的内部重定向。

问题:

  1. 对于执行超过大约 504 的请求,我面临 504 http API 网关错误。距 swagger UI 2 分钟。如何设置更长的超时时间?

例如:https://URL/swagger/index.html => 执行 POST FUNCTION => YARP_API_GATEWAY => SERVICE_API_PORT

  1. 如果内部服务目标(端点)因任何原因关闭,如何将“故障转移”配置到另一个目标?

前任。配置:

   "ReverseProxy": {
    "Routes": [
      {
        "RouteId": "Service1",
        "ClusterId": "ServiceCluster1",
        "Match": {
          "Path": "/api/Action1/{**rest}"
        },
        "Transforms": [
          { "RequestHeadersCopy": "true" },
          { "RequestHeaderOriginalHost": "true" }
        ]
      },
      {
        "RouteId": "Service2",
        "ClusterId": "ServiceCluster2",
        "Match": {
          "Path": "/api/Action2/{**rest}"
        },
        "Transforms": [
          { "RequestHeadersCopy": …
Run Code Online (Sandbox Code Playgroud)

c# failover api-gateway ms-yarp

5
推荐指数
1
解决办法
2457
查看次数