2015-10-06 219 views
2

我們正在開發一個應用程序,它將通過UDP從一組設備接收時間序列傳感器數據作爲字節數組。這些數據需要解析並存儲在Cassandra數據庫中...卡夫卡的工作隊列選項

我們使用RabbitMQ作爲消息代理,並使用基於工作隊列的消費者來解析數據並將其推送到cassandra ...由於增加流量,我們擔心RabbitMQ的性能,並計劃遷移到卡夫卡...我們的理解是,同樣可以使用卡夫卡中的消費羣實現......我們的理解是正確的

回答

1

使用Apache Kafka,可以縮放話題比較容易。爲了能夠在同一時間處理更多數據,您需要:

  • 在同一消費羣組中擁有多個消費者時,您可以在同一時間消費多個消息。您僅限於某個主題的分區數量。
  • 增加主題的分區數量,並增加消費者數量。
  • 如果您仍然要處理更多數據,請增加經紀人的數量。

我會按照上述順序處理可擴展性,但Kafka可以處理很多。在具有2個代理的設置中,每個主題4個分區和2個消費者(每個消費者每個分區使用一個線程),消費者將json解碼爲java對象,充實並存儲到Cassandra,它可以處理30k/s(數據批量批處理200個插入語句)。