Các bước để thực hiện một dịch vụ JNDI HornetQ hiện tại là HA?


177

TL; DR

Các bước để định cấu hình dịch vụ HA-JNDI với cài đặt HornetQ là gì? Tôi tin rằng các tài liệu là một chút rải rác. Tôi đã đọc qua các tài liệu ở đây nhưng dường như không minh họa chi tiết.

Phiên bản dài hơn:

Vì vậy, chúng tôi có một thiết lập HornetQ JMS cùng với JNDI. Chúng tôi đã nói 5 máy chủ, chạy phiên bản chính của HornetQ JMS với dịch vụ JNDI trên mỗi máy chủ. Trên mỗi 5 máy chủ này, chúng tôi cũng có một nô lệ chạy cho một số chủ nhân khác của HornetQ.

Để minh họa:

Server A - HornetQa_master, JNDI, HornetQb_slave
Server B - HornetQb_master, JNDI, HornetQc_slave
Server C - HornetQc_master, JNDI, HornetQd_slave
Server D - HornetQd_master, JNDI, HornetQe_slave
Server E - HornetQe_master, JNDI, HornetQa_slave

Mỗi máy chủ HornetQ này đóng vai trò là phần mềm trung gian cho các nhu cầu phụ trợ khác nhau của chúng tôi, có nghĩa là 5 máy chủ, 5 phiên bản chính của HornetQ, 5 phiên bản nô lệ HornetQ và 5 máy chủ JNDI. Tuy nhiên, vấn đề với thiết lập này là nếu một máy chủ lưu trữ (không chỉ là quá trình, chính máy chủ đó), giả sử A đi xuống, lý tưởng là dịch vụ sẽ dự phòng cho HornetQ chạy trên máy chủ E lưu trữ nô lệ HornetQ của A. Tuy nhiên, để tiếp tục làm chủ HornetQ, HornetQa_slave cần nói chuyện với quy trình JNDI đang chạy trên máy chủ A (tôi đoán là sao chép tin nhắn). Vì máy chủ A tự tắt, HornetQa_slave chạy trên E không có cách nào để nói chuyện với JNDI trên A, và do đó, không thể tiếp tục như quy trình chính.

Nếu dịch vụ JNDI rất khả dụng, quy trình HornetQ nô lệ có thể tiếp tục trở thành chủ nhân như mong đợi. Bất cứ ai cũng có thể vui lòng chỉ vào các tài liệu hoặc minh họa trong các bước đơn giản để chúng tôi có thể chuyển đổi thiết lập hiện tại của mình sang HA-JNDI? Để biết giá trị của nó, tôi đã đọc nhiều nguồn , nhưng dường như nó không minh họa chi tiết về cách bắt đầu với việc định cấu hình HA-JNDI. Xin vui lòng cho tôi biết nếu bạn cần thêm thông tin về thiết lập hiện tại của chúng tôi.


8
Khách hàng của bạn đang chạy ở đâu? Chúng có chạy trên cùng các cá thể AS hoặc từ một cá thể / JVM khác hoặc cả hai không?
jjhavokk

3
@jjhavokk họ sẽ chạy trên một JVM khác
gravetii

4
Bạn có thể bật HornetQ ở chế độ Sẵn sàng cao (nhân rộng chủ động - thụ động) không? Kết hợp với khám phá động máy chủ và bạn nên có dự phòng đáng tin cậy. Xem docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/...docs.jboss.org/hornetq/2.4.0.Final/docs/user-manual/html/...
diginoise

4
Phiên bản jboss nào bạn đang chạy?
eis

5
Tôi thấy điều này thực sự cũ, nhưng tôi tự hỏi nếu bạn tìm thấy câu trả lời. Đến bây giờ bạn có thể biết rằng HA yêu cầu <chuyển tiếp khi không có người tiêu dùng> đúng </ chuyển tiếp khi không có người tiêu dùng> để truyền bá thông điệp, nhưng việc chuyển đổi dự phòng thành chủ không hoạt động. Tôi đã có cùng cấu hình trong weblogic và websphere nơi failback hoạt động, nhưng không có jboss. Có một cái gì đó để thiết lập để cho phép chủ nhân đồng bộ hóa và cập nhật các tin nhắn bị nhỡ để một dự phòng thích hợp hoạt động?
dùng1442498

Câu trả lời:


1

Với kiến ​​trúc được mô tả có vẻ khó khăn với tôi, bởi vì thực sự bạn cần phải cấu hình lại nô lệ là chủ và sau đó bạn sẽ bị cúp điện nhất định.

HornetQ HA được cung cấp thông qua cặp sao lưu trực tiếp và cân bằng tải được cung cấp qua một cụm.

Nếu bạn muốn cả HA và cân bằng tải thì bạn sẽ cần 2 cặp sao lưu trực tiếp được nhóm lại với nhau.

Nguồn: https://developer.jboss.org/thread/254232

Bạn có thể tham chiếu chủ không phải bằng tên máy chủ mà sử dụng địa chỉ IP ảo , để trong trường hợp chủ bị hỏng, bạn có thể cấu hình lại một trong số các nô lệ làm chủ và bắt đầu ip ảo để bạn không phải cấu hình lại phần còn lại của những người nô lệ. (Để giữ HA ngay cả khi chủ bị hỏng, bạn muốn có 2 nô lệ, để bạn có thể khởi động lại một trong số họ làm chủ và vẫn còn một người sẽ chạy).

Một cách khác để đạt được kết quả tương tự là với tên máy chủ DNS dành riêng cho chủ mà bạn có thể cấu hình lại để trỏ đến một IP khác nếu một máy chủ bị hỏng. Vì DNS được lưu trong bộ nhớ cache, mục nhập này sẽ tốt hơn trong tệp 'hosts'.

Nếu 3 máy chủ trên mỗi miền HA có quá nhiều phần cứng, bạn có thể thực hiện việc này dễ dàng hơn với các máy chủ ảo mà không cần phải mua thêm phần cứng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.