怎么知道一個(gè)網(wǎng)站是誰(shuí)做的上海seo優(yōu)化公司kinglink
文章目錄
- 前言
- 使用場(chǎng)景
- 如何選擇流式處理框架
前言
在之前的文章中我們介紹了如何進(jìn)行流式處理——從一般性的概念和模式說起,并列舉了一些Streams的例子:
- 流式處理相關(guān)概念總結(jié)說明
- 流式處理設(shè)計(jì)模式總結(jié)說明
- Kafka Streams 架構(gòu)概覽
接下來(lái)的文章將介紹一些流式處理的實(shí)際應(yīng)用場(chǎng)景以及我們?cè)搹哪男┓矫婵紤]選擇哪些流式處理框架,目前比較流行的流式處理框架有很多,比如說 Flink, Spark Streaming, Kafka Streaming 等。
使用場(chǎng)景
客戶服務(wù)
假設(shè)我們剛剛向一家大型連鎖酒店預(yù)訂了一個(gè)房間,并希望收到電子郵件確認(rèn)和收據(jù)。但是,在預(yù)訂了幾分鐘之后我們還沒有收到確認(rèn)郵件,于是打電話向客服確認(rèn)。
客服的回復(fù)是:“我在我們的系統(tǒng)中看不到訂單,將數(shù)據(jù)從預(yù)訂系統(tǒng)加載到客服系統(tǒng)的批處理作業(yè)每天只運(yùn)行一次,所以請(qǐng)明天再打電話過來(lái)。你應(yīng)該可以在2~3個(gè)工作日之后收到確認(rèn)郵件。”這樣的服務(wù)質(zhì)量有點(diǎn)兒糟糕,而我們已經(jīng)不止一次在一家大型連鎖酒店遭遇過類似的問題。
我們希望連鎖酒店的每一個(gè)系統(tǒng)在預(yù)訂之后的幾秒或幾分鐘之內(nèi)都能發(fā)出通知,包括客服中心、酒店、發(fā)送確認(rèn)郵件的系統(tǒng)、網(wǎng)站等。我們還希望客服中心能夠立即拉取到我們?cè)谶@家連鎖酒店的歷史入住數(shù)據(jù),知道我們是忠實(shí)顧客,從而為我們升級(jí)服務(wù)。
如果用流式處理應(yīng)用程序來(lái)構(gòu)建這些系統(tǒng),它們就可以幾近實(shí)時(shí)地接收和處理事件,帶來(lái)更好的用戶體驗(yàn)。有了這樣的系統(tǒng),顧客就可以在幾分鐘之內(nèi)收到確認(rèn)郵件,并及時(shí)從信用卡中扣除費(fèi)用,然后發(fā)送票據(jù),服務(wù)臺(tái)就可以馬上回答有關(guān)房間預(yù)訂情況的問題了。
物聯(lián)網(wǎng)
物聯(lián)網(wǎng)包含了很多東西,從可調(diào)節(jié)溫度和訂購(gòu)洗衣劑的家居設(shè)備到制藥行業(yè)的實(shí)時(shí)質(zhì)量監(jiān)控設(shè)備。
流式處理在這方面最為常見的應(yīng)用是預(yù)測(cè)何時(shí)該進(jìn)行設(shè)備維護(hù)。這與應(yīng)用程序監(jiān)控有點(diǎn)兒相似,只是監(jiān)控的對(duì)象是硬件,這在很多行業(yè)中很常見,包括制造業(yè)、通信(識(shí)別故障基站)、有線電視(在用戶投訴之前識(shí)別出故障機(jī)頂盒)等。
每一種場(chǎng)景都有自己的模式,但目標(biāo)是一樣的,即處理大量來(lái)自設(shè)備的事件,并識(shí)別出故障設(shè)備的模式,比如交換機(jī)丟包、制造過程中需要更大的力氣來(lái)擰緊螺絲,或者用戶頻繁重啟有線電視機(jī)頂盒。
欺詐檢測(cè)
欺詐檢測(cè)也叫異常檢測(cè),是一個(gè)非常廣泛的領(lǐng)域,專注于捕獲系統(tǒng)中的“作弊者”或不良分子。
欺詐檢測(cè)的應(yīng)用包括信用卡欺詐檢測(cè)、股票交易欺詐檢測(cè)、視頻游戲欺詐檢測(cè)和網(wǎng)絡(luò)安全風(fēng)險(xiǎn)。在這些欺詐行為造成大規(guī)模破壞之前,越早識(shí)別出它們?cè)胶?。一個(gè)幾近實(shí)時(shí)的可以快速對(duì)事件做出響應(yīng)(比如停止一個(gè)還沒有通過審核的交易)的系統(tǒng)比在3天之后才能檢測(cè)出欺詐行為的批處理系統(tǒng)要好得多。這也是一個(gè)在大規(guī)模事件流中識(shí)別模式的問題。
在網(wǎng)絡(luò)安全領(lǐng)域,有一個(gè)被稱為發(fā)信標(biāo)(beacon)的欺詐手法。黑客在組織內(nèi)部植入惡意軟件,惡意軟件會(huì)時(shí)不時(shí)地連接到外部網(wǎng)絡(luò)接收命令。由于惡意軟件可以在任意時(shí)間以任意頻率接收命令,因此很難被檢測(cè)到。
通常,網(wǎng)絡(luò)可以抵擋來(lái)自外部的攻擊,但難以阻止從內(nèi)部到外部的突圍。通過處理大量的網(wǎng)絡(luò)連接事件流,識(shí)別出不正常的通信模式(例如,檢測(cè)出主機(jī)訪問了平常不經(jīng)常訪問的某些IP地址),我們可以在蒙受更大的損失之前向安全組織發(fā)出告警。
如何選擇流式處理框架
在選擇流式處理框架時(shí),需要著重考慮應(yīng)用程序的類型。不同類型的應(yīng)用程序需要不同的流式處理解決方案。
數(shù)據(jù)攝取
- 數(shù)據(jù)攝取的目的是將數(shù)據(jù)從一個(gè)系統(tǒng)移動(dòng)到另一個(gè)系統(tǒng),并在傳輸過程中對(duì)數(shù)據(jù)做一些修改,使其更適用于目標(biāo)系統(tǒng)。
低延遲處理
- 任何要求立即得到響應(yīng)的應(yīng)用程序。有些欺詐檢測(cè)系統(tǒng)就屬于這一類。
異步微服務(wù)
- 這些微服務(wù)負(fù)責(zé)執(zhí)行大型業(yè)務(wù)流程中的一些簡(jiǎn)單的操作,比如更新庫(kù)存信息。這些應(yīng)用程序需要通過維護(hù)本地狀態(tài)緩存來(lái)提升性能。
幾近實(shí)時(shí)的數(shù)據(jù)分析
- 這些流式應(yīng)用程序通過執(zhí)行復(fù)雜的聚合和連接操作來(lái)對(duì)數(shù)據(jù)進(jìn)行切分,并生成有趣的業(yè)務(wù)見解。
選擇什么樣的流式處理系統(tǒng)在很大程度上取決于你要解決什么問題:
- 如果你要解決數(shù)據(jù)攝取問題,那么就要考慮是需要流式處理系統(tǒng)還是更簡(jiǎn)單的專注于數(shù)據(jù)攝取的系統(tǒng),比如Connect。如果你確定需要流式處理系統(tǒng),那么就要確保它和目標(biāo)系統(tǒng)都有可用的連接器。
- 如果你要進(jìn)行低延遲處理,那么就要考慮是否一定要使用流。一般來(lái)說,請(qǐng)求與響應(yīng)模式更適合用來(lái)處理這種任務(wù)。如果你確定需要流式處理系統(tǒng),那么就選擇一種支持逐事件低延遲模型而不是微批次模型的流式處理系統(tǒng)。
- 如果你要構(gòu)建異步微服務(wù),那么就需要可以與消息總線(希望是Kafka)集成的流式處理系統(tǒng),它應(yīng)該具備變更捕獲能力,可以將上游的變更更新到微服務(wù)的本地緩存里,并且支持本地存儲(chǔ),可以作為微服務(wù)數(shù)據(jù)的緩存和物化視圖。
- 如果你要構(gòu)建復(fù)雜的數(shù)據(jù)分析引擎,那么就需要支持本地存儲(chǔ)的流式處理系統(tǒng),不過這次不是為了本地緩存和物化視圖,而是為了支持高級(jí)聚合、時(shí)間窗口和連接,因?yàn)槿绻麤]有本地存儲(chǔ),就很難實(shí)現(xiàn)這些特性。流式處理系統(tǒng)的API需要支持自定義聚合、時(shí)間窗口操作和多種連接類型。
除了具體的應(yīng)用場(chǎng)景,還需要從全局考慮如下事項(xiàng)。
系統(tǒng)的可操作性
- 它是否容易部署?是否容易監(jiān)控和調(diào)試?是否容易擴(kuò)展?是否能夠與已有的基礎(chǔ)設(shè)施集成?如果出現(xiàn)錯(cuò)誤需要重新處理數(shù)據(jù)該怎么辦?
API的可用性和可調(diào)試性
- 用同一種框架的不同版本開發(fā)高質(zhì)量的應(yīng)用程序所耗費(fèi)的時(shí)間可能千差萬(wàn)別。因?yàn)殚_發(fā)時(shí)間和發(fā)布時(shí)機(jī)太重要了,所以需要選擇一個(gè)高效的系統(tǒng)。
化繁為簡(jiǎn)
- 大部分系統(tǒng)聲稱它們支持基于時(shí)間窗口的高級(jí)聚合和本地緩存,但問題是,它們夠簡(jiǎn)單嗎?它們是幫你處理了伸縮和故障恢復(fù)方面的問題,還是只提供了脆弱的抽象并讓你自己處理剩下的臟活?系統(tǒng)提供的API越簡(jiǎn)潔,封裝的細(xì)節(jié)越多,開發(fā)人員的效率就越高。
社區(qū)
- 大部分流式處理框架是開源的。對(duì)開源軟件來(lái)說,一個(gè)充滿生機(jī)的社區(qū)是不可替代的。好的社區(qū)意味著用戶可以定期獲得新的功能特性,而且質(zhì)量相對(duì)較高(沒有人會(huì)使用糟糕的軟件),bug可以很快地得到修復(fù),用戶的問題可以及時(shí)得到解答。如果你遇到一個(gè)奇怪的問題并在谷歌上搜索,那么可以搜索到相關(guān)的信息,因?yàn)槠渌艘苍谑褂眠@個(gè)系統(tǒng),并遇到過同樣的問題。