Một trong những điều đầu tiên tôi nghĩ đến khi sử dụng dịch vụ mới (chẳng hạn như kho dữ liệu không phải RDBMS hoặc hàng đợi tin nhắn) là: "Tôi nên cấu trúc dữ liệu của mình như thế nào?".
Tôi đã đọc và xem một số tài liệu giới thiệu. Cụ thể, lấy ví dụ, Kafka: Hệ thống nhắn tin phân tán để xử lý nhật ký , viết:
- "Chủ đề là nơi chứa các thông điệp được liên kết"
- "đơn vị song song nhỏ nhất là phân vùng của một chủ đề. Điều này ngụ ý rằng tất cả các thông điệp ... thuộc về một phân vùng cụ thể của một chủ đề sẽ được người tiêu dùng trong một nhóm người tiêu dùng sử dụng."
Biết điều này, điều gì sẽ là một ví dụ tốt minh họa cách sử dụng các chủ đề và phân vùng? Khi nào nên một cái gì đó là một chủ đề? Khi nào nên một cái gì đó là một phân vùng?
Ví dụ: giả sử dữ liệu (Clojure) của tôi trông như sau:
{:user-id 101 :viewed "/page1.html" :at #inst "2013-04-12T23:20:50.22Z"}
{:user-id 102 :viewed "/page2.html" :at #inst "2013-04-12T23:20:55.50Z"}
Chủ đề nên được dựa trên user-id
? viewed
? at
? Còn phân vùng thì sao?
Làm thế nào để tôi quyết định?