public async Task Run() { var byteArray = Encoding.UTF8.GetBytes( JsonConvert.SerializeObject( new SimpleIntegrationEvent { Content = DateTime.Now.ToString("HH:mm:ss.fff", CultureInfo.InvariantCulture) }, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All })); var producer = _broker.GetProducer( new KafkaProducerEndpoint("silverback-examples-events") { Configuration = new KafkaProducerConfig { BootstrapServers = "PLAINTEXT://localhost:9092" } }); var headers = new MessageHeaderCollection { ["use-case"] = "pre-serialized" }; await producer.ProduceAsync(byteArray, headers); }
private static void Connect() { _producer = _broker.GetProducer(new KafkaProducerEndpoint("Topic1") { Configuration = new KafkaProducerConfig { BootstrapServers = "PLAINTEXT://localhost:9092" } }); _broker.Connect(); Console.CancelKeyPress += (_, e) => { _broker.Disconnect(); }; }
public void HandleError_InboundMessage_MessageMoved() { var policy = _errorPolicyBuilder.Move(TestEndpoint.Default); policy.HandleError(new InboundMessage { Message = new TestEventOne() }, new Exception("test")); var producer = (TestProducer)_broker.GetProducer(TestEndpoint.Default); producer.ProducedMessages.Count.Should().Be(1); }
public async Task Run() { var producer = _broker.GetProducer( new KafkaProducerEndpoint("silverback-examples-events") { Configuration = new KafkaProducerConfig { BootstrapServers = "PLAINTEXT://localhost:9092" } }); var headers = new MessageHeaderCollection { ["use-case"] = "empty-message" }; await producer.ProduceAsync(null, headers); }
public MoveMessageErrorPolicy(IBroker broker, IEndpoint endpoint, IServiceProvider serviceProvider, ILogger <MoveMessageErrorPolicy> logger, MessageLogger messageLogger) : base(serviceProvider, logger, messageLogger) { if (broker == null) { throw new ArgumentNullException(nameof(broker)); } if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } if (serviceProvider == null) { throw new ArgumentNullException(nameof(serviceProvider)); } _producer = broker.GetProducer(endpoint); _endpoint = endpoint; _logger = logger; _messageLogger = messageLogger; }
public async Task HandleError_InboundMessage_MessageMoved() { var policy = ErrorPolicy.Move(TestProducerEndpoint.GetDefault()).Build(_serviceProvider); var envelope = new InboundEnvelope( "hey oh!", new MemoryStream(), null, new TestOffset(), TestConsumerEndpoint.GetDefault(), TestConsumerEndpoint.GetDefault().Name); await policy.HandleErrorAsync( ConsumerPipelineContextHelper.CreateSubstitute(envelope, _serviceProvider), new InvalidOperationException("test")); var producer = (TestProducer)_broker.GetProducer(TestProducerEndpoint.GetDefault()); producer.ProducedMessages.Should().HaveCount(1); }
public void HandleError_InboundMessage_MessageMoved() { var policy = _errorPolicyBuilder.Move(TestEndpoint.GetDefault()); var message = new InboundMessage( new byte[1], null, null, TestEndpoint.GetDefault(), true) { Content = "hey oh!" }; policy.HandleError(new[] { message }, new Exception("test")); var producer = (TestProducer)_broker.GetProducer(TestEndpoint.GetDefault()); producer.ProducedMessages.Count.Should().Be(1); }
public async Task <IEnumerable <EndpointCheckResult> > PingAllEndpoints() { if (!_broker.IsConnected) { return(Enumerable.Empty <EndpointCheckResult>()); } var tasks = _outboundRoutingConfiguration.Routes .Select(async route => { try { await _broker.GetProducer(route.DestinationEndpoint).ProduceAsync(PingMessage.New()); return(new EndpointCheckResult(route.DestinationEndpoint.Name, true)); } catch (Exception ex) { return(new EndpointCheckResult(route.DestinationEndpoint.Name, false, $"[{ex.GetType().FullName}] {ex.Message}")); } }); return(await Task.WhenAll(tasks)); }
public Task RelayMessage(IOutboundMessage message) => _broker.GetProducer(message.Endpoint).ProduceAsync(message.Message, message.Headers);
protected virtual Task ProduceMessage(IOutboundMessage message) => _broker.GetProducer(message.Endpoint).ProduceAsync(message.Message, message.Headers);
protected virtual Task ProduceMessage(byte[] content, IEnumerable <MessageHeader> headers, IEndpoint endpoint) => _broker.GetProducer(endpoint).ProduceAsync(content, headers);