2012-03-10 64 views
8

Tôi đang tìm một bộ cân bằng tải tốt để sử dụng với Tomcat. Ứng dụng của chúng tôi không lưu trữ bất cứ điều gì trong bối cảnh phiên vì vậy nó không phải là quan trọng để chuyển hướng đến cùng một máy chủ cho cùng một người dùng. Tôi chỉ đơn giản là giống như một cái gì đó mà có thể xếp hàng yêu cầu phong cách round-robin hoặc dựa trên tải máy inidividual của mỗi máy chủ. Tôi cũng muốn có thể thêm các máy chủ ứng dụng vào các máy chủ có sẵn để xử lý các yêu cầu mà không phải khởi động lại bộ cân bằng tải. Chúng tôi đang chạy ứng dụng trên Linux nếu có vấn đề.Giải pháp cân bằng tải Tomcat

+0

Làm thế nào lớn của một ứng dụng đang nói ở đây?Nếu nó chỉ đơn giản là hai máy chủ để xử lý tải, bạn có thể làm điều đó ở cấp độ máy chủ web. Nếu bạn đang xem 5+ máy chủ, bạn có thể muốn xem xét các giải pháp thương mại. – Sean

+0

Có thể là 5 máy chủ. –

Trả lời

6

Nếu tất cả bạn cần là một cân bằng tải phần mềm về sử dụng Linux Apache Webserver2, Mod-Jk và Tomcat Clustering:

Tại Webserver của bạn:

1) Cài đặt apache2 và modjk:

sudo apt-get install apache2 libapache2-mod-jk 
sudo a2enmod jk 

2) Tạo tệp "workers.properties" có sẵn cho apache2 của bạn. Trong một số trường hợp, ist tự động được tạo trong thư mục/etc/apache2 của bạn. Tập tin này được giữ lb cấu hình, tên nút, ip và cổng của máy chủ Tomcat của bạn, tức là .:

worker.list=balancer,lbstats 

#node1 
worker.node1.type=ajp13 
worker.node1.host=NODE-IP 
worker.node1.port=NODE-AJP-PORT 
worker.node1.lbfactor=10 

#more nodes here ... (change name in between) 

#lb config 
worker.balancer.type=lb 
#turn off sticky session 
worker.balancer.sticky_session=0 

#add all defined node names to this list: 
worker.balancer.balance_workers=node1 

#lb status information (optional) 
worker.lbstats.type=status 

3) Tạo một phần Mod-Jk trong tập tin apache2 cấu hình của bạn, nếu nó chưa được tạo ra tự động.

JkWorkersFile /etc/apache2/workers.properties 
JkLogFile  /var/log/apache2/mod_jk.log 
JkShmFile  /tmp/jk-runtime-status 
JkLogLevel  info 

4) Gắn ứng dụng của bạn để cân bằng tải (apache2 cấu hình tập tin):

JkMount /MyApp  balancer 
JkMount /MyApp/*  balancer 

JkMount /modjkstatus lbstats 

Tại máy chủ Tomcat của bạn:

5) Cài đặt tomcat sử dụng gói tarball (cách tốt hơn sau đó apt verison). Thay đổi server.xml:

  1. vô hiệu hóa trình kết nối http.
  2. bật trình kết nối AJP/1.3 và đặt cổng bạn đã xác định trong workers.properties cho nút này.
  3. thêm jvmRoute với tên nút bên phải để các yếu tố "Engine":

    <Engine jvmRoute="node1" ... 
    
  4. thêm một yếu tố "cluster" cho cấu hình đơn giản nhất

    <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> 
    

6) Triển khai ứng dụng của bạn cho tất cả các tomcats và thêm một phần tử phân phối vào web.xml của bạn.

<distributable/> 

7) Đảm bảo máy chủ web có thể truy cập các cổng ajp trên máy chủ tomcat của bạn và không ai khác có thể.

8) Khởi động máy chủ web và máy chủ web lần lượt và kiểm tra nhật ký (/var/log/apache2/mod_jk.log).

9) Truy cập ứng dụng của bạn: http://mywebserver.com/MyApp

10) Kiểm tra (và từ chối truy cập đến) trang tình trạng lb http://mywebserver.com/modjkstatus

+0

sự khác biệt giữa modjk và modcluster là gì? – user12458

+0

mod_cluster là một giải pháp cân bằng tải khác từ JBoss (http://mod-cluster.jboss.org/) – Stefan

Các vấn đề liên quan