Архитектура Орлеана - проекты силосов объединены или разделены?

Существует проект сбора данных IoT и проект обработки данных IoT. Они разрабатываются и поддерживаются отдельно. Тем не менее, было бы выгодно делить между собой общие зерна в силосе Орлеана (или силосном кластере). Как будет выглядеть архитектура в автономном сценарии - монолитном бункере со ссылками на оба проекта для коммуникации в бункере или двух отдельных бункерах, взаимодействующих извне? Если в одном бункере, может ли бункер динамически обнаруживать зерна.dll?

1 ответ

Решение

Вероятно, будут лучшие ответы, но до тех пор:

Есть некоторые компромиссы. С точки зрения производительности лучше распределить все свои аспекты (всех служб) по кластеру. Таким образом, каждое зерно связывается с другими зернами через инфраструктуру Орлеана (я думаю, что это двоичные сериализованные сообщения через tcp), без каких-либо дополнительных затрат. Но когда каждый сервис (или проект) имеет свой собственный бункер, вам понадобится шлюз - возможно, HTTP-слушатель - в дополнение к Орлеану. Однако в первом примере ваши услуги становятся связанными. Вы не можете развернуть новую версию службы, если есть бункер, на котором работает более старая версия (в противном случае может быть 2 зерна одной и той же сущности). Но если вы закроете этот бункер, вы закроете остальные службы. Это очень нетривиальная проблема.

Если в одном бункере, может ли бункер динамически обнаруживать зерна.dll

Не уверен, что вы имеете в виду. Когда силос загружается, он рекурсивно ищет dll внутри своей папки, а если находит зерна, загружает их.

Другие вопросы по тегам