Celery и RabbitMQ не запускаются

  • Утомляйтесь, если используете двоичную сериализацию. Sun JVM - Big Endian, и если вы на Intel x86, вы находитесь на маленькой конечной машине.
  • Я бы использовал Java ByteBuffer для быстрой нативной сериализации. ByteBuffers являются частью библиотеки NIO, что, предположительно, выше, чем у «DataInput / OutputStreams».
  • Будьте особенно устали от сериализации поплавков! Как было предложено выше, его безопаснее передавать все ваши данные в строки символов по проводке.
  • На стороне C ++, независимо от сети, в какой-то момент у вас будет заполненный буфер данных. Таким образом, ваш код десериализации будет выглядеть примерно так:

  • size_t amount_read = 0;
    data my_data;
    memcpy(buffer+amount_read, &my_data.speed, sizeof(my_data.speed))
    amount_read += sizeof(my_data.speed)
    memcpy(buffer+amount_read, &my_data.length, sizeof(my_data.length))
    amount_read += sizeof(my_data.length)
    
    • Обратите внимание, что размеры базовых типов C ++ определены реализацией, поэтому вы примитивные типы в Java и C ++ don Прямо перевести.
    • Вы можете использовать буферы Google Protocol . Мое предпочтительное решение для работы с различными структурами данных.
    • Вы также можете использовать JSON для сериализации.
0
задан bumblebee 14 February 2019 в 08:31
поделиться

1 ответ

[2019-01-18 09:56:37,443: WARNING/MainProcess] consumer: Connection to broker lost. Trying to re-establish the connection...

Как упоминалось в сообщении об ошибке, брокер не работает. Вам необходимо запустить Rabbitmq перед установкой соединения с ним. Вот почему потребитель выбрасывает Connection to broker lost, поскольку брокер не работает.

0
ответ дан bumblebee 14 February 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: