ke_xa_la_01
Member
Dự án này hoàn toàn fail về mặt business. Dù sao cũng +1 cho tinh thần chia sẻ của bác, nhưng em cũng khuyên bác nên dừng cuộc chơi tại đây, em thấy có vẻ phí thời gian khi tiếp tục đầu tư vào nó.
À ùi dồi, hóa ra bác đang đặt mình vào vị trí của kẻ xấu, bảo sao mình thấy có gì đó sai sai khi bác cố gắng bảo vệ quan điểm "chứng minh những gì mình nói là thật" một cách lỳ lợm đến vậy. Tuy nhiên nếu đã không tin tưởng nhau thì chắc chỉ có để thời gian chứng minh cho sự "chong xáng" của mình mà thôi bác ạ.
À quên nếu bác có suy nghĩ một cách tiêu cực như vậy thì lúc github hay gitlab mới ra đời chắc bác cũng không dám dùng đâu nhỉ? Vì nhỡ đâu nó mang source của mình đi bán thì sao?!
Ở đây mình tính đến trường hợp xấu nhất là hacker chiếm được quyền của web service, lúc đó họ hoàn toàn có thể sử dụng authorization credentials để thực hiện subscribe vào SQS-A của mình để gọi ngược thông tin mà mình đã push lên, đó là lý do vì sao mình cấm quyền sub của web service. Dĩ nhiên là nếu có thể xuất hiện một cái bug nào đó ở phía aws dẫn đến việc đó thành hiện thực, thì thông tin trong message cũng đã được mã hóa bằng RSA rồi, nên cũng khó có thể giải mã ra được nếu không có private key (thứ mà mình lưu trữ ở crawler service).
Đâu có ai ép buộc mình dùng nó vào việc gì đâu bác? Một cái bánh xe (wheel) đối với hầu hết mọi người nó để cái xe chạy được, nhưng các cụ nhà ta còn có thể làm thành máy dệt tơ hay dụng cụ tập thể dục được cơ mà. Mình chỉ follow theo quan điểm "if it works it's not stupid" mà thôi.
Bác này cứ lăm le vô điểm này thấy nó ngây thơ vs bắt bẻ vô lý vãi.Tôi chỉ không hiểu tại sao anh cần 2 bus. webservice anh gửi thông tin tài khoản đi (sau khi được anh mã hóa + SQS mã hóa), rồi sau đó webservice nhận lại thông tin giao dịch về, nghĩa là webservice có tất cả thông tin, vậy thì cần tách thành 2 bus làm gì.
Bệnh nghề nghiệp thôi anh. Tôi làm gì cũng đều hỏi tại sao. Tôi không phải muốn chứng minh chủ thớt thiết kế sai, mà tôi muốn hỏi lí do sâu xa để sau này biết đâu áp dụng được.Bác này cứ lăm le vô điểm này thấy nó ngây thơ vs bắt bẻ vô lý vãi.
Như tôi thấy thì volume của SQS-A có thể sẽ ít hơn nhiều so vs SQS-B.
Mô hình này hợp lý quá chứ còn j nữa. Tách riêng ra 2 sqs càng tăng tính độc lập và dễ xử cũng đc chứ sao.
Tất nhiên gom chung cũng ddc ko sao cả. Có j mà bác cứ lăm le bắt bẻ điểm này nhỉ.
Lấy gì đảm bảo điều này? Trừ khi open source.
Người ta có địa chỉ của SQS-B thì người ta cũng subscribe vào được thôi.
Mà 2 cái message bus 1 chiều khác gì 1 cái message bus 2 chiều nhỉ?
Nếu bảo mật như vậy thì 2 cái bus 1 chiều khác gì 1 cái bus 2 chiều nhỉ?Trừ khi bị lộ aws credentials thì mới có khả năng thôi chứ lộ endpoint cũng không phải vấn đề
Thì tôi cũng đồng ý vs anh tách vì lý do bảo mật nó hơi "lạ" .À mà lí do thớt tách thành 2 bus là vì bảo mật nhé. Chính anh cũng hiểu sai ý định của thớt rồi.
Theo m là không khác j về mặt bảo mật . Như bác đã nói ở trên , lý do bảo mật nên xài 2 sqs nó lạ lạ sao áNếu bảo mật như vậy thì 2 cái bus 1 chiều khác gì 1 cái bus 2 chiều nhỉ?
Cái mà tôi lăn tăn là vậy đó.Thì tôi cũng đồng ý vs anh tách vì lý do bảo mật nó hơi "lạ" .
Bản thân tôi tự thấy lí do đơn giản là:
- tăng sự độc lập & tách biệt nhau do data ở 2 queue có độ nhạy cảm khác nhau
- dễ phân bổ tài nguyên vì volume 2 queue khác biệt nhau.
Theo m là không khác j về mặt bảo mật . Như bác đã nói ở trên , lý do bảo mật nên xài 2 sqs nó lạ lạ sao á
Theo tôi hiểu là dùng microservice là để dùng SQS, để bảo mật thông tin tài khoản ngân hàng.Mấy web kiểu này lưu lượng nhỏ thì dùng monolith quản lý transaction cực kì đơn giản, làm ra cái mớ microservices thì chắc gì bạn đảm bảo được data consistency, fault tolerance các kiểu![]()
Đâu có ai ép buộc mình dùng nó vào việc gì đâu bác? Một cái bánh xe (wheel) đối với hầu hết mọi người nó để cái xe chạy được, nhưng các cụ nhà ta còn có thể làm thành máy dệt tơ hay dụng cụ tập thể dục được cơ mà. Mình chỉ follow theo quan điểm "if it works it's not stupid" mà thôi.
Không hiểu tư duy cậu thread lắm, data ngân hàng nằm hết trong cái crawler kia chứ có bảo mật quái gì đâu, data giao dịch nằm hết trong cái web service. Rồi 2 cái bus thằng nào inject vô được cũng soi được thông tin.Theo tôi hiểu là dùng microservice là để dùng SQS, để bảo mật thông tin tài khoản ngân hàng.
SQS là pull-based message queue không phải là pub-sub nên dùng 1 SQS cho cả 2 chiều thì xử lý rắc rối vkl.
Do SQS sẽ dùng at-least-one delivery nên hiếm khi có trường hợp cùng một message nhưng được pull nhiều lần. Vì thế nếu message này không phải dành cho crawler thì lại phải đẩy vào SQS ngược lại.
Nên dùng cho một SQS cho một mục đích để dễ xử lý.
Còn bảo mật thì không biết.
At-least-once là vì sau khi message được xử lý thành công sẽ bị xóa khỏi queue nên trong trường hợp có lỗi xử lý hoặc không xóa được thì có thể bị duplicate.in đậm ghi tào lao, trong 3 loại at-least-once, at-most-once và exactly-once thì cái at-least-once là thường xảy ra việc xử lý 1 message nhiều lần nhất rồi còn gì
At-least-once là vì sau khi message được xử lý thành công sẽ bị xóa khỏi queue nên trong trường hợp có lỗi xử lý hoặc không xóa được thì có thể bị duplicate.
Và khi một message được pull về bởi 1 consumer/receiver thì các consumer khác sẽ không thấy được message này nữa cho đến khi timeout.
https://docs.aws.amazon.com/AWSSimp...s.html#standard-queues-at-least-once-delivery
Giải thích như này còn hợp lí. Nếu thớt giải thích như này thì tôi đã không thắc mắc.SQS là pull-based message queue không phải là pub-sub nên dùng 1 SQS cho cả 2 chiều thì xử lý rắc rối vkl.
Bị nói ngược at most once. Tôi chưa dùng SQS bao giờ nhưng theo logic là như thế.có hiểu tôi nói gì không đấy
Hiểu nhưng ý câu in đậm là nói cho việc dùng 1 cái SQS để làm 2 chiều cho cả web service và crawler của thread. Giả sử khi crawler nhận message và check không phải topic tương ứng thì phải push lại vào SQS chứ trong quá trình một message được nhận bởi một consumer thì nó sẽ not available cho các consumer khác.có hiểu tôi nói gì không đấy