Предположим, что у меня есть потребитель/производитель кафки, который работает следующим образом:
[*] Потребляйте сообщение из Input Topic
[*] Вычислить функцию сообщения
[*] Напишите результат на вывод topic
Советите сообщение из Input < /li>
Повторите (1) < /li>
< /ol>
Вычисление на шаге (2) может потерпеть неудачу, но если он удастся тогда он всегда даст один и тот же результат. < /p>
Обратите внимание, что «Автоцирмит» отключен. < /p>
Вот какой-то код, в случае, если это помогает : < /p>
#r "nuget: Confluent.Kafka, 2.8.0"
open Confluent.Kafka
open System.Threading
open System.Threading.Tasks
let processor
(expensiveComputation : string -> Task)
(consumer : IConsumer)
(producer : IProducer)
(outputTopic : string)
(ct : CancellationToken)
=
task {
while true do
// Consume the next message
let! consumeResult = Task.Run (fun () -> consumer.Consume(ct))
printfn $"Consumed %A{consumeResult.TopicPartitionOffset}"
// Compute something (might fail!)
let! computed = expensiveComputation consumeResult.Message.Value
// Write the result
let message = Message()
message.Key
Подробнее здесь: https://stackoverflow.com/questions/793 ... -kafka-net
Точно однажды потребитель / производитель в Kafka .net? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение