Cần cao thủ support vấn đề Nodejs



  • Hi các tiền bối
    Em mới nghiên cứu Nodejs được mấy hôm .em biết cơ chế của nó là EventLoop và One Thread
    Nhưng em vẫn lơ mơ và có 2 câu hỏi này mong các anh giải đáp ạ
    +Node js xử lý concurrent aceess ( Có nghĩa truy cập đồng thời) ví dụ case như 2 user truy cập sửa cùng 1 table trong database nó sẽ xử lý sao ạ?

    • khả năng scale Nodejs cụ thể như nào ạ
      Mong các anh chỉ giáo giúp em cảm ơn nhiều ạ


  • @Luong-tuan-anh
    Single Thread nghĩa là bạn chỉ có thể làm 1 việc tại cùng 1 lúc. Vậy thì để nó manage concurrency thì giống như việc bạn nấu cơm. Trong lúc đợi cơm chín. Bạn sẽ tranh thủ nấu thêm được canh. Trong lúc đợi canh sôi. Bạn tranh thủ nấu cái đồ kho. Và tát cả chỉ mất 30p. Thay vì mỗi cái bạn làm tuần tự và đợi đến khi xong 1 cái thì mới làm cái tiếp theo thì có thể mất 1h.

    Nghĩa là cơ bản JS chạy 1 thread thì nó chỉ làm đc 1 tác vụ trong 1 thời điểm. Nhưng tại vì có event loop. Nên trong lúc nó đang đợi DB (1 service/server khác) xử lí xong trả kết quả về. Thì nó sẽ nhận tác vụ request khác làm tiếp. Có thể hiểu nôm na vậy. Và EventLoop là cơ chế giúp nó xử lí vậy.

    Về câu hỏi xử lí 1 table. Cái này phụ thuộc vào việc put cái nào sau nhé. Và cái loại DB xử dụng. Và hàm gọi. Nếu có isolate thì sẽ khóa. Còn không thì cái nào put sau sẽ vô.

    Về câu hỏi scale thì mình nói là ổn thôi. Vì cơ bản perfomance thực thi NodeJS không cao. Nhưng bù cái event loop tranh thủ tốt. Nên thành ra xử lí số lượng lớn cũng ổn.

    Để Scale thì bạn có thể dùng cluster ở tầng NodeJS luôn. Tạo nhiều node chạy xong xong. Phân tải. Hoặc chạy cluster container (docker, kubetcl,..) để cluster tốt hơn.

    Sent from Rodgers Zone!!!

    0

Log in to reply