Working communication via kafka

This commit is contained in:
2024-06-14 09:48:52 -05:00
parent d0f1e5bc22
commit 947bf35cf6
6 changed files with 120 additions and 4 deletions

View File

@ -1,15 +1,19 @@
using System;
using System.Text.Json;
using System.Threading.Tasks;
using Confluent.Kafka;
using Serializers;
using Model;
class Producer
{
public static async Task Main (string[] args)
{
var config = new ProducerConfig { BootstrapServers = "localhost:9092" };
var config = new ProducerConfig { BootstrapServers = "localhost:29092" };
using (var producerBuilder = new ProducerBuilder<string, DataModel>(config).Build())
using (var producerBuilder = new ProducerBuilder<string, DataModel>(config)
.SetValueSerializer(new JsonSerializer<DataModel>())
.Build())
{
try
{

View File

@ -0,0 +1,22 @@
using Confluent.Kafka;
using System.Text.Json;
namespace Serializers
{
public class JsonSerializer<T> : ISerializer<T>, IDeserializer<T>
{
public byte[] Serialize(T data, SerializationContext context)
{
return JsonSerializer.SerializeToUtf8Bytes(data);
}
public T Deserialize(ReadOnlySpan<byte> data, bool isNull, SerializationContext context)
{
if (!isNull)
{
return JsonSerializer.Deserialize<T>(data);
}
throw new Exception ("Data cannot be null");
}
}
}