对于低客户端数量,是否可以为每个客户端创建一个 Cassandra 会话?
Is creating a Cassandra session per client ok for low client count?
我正在创建一个工具,允许用户通过图形用户界面在 Cassandra 数据库上执行 CRUD 操作。我最初计划让客户建立自己的集群连接并分别获得一个会话,但在进行研究后,每个人都说你应该只使用一个会话。现在我有两个解决方案:
1。
无论如何都要使用多个会话,正如我最初计划的那样。
- 设置很简单,只要工具调用ISession session = cluster.Connect();当工具打开
- 它可能很慢?我不知道,我不认为客户端数量少会很慢
- 这可能很危险,CRUD 操作可能会出现意外行为?据我所知,情况并非如此
- 我的雇主可能会因为我不遵守标准而杀了我?如果这个解决方案很容易理解并且存在可以忽略不计的问题,我怀疑这会发生。
2。
使用客户端-服务器连接并将 CQL 查询发送到服务器,然后发送到数据库,然后 return 结果发送到客户端。
- 我只需要一个与服务器中的数据库对话的会话
- 还有很多工作要做
- 必须实际维护一个硬件到 运行 服务器,如果它出现故障,则无法使用该工具
- 可能是因为在客户端-服务器之间增加了一层通信,所以速度很慢?我不知道
- 做对会更难,我必须设置一个管理每个案例的网络通信协议
3。
我还没有 thought/know 的第三个解决方案。
举个例子,假设我们有 10 个客户同时工作(我怀疑会有这么多客户同时工作)并且因为我很好奇,请考虑是否同时有 100 个客户时间.
我真的倾向于解决方案 1。但我也真的希望有经验的人提供第二意见。是的,我可以使用解决方案 1 还是 mistake/dangerous?我正在使用适用于 Apache Cassandra 版本 3.4.1 的 DataStax C# 驱动程序
更新:
是否可以序列化一个ISession实例并发送给客户端重构使用?这将是两全其美,因为这样我就可以与多个客户端共享一个进程,而无需设置网络协议。每次客户端启动时,它只需要向服务器询问会话实例,然后就可以像在主机中创建它一样使用它。
最好在一个进程内共享会话,但如果您有多个单独的进程,那么如果您将客户端数量保持在相对较低的水平,则可以拥有单独的会话。请注意,通常驱动程序会打开到集群中每个节点的连接,直到您明确覆盖负载平衡策略(但只有当您明确知道自己在做什么时才需要这样做)。
我正在创建一个工具,允许用户通过图形用户界面在 Cassandra 数据库上执行 CRUD 操作。我最初计划让客户建立自己的集群连接并分别获得一个会话,但在进行研究后,每个人都说你应该只使用一个会话。现在我有两个解决方案:
1。 无论如何都要使用多个会话,正如我最初计划的那样。
- 设置很简单,只要工具调用ISession session = cluster.Connect();当工具打开
- 它可能很慢?我不知道,我不认为客户端数量少会很慢
- 这可能很危险,CRUD 操作可能会出现意外行为?据我所知,情况并非如此
- 我的雇主可能会因为我不遵守标准而杀了我?如果这个解决方案很容易理解并且存在可以忽略不计的问题,我怀疑这会发生。
2。 使用客户端-服务器连接并将 CQL 查询发送到服务器,然后发送到数据库,然后 return 结果发送到客户端。
- 我只需要一个与服务器中的数据库对话的会话
- 还有很多工作要做
- 必须实际维护一个硬件到 运行 服务器,如果它出现故障,则无法使用该工具
- 可能是因为在客户端-服务器之间增加了一层通信,所以速度很慢?我不知道
- 做对会更难,我必须设置一个管理每个案例的网络通信协议
3。 我还没有 thought/know 的第三个解决方案。
举个例子,假设我们有 10 个客户同时工作(我怀疑会有这么多客户同时工作)并且因为我很好奇,请考虑是否同时有 100 个客户时间.
我真的倾向于解决方案 1。但我也真的希望有经验的人提供第二意见。是的,我可以使用解决方案 1 还是 mistake/dangerous?我正在使用适用于 Apache Cassandra 版本 3.4.1 的 DataStax C# 驱动程序
更新: 是否可以序列化一个ISession实例并发送给客户端重构使用?这将是两全其美,因为这样我就可以与多个客户端共享一个进程,而无需设置网络协议。每次客户端启动时,它只需要向服务器询问会话实例,然后就可以像在主机中创建它一样使用它。
最好在一个进程内共享会话,但如果您有多个单独的进程,那么如果您将客户端数量保持在相对较低的水平,则可以拥有单独的会话。请注意,通常驱动程序会打开到集群中每个节点的连接,直到您明确覆盖负载平衡策略(但只有当您明确知道自己在做什么时才需要这样做)。