原创 kafka安裝部署及集羣部署,基本使用和應用

下載安裝包 https://www.apache.org/dyn/closer.cgi?path=/kafka/1.1.0/kafka_2.11-1.1.0.tgz 安裝過程 1.tar -zxvf 解壓安裝包 kafka目錄介紹 /b

原创 kafka的Topic&Partition

關於 Topic 和 Partition Topic 在 kafka 中,topic 是一個存儲消息的邏輯概念,可以認爲是一個消息集合。 每條消息發送到 kafka 集羣的消息都有一個類別。物理上來說,不同的 topic 的消息是分開存儲

原创 kafka產生的背景和架構

kafka產生的背景 什麼是kafka? Kafka 是一款分佈式消息發佈和訂閱系統,具有高性能、高吞吐量的特點而被 廣泛應用與大數據傳輸場景。它是由 LinkedIn 公司開發,使用 Scala 語言編 寫,之後成爲 Apache 基金

原创 學習hadoop遇到的問題(當kafka集羣中的topic的數據過大的時,清除時需要注意的問題)

1.在kafka集羣中的topic存儲舊數據總量過大時,要使用./kafka-topics.sh --zookeeper node1:2181 --delete --topic log4oa命令刪除 (特別注意:如果手動刪除的話,要把涉及

原创 IM系統功能-消息支持多終端漫遊(及解決方案)-分佈式一致性

所謂的“多終端漫遊”是指:用戶在任意一個設備登錄後,都能獲取到歷史的聊天記錄。 如何實現多終端消息漫遊 那接下來我們看一下,怎麼才能讓收發的消息能在多個終端漫遊。要支持消息多終端漫遊一般來說需要兩個前置條件: 1.是通過設備維度的在線狀態

原创 IM系統功能-心跳機制(及解決方案)

爲什麼需要心跳機制 “長連接”方式給我們帶來了衆多好處,那麼要讓消息通過“長連接”實現可靠投遞,最重要的環節就在於如何維護好這個“長連接”。由於這個“長連接”底層使用的 TCP 連接並不是一個真正存在的物理連接,實際上只是一個無感知的虛擬

原创 IM系統功能-消息未讀數(及解決方案)

我們看到某個 App 有一條“未讀消息提醒”,點進去事件卻沒有,這種情況對於“強迫症患者”實在屬於不可接受;或者本來有了新的消息,但未讀數錯誤,導致沒有提醒到用戶,這種情況可能會導致用戶錯過一些重要的消息,嚴重降低用戶的使用體驗。所以,從

原创 IM系統四大基本特性-一致性(及解決方案)

一致性:一般來說是指消息的時序一致性。 消息的時序一致性其實是要求我們的消息具備“時序可比較性”,也就是消息相對某一個共同的“時序基準”可以來進行比較,所以,要保證消息的時序一致性的一個關鍵問題是:我們是否能找到這麼一個時序基準,使得我們

原创 IM系統四大基本特性-安全性(及解決方案)

消息安全性的三個維度  既然對於即時消息服務來說,安全性是如此的重要和不可妥協,那麼到底都有哪些環節可能導致消息安全方面的問題呢? 一般來說,從消息的產生和流轉的細分上,我們大概從三個維度來描述消息的安全性: 1.消息傳輸安全性 2.消息

原创 IM系統四大基本特性-可靠性(及解決方案)

消息丟失有哪幾種情況? 我們以最常見的“服務端路由中轉”類型的 IM 系統爲例(非 P2P),這裏解釋一下,所謂的“服務端路由中轉”是指:一條消息從用戶 A 發出後,需要先經過 IM 服務器來進行中轉,然後再由 IM 服務器推送給用戶 B

原创 IM系統四大基本特性-實時性(及解決方案)

IM 在追求“消息實時性”的架構上,所經歷過的幾個代表性階段。 1.短輪詢場景 在 PC Web 的早期時代,對於數據的獲取,大部分應用採用一問一答的“請求響應”式模式,實際上,像現在我們瀏覽大部分門戶網站的新聞,以及刷微博其實都是採用的

原创 面試常問緩存三大問題及解決方案

1.緩存來由 隨着互聯網系統發展的逐步完善,提高系統的qps,目前的絕大部分系統都增加了緩存機制從而避免請求過多的直接與數據庫操作從而造成系統瓶頸,極大的提升了用戶體驗和系統穩定性。2.緩存問題 雖然使用緩存給系統帶來了一定的質的提升,但

原创 IM面試題

1.消息存儲中,內容表和索引表如果需要分庫處理,應該按什麼字段來哈希? 索引表可以和內容表合併成一個表嗎? 答: 內容表應該按主鍵消息ID來哈希做分庫分表處理,這樣便於定位某一條具體的消息;索引表應該按索引的用戶UID來哈希做分庫分表處理

原创 IM系統四大基本特性

1.實時性:保證消息實時觸達是互動場景的必備能力。 對於一個實時消息系統,“實時”二字很好地表達了這個系統的基本要求。通過微信和你的好友聊天,結果等半天對方纔收到,基本上也沒有意願聊了;直播場景下,如果主播的互動消息房間裏的粉絲要等很長時

原创 spring的設計初衷,BOP 編程伊始,依賴注入的基本概念,AOP 編程理念

Spring 的設計初衷 Spring 是爲解決企業級應用開發的複雜性而設計,她可以做很多事。但歸根到底支撐 Spring 的僅 僅是少許的基本理念,而所有的這些基本理念都能可以追溯到一個最根本的使命:簡化開發。這是一個 鄭重的承諾,其實