def get_socket_to_routers(self): socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type) routers = self.matchmaker.get_routers() for router_address in routers: socket.connect_to_host(router_address) return socket
def get_socket_to_broker(self, target): socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type) self._track_socket(socket, target) address = zmq_address.get_broker_address(self.conf) socket.connect_to_address(address) return socket
def get_socket_to_hosts(self, target, hosts): if str(target) in self.outbound_sockets: socket = self._check_for_new_hosts(target) else: socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type) self._connect_to_hosts(socket, target, hosts) return socket
def _check_hosts_connections(self, target, listener_type): if self.socket is None: self.socket = zmq_socket.ZmqSocket(self.zmq_context, self.socket_type) self.outbound_sockets[str(target)] = self.socket address = zmq_address.get_broker_address(self.conf) self._connect_to_address(self.socket, address, target) return self.socket
def get_socket(self, target): key = self._key_from_target(target) if key in self.outbound_sockets: socket = self._check_for_new_hosts(target) else: socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type) self._get_hosts_and_connect(socket, target) return socket
def __init__(self, conf, poller, server): super(SubConsumer, self).__init__(conf, poller, server) self.matchmaker = server.matchmaker self.target = server.target self.socket = zmq_socket.ZmqSocket(self.conf, self.context, zmq.SUB) self.sockets.append(self.socket) self._subscribe_on_target(self.target) self.on_publishers(self.matchmaker.get_publishers()) self.poller.register(self.socket, self.receive_message)
def get_socket_to_publishers(self): if self.socket_to_publishers is not None: return self.socket_to_publishers self.socket_to_publishers = zmq_socket.ZmqSocket( self.conf, self.zmq_context, self.socket_type) publishers = self.matchmaker.get_publishers() for pub_address, router_address in publishers: self.socket_to_publishers.connect_to_host(router_address) return self.socket_to_publishers
def get_socket_to_hosts(self, target, hosts): key = str(target) if key in self.outbound_sockets: socket, tm = self.outbound_sockets[key] else: socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type) self._connect_to_hosts(socket, target, hosts) return socket
def __init__(self, conf, poller, server): super(SubConsumer, self).__init__(conf, poller, server) self.matchmaker = server.matchmaker self.subscriptions = set() self.targets = [] self._socket_lock = threading.Lock() self.socket = zmq_socket.ZmqSocket(self.conf, self.context, zmq.SUB) self.sockets.append(self.socket) self.id = uuid.uuid4() self.publishers_poller = MatchmakerPoller(self.matchmaker, on_result=self.on_publishers)
def get_socket_to_routers(self, identity=None): if self.socket_to_routers is not None: return self.socket_to_routers self.socket_to_routers = zmq_socket.ZmqSocket( self.conf, self.zmq_context, self.socket_type, immediate=self.conf.oslo_messaging_zmq.zmq_immediate, identity=identity) routers = self.matchmaker.get_routers() for be_router_address in routers: self.socket_to_routers.connect_to_host(be_router_address) return self.socket_to_routers
def __init__(self, conf, context, matchmaker): wrapper = zmq_sub_consumer.SubscriptionMatchmakerWrapper( conf, matchmaker) super(LocalPublisherProxy, self).__init__(conf, context, wrapper) self.fe_sub = zmq_socket.ZmqSocket(conf, context, zmq.SUB, False) self.fe_sub.setsockopt(zmq.SUBSCRIBE, b'') self.connection_updater = zmq_sub_consumer.SubscriberConnectionUpdater( conf, self.matchmaker, self.fe_sub) self.poller.register(self.fe_sub, self.receive_message) self.publisher = zmq_publisher_proxy.PublisherProxy( conf, matchmaker, sender=zmq_sender.LocalPublisherSender())
def _check_hosts_connections(self, target, listener_type): # TODO(ozamiatin): Place for significant optimization # Matchmaker cache should be implemented if str(target) in self.outbound_sockets: socket = self.outbound_sockets[str(target)] else: hosts = self.matchmaker.get_hosts(target, listener_type) socket = zmq_socket.ZmqSocket(self.zmq_context, self.socket_type) self.outbound_sockets[str(target)] = socket for host in hosts: self._connect_to_host(socket, host, target) return socket
def _check_hosts_connections(self, target, listener_type): if str(target) in self.outbound_sockets: socket = self.outbound_sockets[str(target)] else: hosts = self.matchmaker.get_hosts(target, listener_type) socket = zmq_socket.ZmqSocket(self.zmq_context, self.socket_type) self.outbound_sockets[str(target)] = socket for host in hosts: self._connect_to_host(socket, host, target) return socket
def __init__(self, conf, poller, server): super(SubConsumer, self).__init__(conf, poller, server) self.matchmaker = server.matchmaker self.target = server.target self.socket = zmq_socket.ZmqSocket(self.conf, self.context, zmq.SUB, immediate=False) self.sockets.append(self.socket) self._subscribe_on_target(self.target) self.connection_updater = SubscriberConnectionUpdater( conf, self.matchmaker, self.socket) self.poller.register(self.socket, self.receive_message)
def get_cached_socket(self, target_key, hosts=None, immediate=True): hosts = [] if hosts is None else hosts socket = self.sockets.get(target_key, None) if socket is None: LOG.debug("CREATING NEW socket for target_key %s " % target_key) socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type, immediate=immediate) self.sockets[target_key] = socket for host in hosts: socket.connect_to_host(host) LOG.debug("Target key: %s socket:%s" % (target_key, socket.handle.identity)) return socket
def __init__(self, conf, poller, server): super(SubConsumer, self).__init__(conf, poller, server) self.matchmaker = server.matchmaker self.target = server.target self.socket = zmq_socket.ZmqSocket(self.conf, self.context, zmq.SUB, immediate=False, identity=self._generate_identity()) self.sockets.append(self.socket) self.host = self.socket.handle.identity self._subscribe_to_topic() self.connection_updater = SubscriberConnectionUpdater( conf, self.matchmaker, self.socket) self.poller.register(self.socket, self.receive_message) LOG.info(_LI("[%s] Run SUB consumer"), self.host)
def get_socket(self, immediate=True): return zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type, immediate=immediate)
def get_socket(self): socket = zmq_socket.ZmqSocket(self.conf, self.zmq_context, self.socket_type, immediate=False) return socket
def __init__(self, conf, context): self.socket = zmq_socket.ZmqSocket(conf, context, zmq.PUSH)