이 내용을 보고 카프카와 나은 계획을 사용하여 카프카니다.net
나는 알고 싶어하는 경우 난 보낼 수 있습니다 JSON 으로 메시지가 나는 생산 이벤트
나는 다음과 같은 튜토리얼: https://developer.confluent.io/get-started/dotnet/#build-producer
또한,방법은 없는 가치를 매핑할 수 있도록 모델치/json 구조는 항상 해당 모델
그래서 예를 들어 내가 원하는 경우 내 json 할 값
{
"customerName":"anything",
"eventType":"one-of-three-enums",
"columnsChanged": "string value or something"
}
의 대부분은 예를 찾을 수 있습은 다음과 같다:
using Confluent.Kafka;
using System;
using Microsoft.Extensions.Configuration;
class Producer {
static void Main(string[] args)
{
if (args.Length != 1) {
Console.WriteLine("Please provide the configuration file path as a command line argument");
}
IConfiguration configuration = new ConfigurationBuilder()
.AddIniFile(args[0])
.Build();
const string topic = "purchases";
string[] users = { "eabara", "jsmith", "sgarcia", "jbernard", "htanaka", "awalther" };
string[] items = { "book", "alarm clock", "t-shirts", "gift card", "batteries" };
using (var producer = new ProducerBuilder<string, string>(
configuration.AsEnumerable()).Build())
{
var numProduced = 0;
const int numMessages = 10;
for (int i = 0; i < numMessages; ++i)
{
Random rnd = new Random();
var user = users[rnd.Next(users.Length)];
var item = items[rnd.Next(items.Length)];
producer.Produce(topic, new Message<string, string> { Key = user, Value = item },
(deliveryReport) =>
{
if (deliveryReport.Error.Code != ErrorCode.NoError) {
Console.WriteLine($"Failed to deliver message: {deliveryReport.Error.Reason}");
}
else {
Console.WriteLine($"Produced event to topic {topic}: key = {user,-10} value = {item}");
numProduced += 1;
}
});
}
producer.Flush(TimeSpan.FromSeconds(10));
Console.WriteLine($"{numProduced} messages were produced to topic {topic}");
}
}
}
나는 다음과 같은 항목을 클래스에서 json 구조입니다.