Bước số 10: Push Worker sẽ chỉ cập nhật trạng thái của campaign đã push xong.
Push worker sẽ không xử lý phần cập nhật trạng thái push vào db bởi làm như thế thì tự làm chậm service push rồi
Vậy nên mình mới cần đẩy trạng thái push vào queue để 1 service khác xử lý việc đó
Các bước số 9.1 và 9.2 để async việc cập nhật trạng thái push từng user vào db và cập nhật trạng thái token nếu có vào cache.
@cuongnt398 bước "sau đó update trạng thái push vào db để mình có thể tra cứu sau này" là bước số 10 đúng không bro ? Khi có thêm consumer service thì bước số 10 có thay đổi gì không hay vẫn đi từ "Push Worker" đến DB ? Nếu có được diagram hoàn chỉnh thì quý hoá quá ạ 🧡
Mình sẽ cần 1 service consume tin từ queue, sau đó update trạng thái push vào db để mình có thể tra cứu sau này.
Với những mã lỗi token không còn hợp lệ thì mình sẽ xóa/đánh dấu token hết hạn trong cache để khi client login lại
server sẽ có thể check trạng thái token trả về cho client để client đăng ký lại 1 token mới.
@sonlh Đấy là bạn thấy thế thôi chứ nhiều người trong giới công nghệ họ không thấy thế mà Open với Free là khác nhau, không nên đánh đồng khái niệm. Về nguồn gốc của cái tên OpenAI thì trên Tweeter của mình, Elon Musk, một trong những nhà sáng lập, và là cựu chủ tịch hội đồng quản trị của OpenAI, đã từng chia sẻ:
OpenAI was created as an open source (which is why I named it “Open” AI), non-profit company to serve as a counterweight to Google, but now it has become a closed source, maximum-profit company effectively controlled by Microsoft.
Not what I intended at all.
Thế nên không phải ngẫu nhiên mà cái tên "Open"AI lại bị cộng đồng đem ra troll như vậy đâu bạn
@thangtd90 cái tên OpenAI tôi thấy n ko có vấn đề gì cả, open ở đấy ko có nghĩa là phải chia sẻ những thứ về kỹ thuật mà chỉ cần hiểu là họ có chia sẻ một sản phẩm nào đó, ở đây tôi dùng chat gpt free và chả mất gì cả nên cũng có thể hiểu họ cũng đã open 1 điều rất lớn rồi
Mình nói ChatGPT hãy giải thích Docker và K8s cho 1 đứa trẻ 6 tuổi, và đây là câu trả lời:
Docker và Kubernetes là những công cụ được sử dụng để giúp các chương trình và ứng dụng chạy trên máy tính một cách dễ dàng và hiệu quả hơn.
Giống như cách bạn sắp xếp các mảnh ghép khác nhau để tạo thành hình ảnh hoặc bức tranh, Docker giúp bạn đóng gói các phần mềm và ứng dụng vào các "hộp" gọi là "containers". Mỗi container chứa tất cả những thứ mà chương trình cần để chạy, bao gồm cả mã nguồn, các thư viện và các tài nguyên khác. Việc sử dụng Docker giúp bạn dễ dàng di chuyển và chạy các ứng dụng trên nhiều máy tính khác nhau mà không cần phải lo lắng về các sự khác biệt trong môi trường.
Kubernetes là một công cụ quản lý các container và giúp chúng hoạt động cùng nhau như một hệ thống. Tưởng tượng rằng bạn đang xây dựng một thị trấn với nhiều nhà, các con đường và các tiện ích khác. Kubernetes giống như một người quản lý thị trấn, giúp bạn xác định nơi nào để đặt các container và đảm bảo chúng hoạt động một cách hiệu quả. Kubernetes cũng giúp bạn tự động hóa các nhiệm vụ như mở rộng hoặc thu hẹp các container để đảm bảo ứng dụng của bạn luôn hoạt động tốt.
Với Docker và Kubernetes, bạn có thể chạy các ứng dụng một cách nhanh chóng và hiệu quả hơn, đồng thời đảm bảo rằng các ứng dụng của bạn luôn hoạt động một cách đáng tin cậy.
Tuy nhiên, khi sử dụng dotenv ở production, có một số rủi ro tiềm ẩn như sau:
Bảo mật: Nếu tệp .env chứa thông tin nhạy cảm như mật khẩu hoặc khóa bí mật, nó có thể bị lộ khi triển khai ứng dụng ở production.
Quản lý biến môi trường: Sử dụng dotenv có thể làm cho việc quản lý các biến môi trường trở nên phức tạp hơn, đặc biệt là khi có nhiều môi trường (ví dụ: staging, production, development).
Tất cả những lí do trên đúng ra là rủi ro khi không dùng tập tin .env chứ nhỉ? Tập tin này được đặt cùng thư mục code nên nếu nói bị lộ thì đặt trong code sẽ an toàn hơn? ? Rồi khi ông triển khai trên các môi trường khác nhau, việc duy nhất cần thay là đặt 1 biến để biết nó ở trạng thái production hay development không tiện hơn là đi sửa lại rất nhiều biến theo môi trường hay sao?
THẢO LUẬN
chào bạn mình đang bị lỗi connect ECONNREFUSED 127.0.0.1:6379 redis , nhờ bạn xem và giúp mình với :
@thanhlongst2013 Mình gửi phần kiến trúc chi tiết hơn nhé

