【问题标题】:AWS Elasticache Redis as SignalR BackplaneAWS Elasticache Redis 作为 SignalR 背板
【发布时间】:2018-07-22 02:25:51
【问题描述】:

是否有人尝试连接 AWS Elasticache Redis(已禁用集群模式)以与 SignalR 一起使用?我发现 AWS Redis 存在一些严重的配置问题和限制。

1) 我们正在尝试使用 Redis 作为 Signalr 的背板,

//GlobalHost.DependencyResolver.UseRedis("xxxxxx.0001.use1.cache.amazonaws.com:6379", 6379, "", "Performance");

根据文档,它必须像这样简单,当我尝试连接时,我在 Ping 上遇到套接字故障。 (我在 Windows azure 上看到过有关此的帖子,但找不到任何有关 AWS 的帮助文章)

2) 是否必须启用集群模式?与禁用集群模式一样,我们需要使用副本端点进行读取,而信号器不知道这一点?

提前致谢。

【问题讨论】:

  • 请尝试针对特定问题提出特定问题。这个问题太宽泛了;见stackoverflow.com/help/how-to-ask
  • 它更新了,如果它仍然太宽泛,请告诉我,谢谢!

标签: amazon-web-services redis signalr amazon-elasticache signalr-backplane


【解决方案1】:

此注释 (https://docs.microsoft.com/en-us/aspnet/signalr/overview/performance/scaleout-with-redis) 说“带有 Redis 的 SignalR 横向扩展不支持 Redis 集群。”。

另外,也许从服务器中删除“:6379”并且端口中只有6379?

【讨论】:

  • 谢谢,我想这回答了我的第二个问题。我仍然无法连接到 AWS Redis。
  • 也许从服务器中删除 ":6379" 并且端口中只有 6379?
  • 谢谢卡尔,我什至试过了。根据 AWS 文档,我们需要在端点中包含“:6379”才能访问节点。到目前为止我唯一的想法是文档说写入和读取的端点不同,但是在配置时我们只使用仅用于写入操作的主要端点。
【解决方案2】:

我们最终通过移除集群并制作独立的 AWS Redis 解决了问题。

我们遇到的另一个问题是分配给了错误的安全组,因此我们已将其更改为与我们的 EC2 实例相同的安全组。

您仍然需要在访问数据库时包含“:6379”。

但是,如果您使用 signalr 的依赖关系解析器,则不应包含“:6379”作为访问点,但如果您使用 redis 使用 StackExchange.Redis 进行读写操作,则需要包含“:6379”在请求中。

【讨论】:

  • 嗨詹姆斯。 Aws Redis 似乎默认创建 3 台服务器,而不是集群服务器。这是您所做的并且工作正常吗?你最后是否包括:6379?谢谢
  • @timk 我目前不确定 AWS redis 的配置,但是是的:6379 是连接字符串的一部分,它可以工作。
  • 我们经常看到 Signalr 调用 AWS Redis 背板的超时异常。见过这些吗?
猜你喜欢
  • 2017-01-27
  • 2021-07-13
  • 2019-11-28
  • 2020-04-30
  • 2017-01-12
  • 1970-01-01
  • 2019-09-12
  • 2016-05-21
  • 1970-01-01
相关资源
最近更新 更多