public ConsumerConnector(String stateStorageDirectory, String brokerAddress, BrokerInfoResponse configuration, ZMQ.Context context) { _stateStorageDirectory = stateStorageDirectory; _brokerAddress = brokerAddress; _configuration = configuration; _context = context; }
public ConsumerMessageStream(String stateStorageDirectory, String brokerAddress, BrokerInfoResponse configuration, ZMQ.Context context) { _stateStorageDirectory = stateStorageDirectory; _brokerAddress = brokerAddress; _configuration = configuration; _context = context; Messages = new ConcurrentQueue <Tuple <Int32, Message> >(); }
public Consumer(String brokerAddress) { _context = _sharedContext; _address = brokerAddress; _sender = new RequestSender(_address, ZMQ.SocketType.REQ, _context.ZmqContext); _infoResponse = _sender.Send(new BrokerInfoRequest()) as BrokerInfoResponse; if (_infoResponse == null) { throw new Exception("Cannot create producer, because broker info request was unsuccessfull"); } }
/// <summary> /// Constructs Producer with specified broker address /// </summary> public Producer(String brokerAddress) { _brokerAddress = brokerAddress; _sender = new RequestSender(_brokerAddress, ZMQ.SocketType.REQ, _context.ZmqContext); _infoResponse = _sender.Send(new BrokerInfoRequest()) as BrokerInfoResponse; if (_infoResponse == null) { throw new Exception("Cannot create producer, because broker info request was unsuccessfull"); } var pullAddress = String.Format("{0}:{1}", _infoResponse.HostName, _infoResponse.PullPort); _pushSender = new RequestSender(pullAddress, ZMQ.SocketType.PUSH, _context.ZmqContext); }
public Response HandleBrokerInfo(BinaryStream stream) { // Not used for now var request = BrokerInfoRequest.ReadFromStream(stream); var response = new BrokerInfoResponse(); response.HostName = _configuration.HostName; response.BrokerId = _configuration.BrokerId; response.PullPort = _configuration.PullPort; response.NumberOfPartitions = _configuration.NumberOfPartitions; response.NumberOfPartitionsPerTopic = _configuration.NumberOfPartitionsPerTopic; return(response); }
private Response Send(Request request, bool responseAvailable) { using (var memoryStream = new BinaryMemoryStream()) { memoryStream.Writer.Write((short)request.RequestType); request.WriteToStream(memoryStream); var data = memoryStream.ToArray(); _socket.Send(data); } if (!responseAvailable) { return(null); } var result = _socket.Recv(); using (var stream = new BinaryMemoryStream(result)) { var responseType = (ResponseType)stream.Reader.ReadInt16(); switch (responseType) { case ResponseType.BrokerInfoResponse: return(BrokerInfoResponse.ReadFromStream(stream)); case ResponseType.FetchResponse: return(FetchResponse.ReadFromStream(stream)); case ResponseType.MultiFetchResponse: return(MultiFetchResponse.ReadFromStream(stream)); } return(null); } }