2016-10-10 5 views
1

Для модульного тестирования я хотел бы иметь возможность подписываться на события Hystrix, особенно в случае возникновения или закрытия автоматического выключателя. Я просмотрел примеры, и кажется, что работа вокруг - это задействовать поток метрик и контролировать флаги автоматического выключателя.Возможно ли подписаться на открытие CircuitBreaker в Hystrix?

Поскольку Hystrix построен на RxJava, я думал, что где-то должен быть интерфейс подписки. Есть ли простой способ подписаться на эти типы событий в Hystrix?

Спасибо!

+0

Похоже, есть события, которые вы можете потреблять: https://github.com/Netflix/Hystrix/wiki/Metrics-and -Мониторинг – Jocke

+0

@Jocke Спасибо, я тоже это видел, но я искал что-то более зернистое, чтобы я мог подписаться на конкретное действие против общей категории событий ... по крайней мере, так я понял эти события. – Colin

ответ

2

Вам нужно написать специальный уведомитель событий и зарегистрировать его в HystrixPlugins. смотрите ниже код.

public class CircuitBreakerHystrixEventNotifier extends HystrixEventNotifier{ 

    public CircuitBreakerHystrixEventNotifier(){ 

    } 

    public void markEvent(HystrixEventType eventType, HystrixCommandKey key) { 
     //here write code based on eventTypes. 
    } 
} 

Вы должны зарегистрированный этот CircuitBreakerHystrixEventNotifier в Hystrix см ниже

HystrixPlugins.getInstance().registerEventNotifier(getCircuitBreakerHystrixEventNotifier()); 
+0

Я нашел оповещения о событиях, но не было видно, какой тип события следует контролировать. Вы знаете? – Colin

+0

Для открытой схемы вы можете использовать SHORT_CIRCUITED (полный список указан в перечислении HystrixEventType), но не уверен в закрытом событии. На самом деле, я тоже ищем того же, опубликую здесь, если я что-то получу. – Rakesh

+0

Интересно, что SHORT_CIRCUITED - это логический флаг, а также тип события. Это решение проблемы или я чего-то пропустил? – Colin