Где я должен хранить экземпляр соединения с БД и пул соединений с БД?

Должен ли я реализовать пул субъектов службы, каждый из которых имеет одно соединение с БД? Я очень новичок в Akka и не знаю, как реализовать работу, связанную с БД.

Мой контекст: я создаю распределенный игровой сервер, используя akka-cluster.


person sp-niemand    schedule 03.12.2015    source источник
comment
Пул соединений с БД (я бы рекомендовал HikariCP) должен быть настроен на уровне Slick — slick.typesafe.com/doc/3.1.0/database.html#connection-pools   -  person Sergiy Prydatchenko    schedule 03.12.2015
comment
@SergiyPrydatchenko, да, у объекта Slick Database есть собственный пул соединений. Но мне интересно, как лучше всего использовать его с актерами Akka? Должен ли я использовать экземпляр базы данных на каждом узле моего кластера и делиться им между всеми участниками этого узла, если им нужен доступ к БД? Если я правильно понимаю, акторы используются для обмена данными между собой.   -  person sp-niemand    schedule 04.12.2015
comment
@spniemand Да, вы можете создать экземпляр базы данных на каждом узле моего кластера и поделиться им между всеми участниками этого узла. Вы не должны делиться данными, но база данных — это не данные. :) Но вы должны остерегаться [блокировать вызовы внутри актеров]( stackoverflow.com/questions/19944034/).   -  person Sergiy Prydatchenko    schedule 04.12.2015
comment
@SergiyPrydatchenko, а как насчет одновременных операций на общем экземпляре Database? Является ли класс Database потокобезопасным?   -  person sp-niemand    schedule 07.12.2015