Bước số 10: Push Worker sẽ chỉ cập nhật trạng thái của campaign đã push xong.
Push worker sẽ không xử lý phần cập nhật trạng thái push vào db bởi làm như thế thì tự làm chậm service push rồi
Vậy nên mình mới cần đẩy trạng thái push vào queue để 1 service khác xử lý việc đó
Các bước số 9.1 và 9.2 để async việc cập nhật trạng thái push từng user vào db và cập nhật trạng thái token nếu có vào cache.
@cuongnt398 bước "sau đó update trạng thái push vào db để mình có thể tra cứu sau này" là bước số 10 đúng không bro ? Khi có thêm consumer service thì bước số 10 có thay đổi gì không hay vẫn đi từ "Push Worker" đến DB ? Nếu có được diagram hoàn chỉnh thì quý hoá quá ạ 🧡
Mình sẽ cần 1 service consume tin từ queue, sau đó update trạng thái push vào db để mình có thể tra cứu sau này.

Với những mã lỗi token không còn hợp lệ thì mình sẽ xóa/đánh dấu token hết hạn trong cache để khi client login lại server sẽ có thể check trạng thái token trả về cho client để client đăng ký lại 1 token mới.
Sơ đồ ở phần "Gửi tin đến nhiều người" . Bước số 9, send response đến Queue, sau đó những response trong queue sẽ được xử lý như thế nào ạ ?
Cho mình hỏi nếu thay Kafka thành RabbitMQ thì cũng ổn mà phải không bạn ?
@sonlh Đấy là bạn thấy thế thôi chứ nhiều người trong giới công nghệ họ không thấy thế mà
Open với Free là khác nhau, không nên đánh đồng khái niệm. Về nguồn gốc của cái tên OpenAI thì trên Tweeter của mình, Elon Musk, một trong những nhà sáng lập, và là cựu chủ tịch hội đồng quản trị của OpenAI, đã từng chia sẻ:
Thế nên không phải ngẫu nhiên mà cái tên "Open"AI lại bị cộng đồng đem ra troll như vậy đâu bạn
Hay ạ
@nchicong lúc chuyển đổi Device thôi bạn ơi. Chứ backup định kì làm gì vậy?
Bài viết rất chi tiết, tuyệt vời 😁
Mong mọi người dành 1 ít thời gian ghé qua web em tham khảo các mặt hàng: https://trendylady.shop/
@thangtd90 cái tên OpenAI tôi thấy n ko có vấn đề gì cả, open ở đấy ko có nghĩa là phải chia sẻ những thứ về kỹ thuật mà chỉ cần hiểu là họ có chia sẻ một sản phẩm nào đó, ở đây tôi dùng chat gpt free và chả mất gì cả nên cũng có thể hiểu họ cũng đã open 1 điều rất lớn rồi
có cách nào để bảo mật tk mà không lưu vào setting.xml ko b ?
Mình nói ChatGPT hãy giải thích Docker và K8s cho 1 đứa trẻ 6 tuổi, và đây là câu trả lời:
Docker và Kubernetes là những công cụ được sử dụng để giúp các chương trình và ứng dụng chạy trên máy tính một cách dễ dàng và hiệu quả hơn.
Giống như cách bạn sắp xếp các mảnh ghép khác nhau để tạo thành hình ảnh hoặc bức tranh, Docker giúp bạn đóng gói các phần mềm và ứng dụng vào các "hộp" gọi là "containers". Mỗi container chứa tất cả những thứ mà chương trình cần để chạy, bao gồm cả mã nguồn, các thư viện và các tài nguyên khác. Việc sử dụng Docker giúp bạn dễ dàng di chuyển và chạy các ứng dụng trên nhiều máy tính khác nhau mà không cần phải lo lắng về các sự khác biệt trong môi trường.
Kubernetes là một công cụ quản lý các container và giúp chúng hoạt động cùng nhau như một hệ thống. Tưởng tượng rằng bạn đang xây dựng một thị trấn với nhiều nhà, các con đường và các tiện ích khác. Kubernetes giống như một người quản lý thị trấn, giúp bạn xác định nơi nào để đặt các container và đảm bảo chúng hoạt động một cách hiệu quả. Kubernetes cũng giúp bạn tự động hóa các nhiệm vụ như mở rộng hoặc thu hẹp các container để đảm bảo ứng dụng của bạn luôn hoạt động tốt.
Với Docker và Kubernetes, bạn có thể chạy các ứng dụng một cách nhanh chóng và hiệu quả hơn, đồng thời đảm bảo rằng các ứng dụng của bạn luôn hoạt động một cách đáng tin cậy.
-> Ổn áp
À. Tròn bài viết mình không có nói đặt trong code Nó ở trong environment của system. 🤪
😅
😆😆B-Cây là bách khoa đó bạn 😆
Tất cả những lí do trên đúng ra là rủi ro khi không dùng tập tin
? Rồi khi ông triển khai trên các môi trường khác nhau, việc duy nhất cần thay là đặt 1 biến để biết nó ở trạng thái
.envchứ nhỉ? Tập tin này được đặt cùng thư mục code nên nếu nói bị lộ thì đặt trong code sẽ an toàn hơn?productionhaydevelopmentkhông tiện hơn là đi sửa lại rất nhiều biến theo môi trường hay sao?khó hiểu quá nhỉ
)