以集成Redis為例來講解Storm與外部系統,以及其它庫的集成

一、介紹

我們先看下官網上的介紹:storm官方已經給我們封裝了以下外部系統的集成,我們直接引用相關jar包,即可使用

http://storm.apache.org/releases/1.1.2/index.html

  • Apache Kafka 集成, 新的 Kafka Consumer(消費者)集成
  • Apache HBase 集成
  • Apache HDFS 集成
  • Apache Hive 集成
  • Apache Solr 集成
  • Apache Cassandra 集成
  • JDBC 集成
  • JMS 集成
  • Redis 集成
  • Event Hubs 集成
  • Elasticsearch 集成
  • MQTT 集成
  • Mongodb 集成
  • OpenTSDB 集成
  • Kinesis 集成
  • Druid 集成
  • Kestrel 集成

核心本質:上面雖然列了這麼多的外部系統集成,但是內部原理其實是一樣的,就是一些封裝了特定功能的普通bolt,和我們自己寫的bolt本質上其實是一樣的,可能我們自己寫的沒有官方寫的好,所以這裡,我們僅講一個集成案例就可以了,掌握了一個,就基本掌握了所有外部系統的集成,你自己再探索其他的系統集成,那也是信手沾來的事情。

二、Storm集成Redis實戰案例演練

1、環境介紹

代碼下載地址:https://gitee.com/jikeh/JiKeHCN-RELEASE.git

項目名:spring-boot-storm-other-example

參考實例:其實我們下載的storm安裝文件裡面,已經給我們了集成案例了,我這裡只是做了些精簡,只保留了常用的一些功能。

目錄位置:\apache-storm-1.1.2\examples\storm-redis-examples

2、與redis相關的三類bolt

  • 查詢bolt:RedisLookupBolt
  • 存儲bolt:RedisStoreBolt
  • 過濾bolt:RedisFilterBolt

我們看其源碼,這三個bolt都是繼承了BaseRichBolt。

RedisLookupBolt/RedisStoreBolt/RedisFilterBolt >> BaseRichBolt

總結,storm-redis幫我們封裝了一個bolt用於redis操作,我們不用自己寫了,直接引入jar包,直接拿來使用就可以了

3、引入依賴

<dependency>
<groupid>org.apache.storm/<groupid>
<artifactid>storm-redis/<artifactid>

<version>${storm.version}/<version>
/<dependency>

4、啟動redis

  • Windows下安裝/啟動redis

  • Linux下安裝/啟動redis

  • redis客戶端的安裝/使用

5、Strom拓撲流程圖

功能:從redis中查詢單詞的出現次數

topology主類:LookupWordCount

wordSpout -> lookupBolt -> printBolt

單詞數據源 -> 從redis查詢單詞次數 -> 打印結果

6、在本地運行我們的storm作業

springboot項目,直接右鍵運行LookupWordCount主類就可以了

註釋:我們這裡僅講了RedisLookupBolt的使用,其它就不介紹了,很簡單!!!


分享到:


相關文章: