sql >> Databáze >  >> NoSQL >> Redis

Celer umožňuje resetování připojení peerem

Zjistil jsem, že připojení zůstalo chybou peer, a předpokládal jsem, že RabbitMQ neposlouchá na portu nebo jej blokuje brána firewall. Nebylo tomu tak.

Spuštění RabbitMQ na Ubuntu 16.04.2 LTS, verze nainstalovaná apt:3.5.7-1ubuntu0.16.04.1

Výstup 'netstat -a' pro králičí port 5672 vypadal takto:

$ netstat -a|grep -i amqp
tcp6       0      0 [::]:amqp               [::]:*                  LISTEN

Králík však ve skutečnosti naslouchal jak na adrese IPv4, tak na adrese IPv6. Ověřil jsem to pomocí netcatu.

Chcete-li kontaktovat Králíka z jiného počítače, musíte si nastavit uživatelský účet pomocí něčeho jako jsou následující příkazy:

sudo rabbitmqctl add_user celery celerypassword
sudo rabbitmqctl add_vhost celery_vhost
sudo rabbitmqctl set_user_tags celery celerytag
sudo rabbitmqctl set_permissions -p celery_vhost celery .* .* .*

Problém byla moje adresa URL. Moje vypadala takto:

BROKER_URL = 'amqp://celery:[email protected]//'

Za tímto předposledním lomítkem je název vhost. Výše jsem dal svému vhost jméno celery_vhost. Pro připojení jsem potřeboval změnit URL na:

BROKER_URL = 'amqp://celery:[email protected]/celery_vhost'

Zjistil jsem to při pohledu na protokoly králíka v /var/log/rabbitmq. Existuje soubor .log, který obsahoval následující chybu, když jsem měl špatnou adresu URL:

{handshake_error,opening,0,
{amqp_error,access_refused,
"access to vhost '/' refused for user 'celery'",
'connection.open'}}


  1. Jak vrátit pole řetězců s agregací mongodb

  2. Jak používat knihovny třetích stran ve glassfish?

  3. jak mohu zajistit, aby relace fungovaly pomocí redis, express &socket.io?

  4. Implementujte funkci automatického dokončování pomocí vyhledávání MongoDB