Preciso transmitir uma tonelada de dados, e o desempenho é a principal prioridade. O gRPC parece estar fazendo muito mais do que apenas serializar o protobuf e, honestamente, parece um pouco inchado para o que preciso. É antipadrão serializar/desserializar manualmente o protobuf e enviar os bytes pelo TCP? E quanto de aumento de desempenho eu poderia esperar ao fazer isso?
Serialização manual protobuf sobre TCP? Totalmente bem. As pessoas complicam demais essas coisas.
Basicamente, gRPC é como levar um tanque para uma corrida de kart. Se você só precisa mover alguns bytes rápido, faça isso. Serialize seu protobuf, envie os bytes, pronto.
É isso. Sem ciência de foguetes. Você provavelmente obterá um desempenho 30% melhor pulando toda a sobrecarga do gRPC. HTTP/2, descoberta de serviço, todo esse jazz - ótimo para grandes sistemas distribuídos, exagero total se você estiver apenas movendo dados entre dois pontos. Apenas certifique-se de lidar com sua conexão de soquete e talvez adicione um pequeno prefixo de comprimento para saber exatamente quantos bytes ler. Mas, falando sério, não é complicado. Quer que eu mostre um exemplo rápido de como fazer isso direito?
Exemplo de código rápido