2017-09-09 3 views
1

Salut, je crée mon propre connecteur de Cassandra en utilisant les pilotes de datastax. Mais je suis confronté à des problèmes de fuites de mémoire, donc je commence à envisager d'autres solutions comme Alpakka de lightbend qui a un connecteur Cassandra. Mais après avoir vérifié que la documentation est mauvaise, je change d'avis, car je n'utilise que le connecteur avec des requêtes CQLSH, et dans mon cas, je gère les objets DTO.Enregistrer DTO dans Alpakka Cassandra

Tout le monde connaît une documentation où je peux voir si Alpakka cassandra gère la sauvegarde des DTO avec un niveau de cohérence.

Ce code provient de mon connecteur actuel. Je voudrais réaliser quelque chose de similaire.

private void updateCreateEntry(DTO originalDto, Mapper cassandraMapper) { 
    ConsistencyLevel consistencyLevel = ((DTOCassandra) originalDto).getConsistencyLevel(); 
    //.- For writing we set the consistency level to quorum 
    cassandraMapper.save(originalDto, Option.consistencyLevel(consistencyLevel != null ? consistencyLevel : DEFAULT_CONSISTENCY_LEVEL)); 
} 

Répondre

1

Comme vous l'avez remarqué, actuellement le connecteur Cassandra dans Alpakka est assez mince. Si vous avez besoin d'un support plus riche pour votre DTO, vous pouvez choisir un client plus riche comme Phantom.

Il existe d'excellents exemples d'utilisation de Phantom - par exemple this one. Une fois que vous avez créé votre modèle, Phantom vous donnera une fonction def store[T](t: T): Future[ResultSet] pour insérer des données.

Vous pouvez envoyer des appels à ces fonctions à un combinateur mapAsync(n) pour les utiliser dans votre Akka Stream.

+0

Merci, je vais jeter un oeil – paul