对于低客户端数量,是否可以为每个客户端创建一个 Cassandra 会话?

Is creating a Cassandra session per client ok for low client count?

我正在创建一个工具,允许用户通过图形用户界面在 Cassandra 数据库上执行 CRUD 操作。我最初计划让客户建立自己的集群连接并分别获得一个会话,但在进行研究后,每个人都说你应该只使用一个会话。现在我有两个解决方案:

1。 无论如何都要使用多个会话,正如我最初计划的那样。

2。 使用客户端-服务器连接并将 CQL 查询发送到服务器,然后发送到数据库,然后 return 结果发送到客户端。

3。 我还没有 thought/know 的第三个解决方案。

举个例子,假设我们有 10 个客户同时工作(我怀疑会有这么多客户同时工作)并且因为我很好奇,请考虑是否同时有 100 个客户时间.

我真的倾向于解决方案 1。但我也真的希望有经验的人提供第二意见。是的,我可以使用解决方案 1 还是 mistake/dangerous?我正在使用适用于 Apache Cassandra 版本 3.4.1 的 DataStax C# 驱动程序

更新: 是否可以序列化一个ISession实例并发送给客户端重构使用?这将是两全其美,因为这样我就可以与多个客户端共享一个进程,而无需设置网络协议。每次客户端启动时,它只需要向服务器询问会话实例,然后就可以像在主机中创建它一样使用它。

最好在一个进程内共享会话,但如果您有多个单独的进程,那么如果您将客户端数量保持在相对较低的水平,则可以拥有单独的会话。请注意,通常驱动程序会打开到集群中每个节点的连接,直到您明确覆盖负载平衡策略(但只有当您明确知道自己在做什么时才需要这样做)。