Bài viết hay quá!
Mình cũng đã update giá trị cho file .env như sau:
VITE_REVERB_PORT=8000
VITE_REVERB_PATH="/reverb"
Nhưng có vẻ websocket vẫn không kết nối và update real time được.
Mình thấy biến VITE_REVERB_APP_KEY có dùng trong reverb nhưng trong file .env vẫn đang set giá trị là "my-app-key".
Bạn cho mình hỏi có cần update giá trị cho biến VITE_REVERB_APP_KEY ko ạ?
@dieptv_dev Các thông tin và giải pháp đưa ra cần phải chính xác. Sẽ có nhiều bạn đọc bài viết này và với các bạn mới, có thể sẽ định hướng sai và ghim vào đầu những ý tưởng không đúng.
Kiến thức đơn thuần chỉ là đúng - sai. Trong môi trường chia sẻ kiến thức mong bạn hiểu cho những phản biện này.
sharding theo user_id có đúng không? shard có giới hạn của nó còn user_id thì quá nhiều.
Vụ lưu bản sao thì không đúng. Các hệ thống ổ cứng tự nó có giải pháp Raid để backup rồi. Người ta chỉ clone data theo region để tối ưu tốc độ truy cập thôi.
DB thiết kế quá sơ sài và không đúng. Cốt lõi trong Social network là các post. news feed cũng là các post. img - user - follower nó còn thiển cận quá.
Thiết kế newsfeed cũng quá sơ sài, không ý nghĩa gì. Newsfeed là phần khó nhất cả về thuật toán lần hiệu năng. Một câu hỏi đơn giản như là làm sao để tin lên newsfeed không bị lặp lại cũng đau đầu rồi. (Youtube làm vụ này rất dở, xem bị lặp suốt).
Nói chung, đặt yêu cầu 500tr người dùng là quá lớn. Với cỡ đó thì chỉ cần đi vào giải quyết 1 vde trong đấy là đủ, 1 bài thế này quá loãng và ít thông tin. Đơn giản như photo_id cũng tốn không ít giấy mực rồi.
Với bản cloud, dữ liệu của mk ở cloud storage luôn được sao lưu dưới dạng mã hóa, nên dữ liệu có thể được khôi phục trong trường hợp xảy ra sự cố dẫn đến mất dữ liệu. còn vs bản self-hosted, Locker đang triển khai tính năng cho phép người dùng tự chọn kho dữ liệu để sao lưu, và chọn tần suất sao lưu, là biện pháp cần thiết trong trường hợp hệ thống self-hosted của người dùng gặp sự cố b ạ 😊
Sd các SDK với các ngôn ngữ tương ứng. hiện có JS, Python, dotNet, Java. Với các ngôn ngữ Locker chưa hỗ trợ thì có thể call binary Secret CLI bạn nhé 😄
Thế thì mk xin trả lời bạn, bên này phát hành mã nguồn mở, ai cũng có thể vào audit sourcecode của Locker SM. Còn mã hóa dữ liệu end-to-end encryption, zero-knowledge encryption, zero-trust model nữa.
Phải dùng thử thực tế thì mới kết luận được b ạ chứ mình cũng chỉ share thế thôi, cũng k thiếu gì bên giống thế này 😉
THẢO LUẬN
Với điều kiện bạn thấy lead của bạn đủ thân nhé
Bài viết hay quá! Mình cũng đã update giá trị cho file .env như sau:
Nhưng có vẻ websocket vẫn không kết nối và update real time được. Mình thấy biến VITE_REVERB_APP_KEY có dùng trong reverb nhưng trong file .env vẫn đang set giá trị là "my-app-key". Bạn cho mình hỏi có cần update giá trị cho biến VITE_REVERB_APP_KEY ko ạ?
@cuongvnb cần add URL của frontend vào springboot, xem ví dụ http://localhost:4200 là frontend
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration public class WebConfig implements WebMvcConfigurer {
}
Cảm ơn chủ thread có bài viết bổ ích, mình cũng muốn góp 1 chút ạ 🎁
https://drinking-game.web.app/
https://play.google.com/store/apps/details?id=com.stark.drinking
@dieptv_dev Các thông tin và giải pháp đưa ra cần phải chính xác. Sẽ có nhiều bạn đọc bài viết này và với các bạn mới, có thể sẽ định hướng sai và ghim vào đầu những ý tưởng không đúng.
Kiến thức đơn thuần chỉ là đúng - sai. Trong môi trường chia sẻ kiến thức mong bạn hiểu cho những phản biện này.
Bài viết chỉ đưa ra 1 cách suy nghĩ tổng quan về một hệ thống, chứ kp là đưa ra thiết kế chi tiết. Bạn thông cảm
js tự tạo thêm array null cho tới đúng số key id được thêm vào, thật là nguy hiểm
sharding theo user_id có đúng không? shard có giới hạn của nó còn user_id thì quá nhiều.
Vụ lưu bản sao thì không đúng. Các hệ thống ổ cứng tự nó có giải pháp Raid để backup rồi. Người ta chỉ clone data theo region để tối ưu tốc độ truy cập thôi.
DB thiết kế quá sơ sài và không đúng. Cốt lõi trong Social network là các post. news feed cũng là các post. img - user - follower nó còn thiển cận quá.
Thiết kế newsfeed cũng quá sơ sài, không ý nghĩa gì. Newsfeed là phần khó nhất cả về thuật toán lần hiệu năng. Một câu hỏi đơn giản như là làm sao để tin lên newsfeed không bị lặp lại cũng đau đầu rồi. (Youtube làm vụ này rất dở, xem bị lặp suốt).
Nói chung, đặt yêu cầu 500tr người dùng là quá lớn. Với cỡ đó thì chỉ cần đi vào giải quyết 1 vde trong đấy là đủ, 1 bài thế này quá loãng và ít thông tin. Đơn giản như photo_id cũng tốn không ít giấy mực rồi.
Dạ em cảm ơn tác giả của bài viết vì đã bỏ ra nhiều tâm huyết, diễn đạt logic và dễ hiểu lắm ạ
Có web đấy bạn, Locker.io 👍️
Bên này có web hay gì để xem thêm ko b ?
Với bản cloud, dữ liệu của mk ở cloud storage luôn được sao lưu dưới dạng mã hóa, nên dữ liệu có thể được khôi phục trong trường hợp xảy ra sự cố dẫn đến mất dữ liệu. còn vs bản self-hosted, Locker đang triển khai tính năng cho phép người dùng tự chọn kho dữ liệu để sao lưu, và chọn tần suất sao lưu, là biện pháp cần thiết trong trường hợp hệ thống self-hosted của người dùng gặp sự cố b ạ 😊
Team bạn dùng công cụ nào v, mk tham khảo vài bên nhưng vẫn chưa ưng lắm lại phức tạp nuwac
Bên này có cung cấp khả năng sao lưu và khôi phục secrets trong trường hợp xảy ra sự cố dẫn đến mất dữ liệu ko b?
+1 respect
Sd các SDK với các ngôn ngữ tương ứng. hiện có JS, Python, dotNet, Java. Với các ngôn ngữ Locker chưa hỗ trợ thì có thể call binary Secret CLI bạn nhé 😄
Cho mk hỏi nếu dự án của mk code bằng các ngôn ngữ X thì sẽ tích hợp công cụ này tke nào?
Khác quái gì HashiCorp Vault v ?
Thế thì mk xin trả lời bạn, bên này phát hành mã nguồn mở, ai cũng có thể vào audit sourcecode của Locker SM. Còn mã hóa dữ liệu end-to-end encryption, zero-knowledge encryption, zero-trust model nữa. Phải dùng thử thực tế thì mới kết luận được b ạ chứ mình cũng chỉ share thế thôi, cũng k thiếu gì bên giống thế này 😉