Cám ơn anh đã đóng góp cho cộng đồng nhiều! Nhiều kinh nghiệm thực chiến quá :). Anh có thể chia sẻ thêm là có cách nào để chống giả mạo request từ Develop tool(console) của Browser không anh? 1 số tính năng như Like/Vote hay submit form, ... mình có thể Loop và ajax post random các params => là có thể Flood system(database/cache) được rồi anh :D
Theo em, cái xem tối thiểu 30s đấy phải là do frontend (player youtube) xác định, sau đó nó gửi request lên server để cộng view. Và logic tính view trên frontend cũng có nhiều tham số khác, ngoài 30s tối thiểu. Chứ ko phải cứ play video, hit server, có 1 lần view, thoát ra, chờ 30s, play lại có 1 view. Với các user khác nhau trong cùng mạng LAN (chung IP public), trừ khi youtube phát hiện bất thường (xem liên tục, định kỳ, lặp lại tần suất lớn,...) thì đều được tính view.
Em cảm ơn anh về những video hết sức bổ ích ạ. Em có một chút thắc mắc, mong anh giải đáp ạ. Hiện tại em đang xây dựng chức năng đánh giá sản phẩm: Nếu chỉ cho những người đã mua đánh giá thì mình check xem sản phẩm đó đã từng nằm trong hóa đơn chưa hay có cách làm nào để tối ưu hơn không ạ?. Em cảm ơn ạ.
Liên quan đến dữ liệu lớn nhưng cần có hiệu suất tốt. Cho em hỏi kĩ thuật Sharding với MongoDB với anh :). Kinh nghiệm khi Sharding mình cần lưu ý đến điều gì? Cách code có khác khi sharding ko? Cấu hình kết nối mongo sharding với Mongoose của Nodejs triển khai thực tế ntn, làm demo được ko a. Cám ơn anh rất nhiều!!!
Em có thắc mắc ở đoạn 24:50, nếu chỉ set keyUserId thì làm sao phân biệt view đó với video này hay video khác? Liệu có phải kết hợp thêm cả videoId nữa không ạ? Với e thấy có bạn hỏi về đồng bộ view trong Db chính thì nó diễn ra như thế nào ạ? Cách vài phút lại gởi lên redis hỏi hay sao ạ?
Hiện tại anh làm sử udngj keyUserId. Nếu em muốn cho từng video thì cú pháp sau: keyUserId-videoId. Đồng bộ thì em xem lại video về redis có trong kênh á em
Thank anh đã chia sẽ những kiến thức bổ ích 🤓
wow, quá nhiều kiến thức thực chiến luôn ạ. Cám ơn anh đã chia sẻ ạ❤❤
Cảm ơn em đã động viên
hãy chia sẻ kiến thức lập trình cho thế hệ trể Việt Nam phát triển .
Cám ơn anh đã đóng góp cho cộng đồng nhiều! Nhiều kinh nghiệm thực chiến quá :).
Anh có thể chia sẻ thêm là có cách nào để chống giả mạo request từ Develop tool(console) của Browser không anh?
1 số tính năng như Like/Vote hay submit form, ... mình có thể Loop và ajax post random các params => là có thể Flood system(database/cache) được rồi anh :D
Cảm ơn em. Video sẽ sớm giải quyết vấn đề này
Anh ơi. Cho em hỏi trường hợp máy user có chung một giải IP. (giống như máy ở công ty) vậy bài toán này mình giải quyết như nào ạ
Xem phần ratelimit trong GO member hen
Theo em, cái xem tối thiểu 30s đấy phải là do frontend (player youtube) xác định, sau đó nó gửi request lên server để cộng view. Và logic tính view trên frontend cũng có nhiều tham số khác, ngoài 30s tối thiểu. Chứ ko phải cứ play video, hit server, có 1 lần view, thoát ra, chờ 30s, play lại có 1 view. Với các user khác nhau trong cùng mạng LAN (chung IP public), trừ khi youtube phát hiện bất thường (xem liên tục, định kỳ, lặp lại tần suất lớn,...) thì đều được tính view.
Cảm ơn em đã đóng góp ý kiến rất hay!
Anh ơi, cho em hỏi chút là với user khác nhau trong cùng mạng LAN là kiểu như nào anh nhỉ, nó có ảnh hưởng gì đến bài toán kiểu rate limit không ạ?
Em cảm ơn anh về những video hết sức bổ ích ạ.
Em có một chút thắc mắc, mong anh giải đáp ạ.
Hiện tại em đang xây dựng chức năng đánh giá sản phẩm:
Nếu chỉ cho những người đã mua đánh giá thì mình check xem sản phẩm đó đã từng nằm trong hóa đơn chưa hay có cách làm nào để tối ưu hơn không ạ?.
Em cảm ơn ạ.
Có video cho bạn và cho các bạn có cùng câu hỏi này.
Anh ơi em cũng newbie mong anh chia sẽ về cách trace last login của user ạ
Em đang hỏi cách detect người dùng đóng app hay đóng browser hay là cách tổ chức database?
@@anonystick về detect ạ
Liên quan đến dữ liệu lớn nhưng cần có hiệu suất tốt. Cho em hỏi kĩ thuật Sharding với MongoDB với anh :).
Kinh nghiệm khi Sharding mình cần lưu ý đến điều gì?
Cách code có khác khi sharding ko?
Cấu hình kết nối mongo sharding với Mongoose của Nodejs triển khai thực tế ntn, làm demo được ko a.
Cám ơn anh rất nhiều!!!
Install xong em xem phần trấnction mongodb mà anh làm á em
Em có thắc mắc ở đoạn 24:50, nếu chỉ set keyUserId thì làm sao phân biệt view đó với video này hay video khác? Liệu có phải kết hợp thêm cả videoId nữa không ạ? Với e thấy có bạn hỏi về đồng bộ view trong Db chính thì nó diễn ra như thế nào ạ? Cách vài phút lại gởi lên redis hỏi hay sao ạ?
Hiện tại anh làm sử udngj keyUserId. Nếu em muốn cho từng video thì cú pháp sau: keyUserId-videoId. Đồng bộ thì em xem lại video về redis có trong kênh á em
Mình cũng mới trong BE, vd mình dùng MongoDB thì mình dùng redis tính view và update bên MongoDB ntn?
pub/sub redis đó Kiên.
em chưa hiểu title video này lắm, đây là code ngăn chặn nhiều người dùng chung tài khoản ạ?
Không em. Nhiều hệ thống sẽ tính lượt views để xếp hạng bài viết, videos... vậy backend sẽ làm như thế nào để tránh gian lận lượt view?
Nếu theo ip ví dụ 1 máy họ dùng proxy dân cư thì vẫn qua mặt tính đc view a ạ
Đương nhiên làm sao qua mặt được. Vị trí địa lý, khung giờ... Và quan trọng là một tháng họ sẽ review lại nữa.
Có nhận đệ không a, chủ yếu mong được học hỏi
Khônh giám haha. Em cứ tìm hiểu có gì không hiểu hỏi lại hen
Nhận vào làm project a-z.
lưu ở redis đấy rồi thực tế có lưu views này xuống db ko sư phụ
Có em. Luôn luôn đồng bộ, sở dĩ redis đứng trước là giảm áp lực cho db khi lưu lượng lớn.