kafka在共享單車專案中的使用

2021-09-25 02:14:53 字數 940 閱讀 5328

#kafka共享單車資料對接

##kafka介紹

我們先看幾個基本的訊息系統術語:

[外鏈轉存失敗(img-c2xcwxum-1562566317576)(1.png)]

###topics和logs

乙個topic是對一組訊息的歸納。對每個topic,kafka 對它的日誌進行了分割槽,如下圖所示:

[外鏈轉存失敗(img-yokrci1x-1562566317578)(2.png)]

###producers

producer將訊息發布到它指定的topic中,並負責決定發布到哪個分割槽。通常簡單的由負載均衡機制隨機選擇分割槽,但也可以通過特定的分割槽函式選擇分割槽。使用的更多的是第二種。

###consumers

consumers可以加入乙個consumer 組,共同競爭乙個topic,topic中的訊息將被分發到組中的乙個成員中。同一組中的consumer可以在不同的程式中,也可以在不同的機器上。如果所有的consumer都在乙個組中,這就成為了傳統的佇列模式,在各consumer中實現負載均衡。如果所有的consumer都不在不同的組中,這就成為了發布-訂閱模式,所有的訊息都被分發到所有的consumer中。

[外鏈轉存失敗(img-bhvbac4t-1562566317578)(3.png)]

由兩個機器組成的集群擁有4個分割槽 (p0-p3) 2個consumer組. a組有兩個consumerb組有4個

##共享單車流程圖

[外鏈轉存失敗(img-q7ikzbxz-1562566317580)(4.png)]

子系統從kafka中拿到單車資料後主要做三個事情:

##kafka部署和命令

kafka需要使用到zookeeper服務,部署kafka前應檢查kafka配置是否正確(主要檢查zookeeper位址埠,日誌位址等)。

###linux環境

###window環境

Springdata redis在專案中的使用

org.springframework.data spring data redis 1.0.3.release log4j log4j org.slf4j slf4j log4j12 spring維護的使用redis用到的bean rediskeyutils類 public class redis...

gradle在專案中的應用

compilesdkversion 代表是使用的sdk版本buildtoolsversion 代表構建工具的版本,一般都是sdk相配套的。在專案建立的時候就會自動生成signingconfigs 簽名配置,主要有 develop,release develop 開發時候的配置keyalias apk...

redis在專案中的使用

1.各種計數,商品維度計數和使用者維度計數 2 6 2.儲存社交關係 譬如將使用者的好友 粉絲 關注,可以存在乙個sorted set中,score可以是timestamp,這樣求兩個人的共同好友的操作,可能就只需要用求交集命令即可。redis zadd user 100000 follow 613...