Size: a a a

Scala User Group

2021 July 07

AS

Artem Sokolov in Scala User Group
если не изменяемое по ссылке а объект за ним мутабельный - это остается стейтлесс если ссылка на объект пришла извне в качестве "конфигурационных данных")
источник

AS

Artem Sokolov in Scala User Group
тк при создании достаточно ту же ссылку иметь
источник

AS

Artem Sokolov in Scala User Group
ну типа. вот есть стейтлесс микросервис (думаю все примерно понимают что это такое)
он сконфигурен на какой-то персистенс/базу
если его изменить так что персистентные данные он будет класть к себе в инмемори дб - он станет стейтфул, верно?
вот тоже самое кажется можно без проблем применить в классу/объекту
источник

EK

Evgenii Kuznetcov in Scala User Group
А если этот мутабельный объект в конструкторе создаётся?
источник

AS

Artem Sokolov in Scala User Group
то это стейт да
источник

AS

Artem Sokolov in Scala User Group
тоесть выше я подразумевал что ссылка это часть конфигурационных данных. оговорка важная, надо дописать
источник

T

Tim in Scala User Group
вот-вот
источник

T

Tim in Scala User Group
а следующее что хочется решить - что делать, если инстансов микросервиса с данными в памяти больше одного
источник

T

Tim in Scala User Group
и как сделать так чтобы запросы на какую-то конкретную часть стейта (по ID) приходили на тот инстанс где оно в памяти
источник

T

Tim in Scala User Group
и после долгих метаний и гуглений - понять, что это и есть акка кластер )))
источник

P

Pavel in Scala User Group
такое можно сделать с помощью брокера, например, Apache Pulsar (наверняка кафкой тоже), где ID будет ключ к сообщению в очереди. будет и очередность, и роутинг по ID, и в сервисе лежать в памяти. у меня так часть сервисов написана
источник

T

Tim in Scala User Group
пульсар интересный, да, но он вот только появился
а есть опыт реальный с ним, и на основании его stateful stream consumers?
источник

P

Pavel in Scala User Group
у меня на нем весь прод. клиента к нему функционального не было - свою обертку написали. код джавовой либы - немного страшный, но в целом все работает норм
источник

T

Tim in Scala User Group
ага, а что происходит при изменении конфигурации консюмеров?
стираются кеши и всё восстанавливается из стримов на новой ноде?
источник

T

Tim in Scala User Group
или это самому всё надо писать?
источник

P

Pavel in Scala User Group
зависит от типа подписки консьюмера. https://pulsar.apache.org/docs/en/concepts-messaging/#subscriptions

не особо понял о каком кеше идет речь.
источник

T

Tim in Scala User Group
я так понимаю мы про key-shared
источник

P

Pavel in Scala User Group
а о какой конфигурации вопрос?

если было 5 консьюмеров по key-shared подписке, а один отвалился, тогда сообщения будут распределены на остальные 4. состояние из консьюмера 5 магически не переедет на остальные 4, если в этом вопрос
источник

P

Pavel in Scala User Group
спасение данных - дело самих утопающих
источник

P

Pavel in Scala User Group
источник