2016-11-10 15 views
7

Tôi có nhiều nút RabbitMQ chạy trên các máy khác nhau. Sau khi cài đặt mỗi nút, tôi không thể chỉ định một cookie phổ biến cho mỗi cái để sử dụng vì vậy tôi phải quay trở lại và tự thay đổi tệp .erlang.cookie. Vấn đề của tôi là sau khi làm điều này tôi nhận được thông báo lỗi xung đột. Nếu tôi làm tình trạng rabbitmqctl tôi nhận được lỗi sau:Xác thực nút RabbitMQ không thành công sau khi thay đổi tệp cookie

DIAGNOSTICS

attempted to contact: ['[email protected]']

[email protected]: * connected to epmd (port 4369) on nc-mso-test01 * epmd reports node 'rabbit' running on port 25672 * TCP connection succeeded but Erlang distribution failed

  • Authentication failed (rejected by the remote node), please check the Erlang cookie

current node details: - node name: '[email protected]' - home dir: C:\Users\jol - cookie hash: 9/Hx6l+wLQv3NkmSDFqBog==

Dù kịch bản tôi gọi, tôi nhận được lỗi tương tự. Tôi đã thử khởi động lại dịch vụ, gỡ bỏ và cài đặt nó thông qua dịch vụ thỏmq. Lỗi vẫn tồn tại. Từ những gì tôi có thể thu thập từ các bài viết khác, lý do có thể là nút và nhà môi giới erlang đang chạy trên người dùng riêng biệt và mỗi người trong số họ có phiên bản cookie khác nhau, một phiên bản bị mắc kẹt với phiên bản cũ.

Làm cách nào để làm cho máy chủ và nút khởi động lại để cả hai đều sử dụng tệp cookie mới?

Trả lời

16

Tôi đã giải quyết được sự cố của mình. Tôi đã bỏ lỡ thực tế rằng thiết lập RabbitMQ có hai tệp cookie, một trong c: \ Windows cho thành phần erlang và một trong C: \ Users \% USER%. Từ những gì tôi hiểu, nếu máy ảo erlan được khởi động trên người dùng ứng dụng riêng của nó và nút RabbitMQ được bắt đầu trên một người dùng khác, đó là trường hợp của tôi, thì hai tệp cookie khác nhau và tôi phải đồng bộ hóa chúng trước khi đồng bộ hóa cookie cụm.

+1

thx, vấn đề được giải quyết bằng cách đồng bộ hóa những thứ đó (chỉ cần sao chép và dán). –

+6

Để loại bỏ cơ hội 50/50 ... Để đồng bộ hóa: sao chép C: \ Windows cookie để ghi đè lên C: \ Users \% USER% cookie – theKRAY

+1

https://www.rabbitmq.com/install-windows-manual. html, vấn đề cũng được mô tả ở đây, với đường dẫn cho hai cookie được cung cấp. – William

4

Documentation nói:

The cookie file used by the Windows service account and the user running CLI tools must be synchronised. RabbitMQ-Clustering Guide

Mở phiên bản Erlang bắt đầu với 20,2, các địa điểm tập tin cookie sẽ là:

  • Đối với người dùng chạy các công cụ CLI - thường C:\Users\%USERNAME%\.erlang.cookie cho người dùng %USERNAME%
  • Đối với RabbitMQ Dịch vụ Windows - %USERPROFILE%\.erlang.cookie (thường là C:\WINDOWS\system32\config\systemprofile)

Trên phiên bản Erlang trước 20.2 (ví dụ: 19,3 hoặc 20,1), các địa điểm tập tin cookie sẽ là:

  • Đối với người dùng chạy các công cụ CLI - thường C:\Users\%USERNAME%\.erlang.cookie cho người dùng %USERNAME%
  • Đối với dịch vụ RabbitMQ Windows - %WINDIR%\.erlang.cookie (thường C:\Windows\.erlang.cookie)
Các vấn đề liên quan