[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
15/06/2012 13:38:37 (+0700) | #1 | 265216 |
|
ngtrongtri
Member
|
0 |
|
|
Joined: 27/03/2012 22:54:13
Messages: 114
Offline
|
|
Vấn đề tạo master -master thì mình đã làm được. Tuy nhiên mình muốn thế này
---------------------------Tomcat (Liferay)
------------------------------|
------------------------------|
------------------------------|
-----------------Software Controller (ip1)
----------------------------|--|
---------------------------|----|
--------------------------|------|
-------------------------|--------|
------------mysql 1 (ip2)-------mysql2 (ip3)
Vậy cho mình hỏi phần mềm dùng để phân tải truy vấn với mysql là phần mềm nào được không ạ ?
|
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với myslq server |
15/06/2012 15:52:53 (+0700) | #2 | 265224 |
centos
Member
|
0 |
|
|
Joined: 28/03/2008 17:13:12
Messages: 219
Offline
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với myslq server |
16/06/2012 09:44:29 (+0700) | #3 | 265243 |
|
ngtrongtri
Member
|
0 |
|
|
Joined: 27/03/2012 22:54:13
Messages: 114
Offline
|
|
centos wrote:
Chẳng hiểu bạn muốn gì
Nghĩa là thế này bạn ah. Mình có 1 trang web Liferay chạy trên Tomcat, cấu hình database của trang web như sau:
Code:
jdbc.default.url=jdbc:mysql://192.168.2.2:3306/liferay?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
Như thế nghĩa là nó chỉ liên kết đến 1 địa chỉ mysql server mà thôi. Trong khi ở đây mình có 2 mysql server trên 2 địa chỉ khác nhau, mục đích là dùng để replication.
Vậy làm thế nào để liferay có thể biết được là khi mysql server 1 die thì có thể tự động chuyển sang dùng database trên mysql server 2 ?
Hoặc khi mysql server 1 quá tải thì liferay tự động điều hướng request sang mysql server 2 ?
Mình đã tham khảo trên mạng và thấy rằng có 1 phần mềm có thể thực hiện việc đó. Nó nằm giữa Tomcat và Mysql server, mình chỉ cần cấu hình database của Liferay trỏ về server cài phần mềm controller đó, và phần mềm controller đó nó sẽ điều hướng đến 1 trong 2 mysql server. |
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với myslq server |
16/06/2012 15:53:29 (+0700) | #4 | 265258 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
ngtrongtri wrote:
Mình đã tham khảo trên mạng và thấy rằng có 1 phần mềm có thể thực hiện việc đó. Nó nằm giữa Tomcat và Mysql server, mình chỉ cần cấu hình database của Liferay trỏ về server cài phần mềm controller đó, và phần mềm controller đó nó sẽ điều hướng đến 1 trong 2 mysql server.
Phần mềm đó tên là gì vậy? Bạn thử triển khai chưa, có gì vướng mắc không? |
|
Let's build on a great foundation! |
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với myslq server |
21/06/2012 08:04:52 (+0700) | #5 | 265351 |
|
ngtrongtri
Member
|
0 |
|
|
Joined: 27/03/2012 22:54:13
Messages: 114
Offline
|
|
quanta wrote:
Phần mềm đó tên là gì vậy? Bạn thử triển khai chưa, có gì vướng mắc không?
Rất tiếc anh ah, em tham khảo nó chỉ nói chung đó là 1 "controller" thôi chứ không nói cụ thể là phần mềm nào.
|
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với myslq server |
21/06/2012 08:37:25 (+0700) | #6 | 265353 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
ngtrongtri wrote:
Rất tiếc anh ah, em tham khảo nó chỉ nói chung đó là 1 "controller" thôi chứ không nói cụ thể là phần mềm nào.
Cho mình xem link bạn đã tham khảo nhé. |
|
Let's build on a great foundation! |
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 08:59:16 (+0700) | #7 | 265354 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Cài Ultra Money trên IP1.
http://www.ultramonkey.org/ |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 09:21:07 (+0700) | #8 | 265355 |
|
Ikut3
Elite Member
|
0 |
|
|
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
|
|
Hi ngtrongtri
Bạn có thể dùng openais và crm_mon để add resource IP cho 2 nodes kia. Nếu 1 trong 2 bị fail thì node còn lại sẽ sử dụng Resource IP để thay thế. Ngoài ra áp dụng DRBD cho việc đồng bộ dữ liệu trong case này cũng khả thi.
Tuy nhiên có 2 điều bạn cần chú ý là .
1.Nếu sử dụng chức năng có sẵn của MySQL để syncreplication thì có nhanh hơn, sử dụng DRBD
2. Trong trường hợp việc connect giữa 2 máy MySQL có vấn đề, 2 con không nhận được tín hiệu của nhau trong 1 khoảng thời gian nhất định. Bạn sẽ bị Split Brain. Đối với trường hợp này bạn phải giải quyết ra sao ? :-D
Cheers, |
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 10:17:39 (+0700) | #9 | 265361 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
conmale wrote:
Cài Ultra Monkey trên IP1.
http://www.ultramonkey.org/
Em chưa dùng Ultra Monkey nhưng cho em hỏi: có lý do gì đặc biệt để anh recommend thằng này (có vẻ hơi "cổ") thay vì một load balancer thông dụng như HAProxy không ạ?
ngtrongtri wrote:
Vậy cho mình hỏi phần mềm dùng để phân tải truy vấn với mysql là phần mềm nào được không ạ ?
ngtrongtri wrote:
Vậy làm thế nào để liferay có thể biết được là khi mysql server 1 die thì có thể tự động chuyển sang dùng database trên mysql server 2 ?
Hoặc khi mysql server 1 quá tải thì liferay tự động điều hướng request sang mysql server 2 ?
Cần xác định lại xem nhu cầu của bạn là load balancing, failover hay cả hai? Mình lưu ý một chút: nếu muốn load balancing thì bạn cần 2 load balancer đặt giữa Tomcat và MySQL đấy nhé. Sau đó setup một virtual IP chuyển qua lại giữa 2 load balancers này. Mô hình trên của bạn bị SPOF (Single Point Of Failure) rồi, IP1 chết thì Tomcat cũng khỏi truy cập đến MySQL luôn. |
|
Let's build on a great foundation! |
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 10:26:53 (+0700) | #10 | 265362 |
|
conmale
Administrator
|
Joined: 07/05/2004 23:43:15
Messages: 9353
Location: down under
Offline
|
|
Chỉ vì nó work và cấu hình đơn giản mà thôi em. Không phải cái gì "cổ" là dở . |
|
What bringing us together is stronger than what pulling us apart. |
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 10:54:39 (+0700) | #11 | 265364 |
pntri85
Member
|
0 |
|
|
Joined: 25/08/2011 07:37:41
Messages: 83
Offline
|
|
Bồ thử dùng haproxy , nó làm việc good đó. |
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 10:55:32 (+0700) | #12 | 265365 |
tmlinhkct
Member
|
0 |
|
|
Joined: 06/06/2012 02:55:48
Messages: 11
Offline
|
|
Ikut3 wrote:
Hi ngtrongtri
2. Trong trường hợp việc connect giữa 2 máy MySQL có vấn đề, 2 con không nhận được tín hiệu của nhau trong 1 khoảng thời gian nhất định. Bạn sẽ bị Split Brain. Đối với trường hợp này bạn phải giải quyết ra sao ? :-D
Cheers,
cái này em thấy đối với active/active thì vào /etc/drbd.d/global_common.conf
net {
allow-two-primaries yes;
after-sb-0pri discard-zero-changes;
after-sb-1pri discard-secondary;
after-sb-2pri call-pri-lost-after-sb;
}
khi phát hiện ra split brain là tự động reboot trên 1 node đc coi là mất dữ liệu. sau reboot thì connect lại bt.
với acive/passive thì chĩ có mỗi manual còn auto thì hok bít.
|
|
|
|
|
[Question] Cho mình hỏi về load balancer giữa tomcat với MySQL server |
21/06/2012 22:16:02 (+0700) | #13 | 265402 |
|
Ikut3
Elite Member
|
0 |
|
|
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
|
|
@ tmlinhkct
He he , đúng như bạn nói. Chuyện active/active thì có thể giải quyết được bằng vài lệnh cấu hình trên. Tuy nhiên chuyển sang bài toán active active thì thuật toán load balancing , hay nói đúng hơn là kĩ thuật phân tải của application phải đảm bảo không bị nghẽn cổ chai.
Đối với việc split brain thì mình cũng có 2 giải pháp đang áp dụng. Bên mình 1 số hệ thống cũ vẫn đang dùng drbd cho failover.
1. Using a dedicated interconnect between cluster nodes (do not need the switch)
Đối với cách này , mình tạo 1 địa chỉ ảo cho card mạng sử dụng 1 lớp IP riêng, và cắm dây mạng trực tiếp giữa 2 con server, không thông qua switch . Như vậy hạn chế được rủi do corrupt connection giữa 2 server. Làm tính cluster hiểu nhầm đưa con slave lên master, trong khi bản chất thật sự con master vẫn đang hoạt động
2. Using the fence device such as iLO, smart PDU,...
Sử dụng 1 số thiết chuyên dụng thông qua console. Fence để ngắt kết nối giữa 2 con, từ đó truyền tín hiệu đến PDU để tự shutdown luôn 1 trong 2 node.
Theo mình giải pháp thứ 1 sẽ không mất nhiều tiền mà giải quyết được khoảng 70% chuyện này. Tất nhiên nếu có tiền thì giải pháp 2 cũng sẽ mang lại kết quả không tệ |
|
|
|
|
|