Мне нужно отправить (дублировать) трафик с одной машины (порта) и на две разные машины (порты). Мне также нужно позаботиться о сеансе TCP.
В начале я использовал em-proxy , но мне кажется, что накладные расходы достаточно велики (они переходят через 50% ЦП). Затем я установил haproxy и мне удалось перенаправить трафик (не дублировать). Накладные расходы являются разумными (менее 5%).
Проблема в том, что я не смог сказать в файле конфигурации haproxy следующее:
- прослушать по конкретному адресу: порт и все, что вы найдете отправить по двум различным
машины: порты и отбрасывание ответов от одного из них.
Код Em-прокси для этого довольно прост, но мне кажется, что EventMachine генерирует много накладных расходов.
Прежде чем копаться в haproxy-коде и пытаться изменить (дублировать трафик), я хотел бы знать, что там что-то подобное?
Спасибо.
-121--729678-
Учитывая следующую модель вида:
public class SomeViewModel
{
public bool IsA { get; set; }
public bool IsB { get; set; }
public bool IsC { get; set; }
//... other properties
}
Я хочу создать пользовательский атрибут, который подтверждает, что хотя бы одно из доступных свойств истинно. Я предполагаю, что смогу присоединить атрибут к свойству и назначить имя группы, как это:
public class SomeViewModel
{
[RequireAtLeastOneOfGroup("Group1")]
public bool IsA { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsB { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsC { get; set; }
//... other properties
[RequireAtLeastOneOfGroup("Group2")]
public bool IsY { get; set; }
[RequireAtLeastOneOfGroup("Group2")]
public bool IsZ { get; set; }
}
Я хотел бы проверить на стороне клиента перед отправкой формы в качестве значений в изменении формы, поэтому я предпочитаю избегать атрибута уровня класса, если это возможно.
Для этого потребуется проверка на стороне сервера и на стороне клиента, чтобы найти все свойства, имеющие идентичные значения имени группы, переданные в качестве параметра для пользовательского атрибута. Это возможно? Любое руководство очень ценится.