做邀請函的網站百度開戶返點
這個也是開放討論題,主要討論下 Kafka 在消息中是如何進行實現的。

1_cCyPNzf95ygMFUgsrleHtw976×506 21.4 KB
總結
這個題目的開發(fā)性太強了。
Kafka 可以用的地方非常多,我經歷過的項目有 Kafka 用在消息處理策略上的。這個主要是 IoT 項目,因為這個項目需要對溫度傳感器采集獲得數據。
當我們有多個數據采集點的時候,通常是在每分鐘發(fā)送幾條數據的樣子。
哪怕是這種使用場景,我覺得從系統(tǒng)架構的考慮來說還是過于臃腫了,因為 Kafka 的運行需要 ZooKeeper,一套 ZooKeeper 的運行至少是需要 3 臺服務器。
正常的生產環(huán)境部署,我們可能要部署到 5 太服務器上。
對于一個每秒鐘消息都不到 1 條的消息服務器來說,實在是太重了。
其實這種使用場景,我們可以用一些輕量的消息服務器,比如說 ActiveMQ,我就覺得非常好。
可以簡單到使用一個 Docker 容器就可以完成了,但消息處理能力也還是強大的。
對于 Kafka 這種野獸級的消息處理服務器,實在是用不上。
緩存
我們還經歷過一個項目,Kafka 被用作緩存了。
每次項目啟動的時候,都需要從 Kafka 上獲得緩存數據,然后系統(tǒng)才能運行。
這個也是非常痛苦的,有時候因為緩存機制的使用不確定,導致部分時候的數據緩存上沒有。
然后在調試的過程中就非常的痛苦。
面試回答
根據上面的情況,對這開放性的問題,通常只需要說說你對問題的了解情況就好了。
一般來說還是不會要求你做到具體的實現的,只要你對消息服務器有一些相關的知識,上面的 2 個使用案例還是比較經典的。
其實消息服務器還有很多可以使用的場景,比如說數據解耦,對爬蟲數據的數據解耦等等,都是可以用的。
很多公司還會做一個消息服務器,比如說對訂閱用戶的消息回復,手機消息推送等等,都需要我們的消息服務器去處理。
所以這個問題為設計型問題,只需要對相關問題有所了解即可。
Java 消息策略的實現 - Kafak 是怎么設計的 - 求職路上 - iSharkFly