Thứ Ba, Tháng Sáu 15, 2021
spot_img
Trang chủKiến ThứcHỏi Đáp" Scalable Là Gì - Nghĩa Của Từ Scalable

” Scalable Là Gì – Nghĩa Của Từ Scalable

Mình muốn tìm hiểu về việc lập trình cho hệ thống lớn phục vụ cho hàng triệu người dùng thì khác gì so với hệ thống chỉ vài trăm người dùng. Mình nghe nói là nếu không có kĩ thuật thì hệ thống sẽ dễ bị crash khi phục vụ số lượng lớn người dùng. Cao thủ nào có tài liệu nào về phần này thì chỉ giáo với

*

khanhng:

Mình muốn tìm hiểu về việc lập trình cho hệ thống lớn phục vụ cho hàng triệu người dùng thì khác gì so với hệ thống chỉ vài trăm người dùng. Mình nghe nói là nếu không có kĩ thuật thì hệ thống sẽ dễ bị crash khi phục vụ số lượng lớn người dùng. Cao thủ nào có tài liệu nào về phần này thì chỉ giáo với

Phụ thuộc vào:

Trình độ, kĩ thuật lập trình.Hiểu biết sâu rộng về các nền tảng và lĩnh vực liên quan.

Đang xem: Scalable là gì

Kĩ thuật nào? Tài liệu nào?

Chả có, chỉ có hiểu biết và kinh nghiệm được sử dụng như thế nào để giải quyết vấn đề.

khanhng (Khanh Ng) May 2, 2015, 2:24pm #3
laptrinhio ơi vậy làm sao có được phần hiểu biết sâu về lĩnh vực đó vậy. Chẳng lẽ cứ vừa làm vừa đọc thêm hả. Tại vì mình thấy ebook hiện nay không tập trung về vấn đề đó
ozonspace (Nguyễn Trung Tín) May 2, 2015, 2:28pm #4

Mình cũng đang quan tâm vấn đề này. Khả năng phục vụ số lượng cực lớn người dùng và cập nhật không đồng bộ không cần khởi động lại hệ thống.

laptrinhio (Lập Trình Sư) May 2, 2015, 4:27pm #5
khanhng:
laptrinhio ơi vậy làm sao có được phần hiểu biết sâu về lĩnh vực đó vậy. Chẳng lẽ cứ vừa làm vừa đọc thêm hả. Tại vì mình thấy ebook hiện nay không tập trung về vấn đề đó

Nếu là lập trình viên, thì chỉ chú tâm vào lập trình một vài mảng là quan trọng nhất. Lập trình viên không phải là người đưa ra giải pháp. OK?

Trong công nghệ thông tin, có nhóm chuyên gia về giải pháp (Solution Architect – SA), đặc thù của họ là nghiên cứu và có hiểu biết rộng về rất nhiều nền tảng công nghệ, và có thể đưa ra giải pháp cho nhiều lĩnh vực. Họ nắm bắt tin tức nhanh, tính bằng giờ, có gì mới là phải biết, đi tìm hiểu các ứng dụng, các hệ điều hành, phương pháp thiết kế, cách thức vận hành, … Nói chung là tất tần tật. Những ông này thường là các lão làng Expert trong lĩnh vực IT, ít nhất cũng 10+ năm; hay các MVP. Ghi chú là: Solution Architect có thể code không giỏi, nhưng họ biết cách sử dụng và điều hướng cho các lập trình viên làm cho đúng.Cái SA này dựa trên hiểu biết, trình độ và kinh nghiệm. Không đâu có thể dạy được. Hàng trăm, hàng nghìn thứ mới ra từng giờ, phải tự nắm bắt, chứ ko có chỗ nào gọi là dạy dỗ đâu.

3 Likes
manhapt (Tom Nguyen) May 4, 2015, 2:35am #6

Một trang blog đơn thuần để chịu tải 1 triệu người đọc thường xuyên cũng không khó lắm

*

. Nhưng vấn đề ở đây là chức năng có gì? Chả “triệu view” nào vào chỉ để xem vài bài blog cả, những hệ thống mà có nhiều người view thường xuyên thì có data lớn, nhiều chức năng lúc đó mới cần nhiều đến các thiết kế có tính scalability.

Để từ không biết gì về kiến trúc đến có thể tạo ra một hệ thống lớn thì còn vừa học vừa làm dài dài 5-10 năm

*

Thực ra các hệ thống lớn đều sửa dụng các thiết kế enterprise. Bạn chỉ cần search và tìm hiểu về enterprise architecture là được.

Xem thêm: Tìm Hiểu Những Thông Tin Liên Quan Đến Vị Trí Sales Rep Là Gì

Cơ mà đều hiểu được nó và làm thì phải quay lại học kiến thức cơ bản

*

như UML, design pattern, design …

Dung_Nguyen (Coulson) May 4, 2015, 6:05am #7

Mình cũng chỉ mới tìm hiểu sơ về vấn đề này để xây dựng kiến trúc cho server.

Hệ thống lớn thì cần quan tâm tới một số vấn đề:

Khả năng chịu tải của server

Server sẽ nhận rất nhiều request từ web, mobile … Vấn đề làm sao để cùng lúc server có thể xử lý nhiều request như vậy mà không bị block.Thông thường các website nhỏ dùng các framework synchronous nghĩa là khi một request gửi lên server nó sẽ phải xử lý xong request đó rồi mới nhận request tiếp theo. Có thể dùng nhiều thread để xử lý request nhưng lượng thread tạo ra bị giới hạn và rất tốn resource.

Nếu dùng python, bạn có thể thử django, flask.

Server asynchronous, tùy theo công nghệ sử dụng, nó đấy request cho một thằng nào đó xử lý rồi nó tiếp tục nhận request khác mà không phải đợi cho request trước phải thực hiện xong, sau khi request được xử lý xong, kết quả sẽ được trả về ( có thể là hàm callback, tùy kỹ thuật).Như vậy thì cùng 1 lúc server asynchronous có thể nhận được nhiều request hơn so với server synchronous.

Xem thêm: Miễn Phí Apple Software Update Là Gì, Cách Gỡ Sạch Itunes Ra Khỏi Máy Tính

Trên Python bạn có thể dùng Tornado, Twist, Gevent

Cách thứ 3 là kết hợp cả synchronous và asynchronous cho server. (cái này mình chưa tìm hiểu kỹ)PerformanceCái quan trọng cuối cùng là hiệu suất của toàn bộ hệ thông. Thời gian để xử lý và đáp ứng 1 request từ client phải nhanh, nó quyết định chất lượng của dịch vụ.Để tối ưu được tốc độ xử lý có nhiều chỗ cần phải xử lý như truy xuất database lớn, phân bố tải giữa các server(load balancing), phân server xử lý theo khu vực địa lý …

…Nói chung là cứ học và làm thì sẽ biết mình cần biết cái gì rồi lên google tìm tài liệu thôi bạn.Mình cũng mới đang tìm hiểu. có gì sai thì mọi người góp ý.

RELATED ARTICLES

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Most Popular

Recent Comments