У меня есть приложение Vert.x
с несколькими вершинами для взаимодействия с различными шинами и dbs (пн go, redis, rabbit, kafka и т. Д.)
среди них есть вертикаль, предназначенная для связи с внешними API (очень старыми), которые допускают одно постоянное соединение и из одного (предварительно определенного) источника
Я использую несколько экземпляров vertx с тем же код (автоматическое масштабирование) и заставить их действовать как кластер, используя hazelcast
в качестве менеджера кластера
, что является наилучшей практикой для ограничения создания external-api verticle
только для одного экземпляра, я посмотрел на :
SharedData.Lock()
- но мне нужно обернуть его с помощью асинхронной c логики вращающегося замка c High Availability
- отлично подходит для завершения и авто масштабирование, но не заставляет активность одной вертикали worker verticle
- чтобы создать 1 рабочую вертику в каждом случае
Я мог бы использовать смесь всех вышеперечисленных и создать желаемый функционал, но мне кажется, какой комп lex ...
я должен отделить свою статью от другого сервера, или есть какое-то более простое решение, о котором я еще не думал?