Ich versuche, eine Kafka-Produzentennachricht über natives TCP auf .net zu generieren. Ich habe die Nachricht bereits erstellt, aber mir fehlt etwas bei der CRC-Berechnung. Ich erstelle eine CRC-Berechnung mit:
public void InitCRC32C()
{
uint n, crc, k;
// Initialize the CRC32C table
for (n = 0; n < 256; n++)
{
crc = n;
for (int i = 0; i < 8; i++)
{
crc = (crc & 1) != 0 ? (crc >> 1) ^ POLY : crc >> 1;
}
crc32cTable[0, n] = crc;
}
for (n = 0; n < 256; n++)
{
crc = crc32cTable[0, n];
for (k = 1; k < 8; k++)
{
crc = crc32cTable[0, crc & 0xff] ^ (crc >> 8);
crc32cTable[k, n] = crc;
}
}
}
// Software CRC32C calculation
public uint CRC32Ccalculate(uint crc, byte[] buffer, int length)
{
uint crcVal = crc ^ 0xffffffff;
int index = 0;
// Process any leading bytes to bring the data pointer to an eight-byte boundary
while (length > 0 && (index & 7) != 0)
{
crcVal = crc32cTable[0, (crcVal ^ buffer[index]) & 0xff] ^ (crcVal >> 8);
index++;
length--;
}
// Process 8-byte aligned blocks
while (length >= 8)
{
ulong ncopy = BitConverter.ToUInt64(buffer, index);
crcVal ^= (uint)ncopy; // Assume the buffer is little-endian
crcVal = crc32cTable[7, crcVal & 0xff] ^
crc32cTable[6, (crcVal >> 8) & 0xff] ^
crc32cTable[5, (crcVal >> 16) & 0xff] ^
crc32cTable[4, (crcVal >> 24) & 0xff] ^
crc32cTable[3, (crcVal >> 32) & 0xff] ^
crc32cTable[2, (crcVal >> 40) & 0xff] ^
crc32cTable[1, (crcVal >> 48) & 0xff] ^
crc32cTable[0, crcVal >> 56];
index += 8;
length -= 8;
}
// Process remaining bytes
while (length > 0)
{
crcVal = crc32cTable[0, (crcVal ^ buffer[index]) & 0xff] ^ (crcVal >> 8);
index++;
length--;
}
return crcVal ^ 0xffffffff;
}
Aber ich erhalte eine Fehlermeldung bei der Kafka-Antwort. Irgendeine Hilfe dazu?
Mein Ziel ist die Implementierung des Kafka-Produzenten über das Mikrocontroller-Protokoll, aber ich würde es gerne vorher auf .net testen
Ich versuche, eine Kafka-Produzentennachricht über natives TCP auf .net zu generieren. Ich habe die Nachricht bereits erstellt, aber mir fehlt etwas bei der CRC-Berechnung. Ich erstelle eine CRC-Berechnung mit: [code] public void InitCRC32C() { uint n, crc, k;
// Initialize the CRC32C table for (n = 0; n < 256; n++) { crc = n; for (int i = 0; i < 8; i++) { crc = (crc & 1) != 0 ? (crc >> 1) ^ POLY : crc >> 1; } crc32cTable[0, n] = crc; }
for (n = 0; n < 256; n++) { crc = crc32cTable[0, n]; for (k = 1; k < 8; k++) { crc = crc32cTable[0, crc & 0xff] ^ (crc >> 8); crc32cTable[k, n] = crc; } } }
// Software CRC32C calculation public uint CRC32Ccalculate(uint crc, byte[] buffer, int length) { uint crcVal = crc ^ 0xffffffff; int index = 0;
// Process any leading bytes to bring the data pointer to an eight-byte boundary while (length > 0 && (index & 7) != 0) { crcVal = crc32cTable[0, (crcVal ^ buffer[index]) & 0xff] ^ (crcVal >> 8); index++; length--; }
return crcVal ^ 0xffffffff; } [/code] Aber ich erhalte eine Fehlermeldung bei der Kafka-Antwort. Irgendeine Hilfe dazu? Mein Ziel ist die Implementierung des Kafka-Produzenten über das Mikrocontroller-Protokoll, aber ich würde es gerne vorher auf .net testen [img]https://i.sstatic.net/CU247CRr.png[/img]
Als wir unsere Anwendung (einen DOTNE -Dienst) parallelistisch ausgestattet haben, fanden wir ein unerwartetes Verhalten bei der CRC -Berechnung gegenüber Textdokumenten.
Um das Problem zu...
Ich verwende Spring-Kafka 2.2.2.RELEASE(org.apache.kafka:kafka-clients:jar:2.0.1) und Spring-Boot(2.1.1). Ich kann keine Transaktion ausführen, da mein Listener keine Partition zuweisen kann. Ich...
Hier geht es um den Kafka-Hörer. Wir haben keinen Zugriff auf den Herausgeber (es ist ein Drittanbieter).
Genau 9 Minuten nach dem Start der App erhalten wir Folgendes in unseren...
Ich arbeite derzeit an einem Projekt mit Java Spring Boot und Apache Kafka, bei dem mehrere Microservices über Kafka kommunizieren. Unser Ziel ist es, 100.000 Transaktionen pro Sekunde (TPS) (oder...