Một trường hợp tương tự với ví dụ của thầy (Mạng Phương Nam)
2 posters
Trang 1 trong tổng số 1 trang
Một trường hợp tương tự với ví dụ của thầy (Mạng Phương Nam)
Trong buổi học tuần vừa rồi, thầy có đưa 1 ví dụ về sự cố ở mạng Phương Nam. Trước đây, khi làm dự án, mình cũng gặp phải trường hợp tương tự như vậy, sau khi tìm hiểu mình phát hiện ra là có nhiều đối tượng Connection (kết nối database) được tạo ra khi có 1 request gửi lên server. Điều này sẽ dẫn tới database server sẽ bị quá tải, sẽ ảnh hưởng tới tốc độ chương trình.
Cách giải quyết của mình như sau: Sử dụng Connection Pool. Connection Pool thường đã được xây dựng sẵn trong các Framework hoặc các ngôn ngữ lập trình cấp cao (Java, C#...). Connection Pool sẽ chứa các đối tượng Connection (Thông thường trong 1 chương trinh chỉ cần 1 đối tượng Connection) Khi có 1 yêu cầu truy kết nối database để truy xuất dữ liệu, chương trình sẽ lấy đối tượng Connection từ Connection Pool (không cần phải tạo mới đối tượng Connection). Đây là cách giải quyết của mình, để mọi người tham khảo.
Ngoài ra, quay lại sự cố Mạng Phương Nam, Cách giải quyết của thầy cũng là một hướng. Tuy nhiên theo mình, mình đưa ra 1 hướng giải quyết khác. tương tự như dùng Connection Pool ở trên. Vấn đề của mạng Phương Nam là tạo ra quá nhiều đối tượng CGI ko cần thiết, ảnh hưởng tới tài nguyên hệ thống. Theo mình chỉ cần sửa lại 1 chút code, là chỉ cần tạo 1 đối tượng CGI, khi có 1 request gửi lên server, chương trình sẽ kiểm tra xem có đối tượng CGI nào tồn tại chưa, nếu chưa có thì tạo mới, còn nếu có rồi thì lấy đối tượng đó ra sử dụng (không cần phải tạo mới).
Xin thầy cho em biết, hướng giải quyết này có được ko. Em cám ơn thầy.
Admin
Quan sát của em khá hợp lý. Nhưng chương trình người ta viết không có mã nguồn thì biết sửa thế nào? Mặt khác, giả sử có mã nguồn, sửa không dễ đâu. "Đập đi-Xây lại với công nghệ mới (ví dụ, dùng ASP thay cho CGI)" là cách làm phù hợp.
Cách giải quyết của mình như sau: Sử dụng Connection Pool. Connection Pool thường đã được xây dựng sẵn trong các Framework hoặc các ngôn ngữ lập trình cấp cao (Java, C#...). Connection Pool sẽ chứa các đối tượng Connection (Thông thường trong 1 chương trinh chỉ cần 1 đối tượng Connection) Khi có 1 yêu cầu truy kết nối database để truy xuất dữ liệu, chương trình sẽ lấy đối tượng Connection từ Connection Pool (không cần phải tạo mới đối tượng Connection). Đây là cách giải quyết của mình, để mọi người tham khảo.
Ngoài ra, quay lại sự cố Mạng Phương Nam, Cách giải quyết của thầy cũng là một hướng. Tuy nhiên theo mình, mình đưa ra 1 hướng giải quyết khác. tương tự như dùng Connection Pool ở trên. Vấn đề của mạng Phương Nam là tạo ra quá nhiều đối tượng CGI ko cần thiết, ảnh hưởng tới tài nguyên hệ thống. Theo mình chỉ cần sửa lại 1 chút code, là chỉ cần tạo 1 đối tượng CGI, khi có 1 request gửi lên server, chương trình sẽ kiểm tra xem có đối tượng CGI nào tồn tại chưa, nếu chưa có thì tạo mới, còn nếu có rồi thì lấy đối tượng đó ra sử dụng (không cần phải tạo mới).
Xin thầy cho em biết, hướng giải quyết này có được ko. Em cám ơn thầy.
Admin
Quan sát của em khá hợp lý. Nhưng chương trình người ta viết không có mã nguồn thì biết sửa thế nào? Mặt khác, giả sử có mã nguồn, sửa không dễ đâu. "Đập đi-Xây lại với công nghệ mới (ví dụ, dùng ASP thay cho CGI)" là cách làm phù hợp.
huynhgiangson(I92C)- Tổng số bài gửi : 23
Join date : 13/09/2010
Re: Một trường hợp tương tự với ví dụ của thầy (Mạng Phương Nam)
Cái đó không sửa được đâu bạn, công nghệ CGI đã có sẵn trong hệ thống, không thể kiểm tra nếu có thì thôi không tạo nữa ... được. Theo mình hiểu về ví dụ của thầy là thế, và cũng theo suy đoán thì công nghệ web khi đó với CGI thì chưa giải quyết được việc đó hoặc rất khó để giải quyết việc đó
Similar topics
» Mình muốn tạo 1 cái forum như thầy thì làm sao?bạn nào giúp mình với
» Ôn tập chuẩn bị Thi hết môn
» Thảo luận Bài 7
» Ai đó giúp mình bài chat giữa các client với nhau với(bài ngắn gọn)!!!???
» Tại sao một ứng 64bit không thể chạy trên OS 32bit?
» Ôn tập chuẩn bị Thi hết môn
» Thảo luận Bài 7
» Ai đó giúp mình bài chat giữa các client với nhau với(bài ngắn gọn)!!!???
» Tại sao một ứng 64bit không thể chạy trên OS 32bit?
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết