Допустим, у меня есть Hello-Service
. В Lagom эта служба может работать на нескольких узлах одного кластера.
Таким образом, в кластере 1 мы можем иметь несколько «копий» Hello-Service
:
Cluster1: Hello-Service-1, Hello-Service-2, Hello-Service-3
Но возможно ли запустить службу Hello-Service
в нескольких кластерах?
Как это:
Cluster1: Hello-Service-1, Hello-Service-2, Hello-Service-3,
Cluster2: Hello-Service-4, Hello-Service-5, Hello-Service-6
Чего я хочу добиться, так это лучшей масштабируемости процессоров на стороне чтения и потребителей событий:
В Лагоме нам нужно заранее указать количество фрагментов данного тега события в кластере.
Так что мне интересно, могу ли я просто добавить еще один кластер, чтобы распределить нагрузку между ними.
И, конечно, я бы хотел огородить постоянные сущности каким-нибудь ключом.
(Допустим, я создаю мультитенантное приложение, я бы разделял сущности по идентификатору организации, чтобы все сущности некоторого набора организаций переходили в кластер 1, а сущности другого набора организаций переходили в кластер 2, поэтому для каждого кластера можно использовать процессоры на стороне чтения, которые обрабатывают только подмножество событий / объектов в кластере (для лучшей масштабируемости)).
При использовании подхода с одним кластером по мере роста системы сегментированный процессор в одном кластере может становиться все медленнее и медленнее, поскольку ему необходимо обрабатывать все больше и больше событий.
Так что по мере роста системы я бы просто добавил новый кластер (скажем, Cluster 2, а затем Cluster 3, который будет обрабатывать свое собственное подмножество событий / сущностей)