Создайте узел процессора концентратора событий в качестве прослушивателя связи с Service Fabric - PullRequest
0 голосов
/ 26 сентября 2019

Создание хоста процессора концентратора событий в качестве прослушивателя связи в Service Fabric и хранилища Azure в качестве контрольной точки.

Поскольку мне нужно было запустить хост процессора Eventhub в сервисной фабрике, я расширил прослушиватель связи и использовал его жизненный цикл дляуправляющий узел процессора событий.Хотя я знаю, что мог бы иметь StartAsync службы без сохранения состояния, это кажется разумной идеей.Я также попробовал процессор EventHubServiceFabric, который использует Stateful Service вместо хранилища Azure

public class EventHubCommunicationListener : IEventHubCommunicationListener
    {
        private IEventProcessorFactory eventProcessorFactory;
        private IOptions<EventHubConnectionOption> eventHubOptions;
        private EventHubProcessorHost eventHubProcessorHost;
        public EventHubCommunicationListener(IEventProcessorFactory eventProcessorFactory,
            IOptions<EventHubConnectionOption> eventHubOptions)
        {
            this.eventProcessorFactory = eventProcessorFactory;
            this.eventHubOptions = eventHubOptions;
        }
        public void Abort()
        {
            eventHubProcessorHost.CloseAsync().Wait();
        }

        public async Task CloseAsync(CancellationToken cancellationToken)
        {
            await eventHubProcessorHost.CloseAsync();
        }

        public async Task<string> OpenAsync(CancellationToken cancellationToken)
        {
            eventHubProcessorHost = new EventHubProcessorHost
                (eventProcessorFactory, eventHubOptions);
            await eventHubProcessorHost.Start();
            return string.Empty;
        }
    }

Хотя я достаточно хорошо понимаю SF и знаю, что подход с использованием прослушивателя связи будет работать, я больше беспокоюсь о хранилище Azure в качестве контрольной точки, что еслиХранилище Azure не работает, все мои контрольные точки исчезли.Я могу кешировать последние данные о событиях, чтобы начать заново без использования другого хранилища.Этот подход звучит хорошо?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...