Vietnam

    Nodejs.vn

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Groups
    • Search

    E muốn hỏi về vấn đề khi có nhiều người cùng vào trang web 1 lúc

    Hỏi Đáp
    0
    4
    1531
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Anh Anh Tran222
      Anh Anh Tran222 last edited by Anh Anh Tran222

      Đây là lần đầu tiên e học về lập trình web và e đã chọn NodeJS, e cũng đã tự học và thực hành được 1 tuần nay. Và e có 1 vấn đề thắc mắc muốn hỏi thế này:

      Giả sử có 3 người dùng, họ cùng click vào nút đăng nhập cùng lúc ->

      • Trên máy chủ có 1 giao thức lấy thông tin người dùng đó từ giá trị Session khi đã đăng nhập:

        app.get('/', function(req, res, next){
            var s = req.session.passport;
            User.findOne({'_id' : s.user}, function(err, data){
                  if(err) {next(err);}
                  res.render('index.ejs', {id: data.id});
                  next();			
            });	
        
        });
        
      • Sau đó giá trị ID được lấy và gửi về client và render

      Câu hỏi của e là, khi 3 người kia cùng đăng nhập 1 lúc và gửi dữ liệu session về cho Server để lấy thông tin ID thì bên Sever có xử lí riêng lẻ độc lập gủi dữ liệu về cho từng người cùng 1 lúc hay là sẽ xử lý gửi theo thứ tự (ví dụ: Người thứ 1 xong -> Xử lí người thứ 2 -> xử lí người thứ 3)

      Nếu mà xử lí theo kiểu thứ tự thì chắc giả sử trang của em có 1000 thành viên và cùng đăng nhập 1 lúc thì chắc Server e nát luôn.

      Mọi người trả lời giúp e với. E cảm ơn ạ

      H Tung Nguyen215 2 Replies Last reply Reply Quote 0
      • H
        hongduy @Anh Anh Tran222 last edited by hongduy

        @Anh-Anh-Tran222 nodeJS là none blocking, người nào đăng nhập trước không có nghĩa là server tạo ra session và gởi cho người đó trước bạn nhé. tuỳ vào server nó xử lý, mà nói chung đăng nhập vào cùng 1 lúc mà 1000 người thì chắc là hiếm có.

        • đăng nhập ko kết nối database thì lưu xử lý bình thường thôi bạn
        • nếu có kết nói database thì cũng ko sao, thường thì thư viện kết nói có hỗ trợ limit connect vào. Nói chung thời gian mà 1000s người cùng 1 lúc hiếm chỉ có hacker nó gởi request kiểu vậy thôi. 100 người request 1 lúc, nhưng thời gian nó chênh lệnh nhau tính bằng mili giây.
        • NodeJS có thể chịu đc 1000 request cùng 1 lúc cũng ko sao bạn nhé.
        • Cơ chế chạy vòng tròn, gặp thằng nào request tới thì nó trả kết quả cho thằng đó. quan trọng server như thế nào. Nói chung cũng ko tốn ram cho lắm.
        • còn nếu PHP, ASP, mỗi người request vào thì nó tạo ra 1 luồng mới, mỗi lường xử lý 1 tác vụ riêng biệt. 1000 người, mỗi người 100 request, 1 request tốn khoảng 50mb chẳng hạn. 1000 x 100 x 50mb tốn khoảng 5gb ram, mình ví dụ vậy thôi hehe
        Anh Anh Tran222 1 Reply Last reply Reply Quote 0
        • Tung Nguyen215
          Tung Nguyen215 @Anh Anh Tran222 last edited by Tung Nguyen215

          @Anh-Anh-Tran222 nhiều người dùng thì người ta sẽ xử lý với services load balancing như amazon, google hoặc cloudflare..

          1 Reply Last reply Reply Quote 0
          • Anh Anh Tran222
            Anh Anh Tran222 @hongduy last edited by

            @hongduy Cảm ơn anh, vậy là giờ e đã yên tâm tiếp tục viết một mạng xã hội bằng NodeJS rồi. Cảm ơn a rất nhiều

            1 Reply Last reply Reply Quote 0
            • First post
              Last post