亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

首先說一下隊(duì)列設(shè)計(jì)。

假設(shè)有一本很長(zhǎng)的書,并且有許多人閱讀。有些人可以在午餐時(shí)間閱讀,有些人在周一晚上閱讀,其他人則在周末帶回家。這本書很長(zhǎng),在任何時(shí)候,我們都有數(shù)百人閱讀它。

書的讀者需要跟蹤他們?cè)跁械奈恢茫虼怂麄?strong>通過在書中放置書簽來跟蹤他們的位置。有些讀者閱讀速度很慢,書簽就在開頭。而有些讀者半途而廢,將自己的書簽留在書中,再也不會(huì)回來。

更糟糕的是,我們每天都在給這本書加頁。沒有人能真正讀完這本書。

最終,書被書簽塞滿了,直到有一天,它太重了,搬不動(dòng),沒人能再讀了。

于是有一個(gè)非常聰明的人決定不允許讀者在書中放置書簽,而必須在日記中寫下他們要翻到的頁數(shù)。

這就是 Apache Kafka 的設(shè)計(jì),而且是一個(gè)非常有彈性的設(shè)計(jì)。

其他隊(duì)列的常見替代設(shè)計(jì)是讓隊(duì)列服務(wù)跟蹤讀者所在的位置——這意味著需要為每個(gè)讀者分配內(nèi)存。行為不端的讀者可能會(huì)反復(fù)請(qǐng)求新的隊(duì)列會(huì)話,這會(huì)使隊(duì)列服務(wù)不堪重負(fù)。因此,這不是一個(gè)好的設(shè)計(jì),因?yàn)槲覀兿Mx者可以隨意閱讀而不會(huì)對(duì)隊(duì)列造成任何風(fēng)險(xiǎn)。

Kafka

Kafka 是圍繞一系列事件而設(shè)計(jì)的,例如:

1001:'甲'購買了旅游套餐'A'

1002:'甲'更新了他的訂閱偏好為“每日”

1003:'乙'使用'iphone'登錄

1004:'乙'打開了旅游套餐'巴厘島'

1005:'乙'使用'桌面Web'登錄

1006:'乙'購買了旅游套餐'巴厘島'

Kafka 事件閱讀器會(huì)跟蹤它們已讀取的流中的 ID,這意味著事件服務(wù)器不需要跟蹤它們。即使有許多行為不佳的讀者, Kafka 事件服務(wù)器也能保持可預(yù)測(cè)的內(nèi)存使用。

Kafka 聽起來很不錯(cuò),為什么需要 redis Streams?

Kafka 是存儲(chǔ)事件流的絕佳選擇,它專為大規(guī)模而設(shè)計(jì)。為了達(dá)到這種規(guī)模,Kafka 承擔(dān)了額外的復(fù)雜性,配置和管理 Kafka 設(shè)置需要了解一些復(fù)雜的概念。但對(duì)于較小的項(xiàng)目,更簡(jiǎn)單、更小的系統(tǒng)可能是更好的選擇。

Redis 是簡(jiǎn)單的、非持久性數(shù)據(jù)存儲(chǔ)的最常見選擇之一。它對(duì)所有流行的編程語言都有很好的庫支持,并且被大多數(shù)開發(fā)人員所熟知。Redis 支持更簡(jiǎn)單版本的 Kafka 事件流概念,使每個(gè)人都可以輕松使用。

Redis Streams使用示例

  1. 創(chuàng)建一個(gè)名為“stream”的流
XADD stream * data hello
  1. 讀取名為“stream”的流中的所有消息
XREAD STREAMS stream $
  1. 讀取名為“stream”的流中的最新消息
XREAD STREAMS stream 0
  1. 讀取名為“stream”的流中的最新消息,并等待1秒鐘以獲取更多消息
XREAD STREAMS stream 0 BLOCK 1000
  1. 讀取名為“stream”的流中的最新消息,并等待1秒鐘以獲取更多消息,最多獲取10條消息
XREAD STREAMS stream 0 COUNT 10 BLOCK 1000
  1. 讀取名為“stream”的流中的最新消息,并將其標(biāo)記為已處理
XREAD STREAMS stream 0 COUNT 1 BLOCK 1000
XACK stream group 1526569493336-0

總結(jié)

在一些需要使用事件流的場(chǎng)景中,一般使用 Kafka ,但在一些簡(jiǎn)單的場(chǎng)景下,也可以考慮使用 Redis Stream,畢竟Redis Stream更加簡(jiǎn)單,成本更低。

分享到:
標(biāo)簽:Redis
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定