#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...