Асинхронные запросы Кассандры - PullRequest
0 голосов
/ 12 ноября 2018

Я пытался обновить приложение для повышения производительности, оно использует драйвер Java Datastax Cassandra для служб DAL.

Теперь мне нужно преобразовать запросы синхронизации в асинхронные запросы, я не нашел удовлетворительных ответов на свои сомнения (по крайней мере, на посещаемых мной веб-страницах).

Может кто-нибудь ответить на приведенные ниже вопросы или перейти по ссылке, где я мог бы получить ответ.

1> О каких возможных проблемных сценариях мне нужно беспокоиться перед тем, как изменить синхронизированные выполнения на ansync execs?

2> Как будут вести себя операции чтения и записи, могу ли я изменить одну из них, не беспокоясь о каких-либо проблемах?

Заранее спасибо!

1 Ответ

0 голосов
/ 12 ноября 2018

Есть несколько вещей, о которых вам нужно подумать:

  • Вам необходимо ограничить скорость своего кода - по умолчанию это только 1024 запроса на соединение, поэтому вам может потребоваться увеличить это число . Но даже при увеличении количества запросов на соединение легко перегружать Cassandra, поэтому вам все равно нужно управлять им, например, this ;
  • Вам нужно правильно обрабатывать ошибки - вам может понадобиться добавить обработчик ошибок, чтобы обещание было возвращено, и реагировать соответственно;
  • Вам нужно правильно создавать операторы - например, не используйте один и тот же BoundStatement, поскольку он не безопасен для потоков;
  • не используйте повторно те же экземпляры List / Set / Map, которые вы передаете в качестве параметров и т. Д.
...