Commit e15f5185 authored by Savorboard's avatar Savorboard

Add Kafka options to support custom header to add offset and partition into CapHeader. #374

parent d2093f3c
...@@ -5,6 +5,7 @@ using System; ...@@ -5,6 +5,7 @@ using System;
using System.Collections.Concurrent; using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Confluent.Kafka;
// ReSharper disable once CheckNamespace // ReSharper disable once CheckNamespace
namespace DotNetCore.CAP namespace DotNetCore.CAP
...@@ -43,6 +44,11 @@ namespace DotNetCore.CAP ...@@ -43,6 +44,11 @@ namespace DotNetCore.CAP
/// </summary> /// </summary>
public string Servers { get; set; } public string Servers { get; set; }
/// <summary>
/// If you need to get offset and partition and so on.., you can use this function to write additional header into <see cref="CapHeader"/>
/// </summary>
public Func<ConsumeResult<string, byte[]>, List<KeyValuePair<string, string>>> CustomHeaders { get; set; }
internal IEnumerable<KeyValuePair<string, string>> AsKafkaConfig() internal IEnumerable<KeyValuePair<string, string>> AsKafkaConfig()
{ {
if (_kafkaConfig == null) if (_kafkaConfig == null)
......
...@@ -62,6 +62,15 @@ namespace DotNetCore.CAP.Kafka ...@@ -62,6 +62,15 @@ namespace DotNetCore.CAP.Kafka
} }
headers.Add(Messages.Headers.Group, _groupId); headers.Add(Messages.Headers.Group, _groupId);
if (_kafkaOptions.CustomHeaders != null)
{
var customHeaders = _kafkaOptions.CustomHeaders(consumerResult);
foreach (var customHeader in customHeaders)
{
headers.Add(customHeader.Key, customHeader.Value);
}
}
var message = new TransportMessage(headers, consumerResult.Value); var message = new TransportMessage(headers, consumerResult.Value);
OnMessageReceived?.Invoke(consumerResult, message); OnMessageReceived?.Invoke(consumerResult, message);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment