У нас есть текущий экземпляр Azure Premium, работающий без проблем со скоростью около 1 тыс. операций в секунду.
Мы создали новый управляемый экземпляр Redis Azure. Мы наивно полагали, что простое обновление строки подключения позволит нам легко перемещаться, но не можем заставить это работать. Мы получаем следующие ошибки:
The message timed out in the backlog attempting to send because no connection became available (5000ms) - Last Connection Exception: It was not possible to connect to the redis server(s) REDACTED/Subscription. ConnectTimeout, command=SUBSCRIBE, timeout: 5000, inst: 0, qu: 0, qs: 0, aw: False, bw: SpinningDown, rs: NotStarted, ws: Idle, in: 0, last-in: 0, cur-in: 0, sync-ops: 1, async-ops: 1, serverEndpoint: REDACTED, conn-sec: n/a, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: REDACTED(SE.Redis-v2.10.1.65101), IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=2,Free=32765,Min=2,Max=32767), v: 2.10.1.65101 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackEx ... s/Timeouts)
at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server, T defaultValue) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2110
at StackExchange.Redis.RedisSubscriber.Subscribe(RedisChannel channel, CommandFlags flags) in /_/src/StackExchange.Redis/RedisSubscriber.cs:line 416
It was not possible to connect to the redis server(s) REDACTED/Subscription. ConnectTimeout
Ранее мы пытались обновить наш экземпляр Premium Redis до Enterprise, но столкнулись с аналогичными проблемами. Я полагаю, что управляемые экземпляры Redis также являются корпоративными, поэтому мне интересно, есть ли какие-то проблемы с тем, как мы подключаемся к Redis. Наш класс для получения соединения Redis выглядит следующим образом:
private static ConcurrentDictionary Connections;
[UsedImplicitly]
public static void Initialize(ConnectionSettings settings)
{
ConnectionSettings = settings;
Connections = new ConcurrentDictionary();
for (var i = 0; i < settings.RedisConnectionPoolCount; i++)
{
Connections.TryAdd(i, new Lazy(() =>
ConnectionMultiplexer.Connect(settings.ConnectionString)));
}
}
public static IDatabase GetDatabase()
=> GetConnection().GetDatabase();
private static bool AllLazyConnectionsLoaded;
private static object InitConnectionLock => new();
private static IConnectionMultiplexer GetConnection()
{
if (!AllLazyConnectionsLoaded)
{
lock (InitConnectionLock)
{
if (!AllLazyConnectionsLoaded)
{
var loadedLazyCount = Connections.Count(lazy => lazy.Value.IsValueCreated);
if (loadedLazyCount == Connections.Count)
{
AllLazyConnectionsLoaded = true;
}
else
{
return Connections.First(lazy => !lazy.Value.IsValueCreated).Value.Value;
}
}
}
}
var connectionID = FastConnectionPicker.GetRandomConnectionID(Connections.Count);
return Connections[connectionID].Value;
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... ure-manage
Тайм-аут StackExchange.Redis при переходе с Azure Premium Redis на управляемый Azure (не с Enterprise на Enterprise) ⇐ C#
Место общения программистов C#
1765882927
Anonymous
У нас есть текущий экземпляр Azure Premium, работающий без проблем со скоростью около 1 тыс. операций в секунду.
Мы создали новый управляемый экземпляр Redis Azure. Мы наивно полагали, что простое обновление строки подключения позволит нам легко перемещаться, но не можем заставить это работать. Мы получаем следующие ошибки:
The message timed out in the backlog attempting to send because no connection became available (5000ms) - Last Connection Exception: It was not possible to connect to the redis server(s) REDACTED/Subscription. ConnectTimeout, command=SUBSCRIBE, timeout: 5000, inst: 0, qu: 0, qs: 0, aw: False, bw: SpinningDown, rs: NotStarted, ws: Idle, in: 0, last-in: 0, cur-in: 0, sync-ops: 1, async-ops: 1, serverEndpoint: REDACTED, conn-sec: n/a, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: REDACTED(SE.Redis-v2.10.1.65101), IOCP: (Busy=0,Free=1000,Min=2,Max=1000), WORKER: (Busy=2,Free=32765,Min=2,Max=32767), v: 2.10.1.65101 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
at StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server, T defaultValue) in /_/src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2110
at StackExchange.Redis.RedisSubscriber.Subscribe(RedisChannel channel, CommandFlags flags) in /_/src/StackExchange.Redis/RedisSubscriber.cs:line 416
It was not possible to connect to the redis server(s) REDACTED/Subscription. ConnectTimeout
Ранее мы пытались обновить наш экземпляр Premium Redis до Enterprise, но столкнулись с аналогичными проблемами. Я полагаю, что управляемые экземпляры Redis также являются корпоративными, поэтому мне интересно, есть ли какие-то проблемы с тем, как мы подключаемся к Redis. Наш класс для получения соединения Redis выглядит следующим образом:
private static ConcurrentDictionary Connections;
[UsedImplicitly]
public static void Initialize(ConnectionSettings settings)
{
ConnectionSettings = settings;
Connections = new ConcurrentDictionary();
for (var i = 0; i < settings.RedisConnectionPoolCount; i++)
{
Connections.TryAdd(i, new Lazy(() =>
ConnectionMultiplexer.Connect(settings.ConnectionString)));
}
}
public static IDatabase GetDatabase()
=> GetConnection().GetDatabase();
private static bool AllLazyConnectionsLoaded;
private static object InitConnectionLock => new();
private static IConnectionMultiplexer GetConnection()
{
if (!AllLazyConnectionsLoaded)
{
lock (InitConnectionLock)
{
if (!AllLazyConnectionsLoaded)
{
var loadedLazyCount = Connections.Count(lazy => lazy.Value.IsValueCreated);
if (loadedLazyCount == Connections.Count)
{
AllLazyConnectionsLoaded = true;
}
else
{
return Connections.First(lazy => !lazy.Value.IsValueCreated).Value.Value;
}
}
}
}
var connectionID = FastConnectionPicker.GetRandomConnectionID(Connections.Count);
return Connections[connectionID].Value;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79843037/stackexchange-redis-timeout-when-moving-from-azure-premium-redis-to-azure-manage[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия