关于python:kombu-连接池详解

39次阅读

共计 511 个字符,预计需要花费 2 分钟才能阅读完成。

起因

应用 nameko 的时候,想看看 nameko 的连贯复用原理(指的是和 rabbitmq 的 amqp 网络连接的复用)

个别连贯复用有两种计划:

  • TLS(Thread Local Storage)
  • 连接池

第一种计划,实现最简略,然而有局限性。比方应用线程池的状况下才有用,比方应用协程、或者无复用的线程就不适合了

第二种计划,连接池是最通用的计划,但也是最麻烦的计划。

那 nameko 应用的是哪种计划呢?答案是:连接池

好了,既然咱们曾经晓得了这个事实,在深刻这个事实之前,先来理解一下 kombu 的连接池机制吧!

kombu 的连接池

from kombu import Connection


def eqhash(o):
    """Call ``obj.__eqhash__``."""
    try:
        return o.__eqhash__()
    except AttributeError:
        return hash(o)


amqp_uri = 'amqp://pon:[email protected]:5672//'

conn1 = Connection(amqp_uri)

conn2 = Connection(amqp_uri)


assert eqhash(conn1) == eqhash(conn2)

正文完
 0