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