10/10/2018, 10:55
Đồng bộ hai csdl với GET
Chào các bạn. Hiện tại mình có hai csdl đặt ở hai host khác nhau. Vì lý do chi phí nên phải đặt một cái ở trong nước một cái ở mỹ. Cái host ở mỹ làm các nhiệm vụ nặng và tạo csdl. Mình định dùng cronjob chạy một file a.php với phương thức get để chuyển dữ liệu tự động từ host mỹ về tới một file b.php trên host Việt, nhiệm vụ file b.php là đẩy get lấy về vào csdl trên host Việt, để user truy cập tốc độ nhanh hơn. Tuy nhiên Get chỉ giới hạn 255 ký tự. Mình cũng đã tìm hiểu về POST nhưng nó ko làm tự động được.
Mong Các bạn có thể chỉ giúp mình cách tăng số ký tự truyền cho phương thức get hoặc một phương thức nào đó để đồng bộ hai csdl.
Cảm ơn các bạn.
Mong Các bạn có thể chỉ giúp mình cách tăng số ký tự truyền cho phương thức get hoặc một phương thức nào đó để đồng bộ hai csdl.
Cảm ơn các bạn.
Bài liên quan
Thứ hai, GET phụ thuộc vào url mà url có giới hạn nên GET cũng có giới hạn của nó. Đó là lẽ đương nhiên và không thể thay đổi.
Thứ ba, muốn dùng cronjob với POST thì tìm hiểu về curl. Ví dụ, tạo file a.php trên host Việt. Dùng cronjob gọi file này theo định kỳ. File này sẽ dùng url gọi tới file b.php trên host Mỹ. File b.php sẽ lấy trong database và trả về cho file a. File a sẽ dựa vào kết quả trả về mà lưu vào trong CSDL ở host Việt.
Tuy nhiên bạn FSVIET có thể nói thêm về cách dùng service và socket được không.
IP 2 máy cố định thì việc sử dụng socket truyền tải dữ liệu sẽ nhanh hơn rất nhiều (cái nì mới có ý định thế, nhưng nếu data không lớn, kô nhiều thì cũng kô nên, mà tui chúa ghét socket, làm việc debug cực mệt ).
À, mà để cho tiện dùng WCF, dev = WCF thì client thik dùng service hay socket đều được
Dùng webservice thì cũng chuyển XML qua thôi nhưng có đồng bộ và có chuần hơn thôi
Thật ra với trường hợp này không cần dùng cron chi cho phí băng thông. Vì khi dùng cron thì cứ "đến hẹn lại lên", đến giờ là chạy không cần biết database có thay đổi hay không. Nếu mà đặt khoảng cách quá dài, database sẽ khó đồng bộ, nếu đặt quá ngắn thì server sẽ chịu không nổi và tốn băng thông.
Có một cách khác là "chỉ gọi khi có thay đổi". Ví dụ ở host Mỹ, khi database thêm 1 record, sau khi thực hiện thêm xong, đồng thời gọi đến 1 trang ở host Việt yêu cầu cập nhật record vừa thêm. Tương tự, khi DB ở host Việt có thay đổi (xóa, sửa gì đó) thì cũng gửi yêu cầu đến trang ở Host Mỹ yêu cầu thay đổi theo. Như vậy chẳng cần cronjob làm gì.