我正在创建一个工具,允许用户通过图形用户界面对Cassandra DB进行CRUD操作。我首先计划让客户建立自己与群集的连接,然后每个人都进行一次会话,但在做研究之后,每个人都说你应该只使用一个会话。现在我有两个解决方案:
1。 正如我先计划的那样,无论如何都要使用多个会话。
2。 使用客户端 - 服务器连接并将CQL查询发送到服务器,然后发送到数据库,然后将结果返回给客户端。
3。 我没想到/知道的第三个解决方案。
举一个例子,假设我们有10个客户同时工作(我怀疑会有很多客户同时工作)并且因为我很好奇,考虑是否同时有100个客户端。
我真的倾向于解决方案1.但我也非常希望得到经验丰富的人的第二意见。所以是的,我可以使用解决方案1还是错误/危险?我正在使用DataStax C#Driver for Apache Cassandra 3.4.1版
更新 是否可以序列化 ISession 实例并将其发送到客户端进行重构和使用?这将是两全其美的,因为那时我可以与多个客户端共享一个进程,而无需设置网络协议。每次客户端启动时,只需要向服务器询问会话实例,然后就像在主机中创建它一样使用它。
答案 0 :(得分:0)
最好在一个进程内共享会话,但如果您有多个单独的进程,那么如果您保持客户端数量相对较低,则可以单独进行会话。请注意,通常驱动程序会打开与群集中每个节点的连接,直到您明确覆盖负载平衡策略(但只有在您明确知道自己的操作时才需要执行此操作)。