Apache zookeeper 为什么策展人不使用连接池来管理连接

Apache zookeeper 为什么策展人不使用连接池来管理连接,apache-zookeeper,apache-curator,Apache Zookeeper,Apache Curator,我在使用curator方面是新手,我发现一些框架使用连接池来管理连接,比如jdbc、redis。但是我在curator中找不到连接池。为什么curator不提供连接池来减少每个连接所消耗的资源。一个CuratorFramework实例包装一个ZooKeeper实例,该实例反过来维护与ZooKeeper节点的连接 提供以下订购保证: 可线性化写入:所有更新ZooKeeper状态的请求都是可序列化的,并尊重优先级 先进先出客户端顺序:来自给定客户端的所有请求都按照客户端发送的顺序执行 假设存在具

我在使用curator方面是新手,我发现一些框架使用连接池来管理连接,比如jdbc、redis。但是我在curator中找不到连接池。为什么curator不提供连接池来减少每个连接所消耗的资源。

一个CuratorFramework实例包装一个ZooKeeper实例,该实例反过来维护与ZooKeeper节点的连接

提供以下订购保证:

  • 可线性化写入:所有更新ZooKeeper状态的请求都是可序列化的,并尊重优先级
  • 先进先出客户端顺序:来自给定客户端的所有请求都按照客户端发送的顺序执行
假设存在具有两个
CuratorFramework
实例A和B的连接池。我们向A发出写入请求以创建znode
/A
,并将A返回到连接池。然后我们从连接池中获得另一个
CuratorFramework
实例。这一次我们得到了B。我们向B发出读取
/a
的读取请求。我们可能无法获得
/a
,因为无法保证读请求将放在写请求之后。只有在同样的条件下,我们才能保证订单。因此,连接池存在数据不一致的问题


另一个问题是短暂的znodes。使用一个
CuratorFramework
实例创建的短暂znode仅对其自身可见。有了连接池,我们只能在使用创建临时znode的同一个
CuratorFramework
实例时读取临时znode。

一个CuratorFramework实例包装一个ZooKeeper实例,该实例反过来维护与ZooKeeper节点的连接

提供以下订购保证:

  • 可线性化写入:所有更新ZooKeeper状态的请求都是可序列化的,并尊重优先级
  • 先进先出客户端顺序:来自给定客户端的所有请求都按照客户端发送的顺序执行
假设存在具有两个
CuratorFramework
实例A和B的连接池。我们向A发出写入请求以创建znode
/A
,并将A返回到连接池。然后我们从连接池中获得另一个
CuratorFramework
实例。这一次我们得到了B。我们向B发出读取
/a
的读取请求。我们可能无法获得
/a
,因为无法保证读请求将放在写请求之后。只有在同样的条件下,我们才能保证订单。因此,连接池存在数据不一致的问题


另一个问题是短暂的znodes。使用一个
CuratorFramework
实例创建的短暂znode仅对其自身可见。有了连接池,我们只能在使用创建临时znode的相同
CuratorFramework
实例时读取临时znode。

您指的是什么连接池?还有,连接池有什么好处?谢谢你的回复。我的意思是,当我们需要100个连接时,馆长会创建100个连接,为什么不使用一个连接池包含10个连接(仅举个例子),当我需要时,我可以从连接池中获取,用完并放回连接池中。这样,我们可以在建立连接时节省一些资源。我只是一个新手,这只是我的一些想法。馆长不会创建100个连接。每个CuratorFramework实例正好有一个连接,因为只需要一个连接。我真的不知道你指的是什么。你指的是什么连接池?还有,连接池有什么好处?谢谢你的回复。我的意思是,当我们需要100个连接时,馆长会创建100个连接,为什么不使用一个连接池包含10个连接(仅举个例子),当我需要时,我可以从连接池中获取,用完并放回连接池中。这样,我们可以在建立连接时节省一些资源。我只是一个新手,这只是我的一些想法。馆长不会创建100个连接。每个CuratorFramework实例正好有一个连接,因为只需要一个连接。我真的不知道你指的是什么。