成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你知道Kafka和Redis的各自優缺點嗎?一文帶你優化選擇

新聞 大數據 Kafka Redis
大數據技術相輔相成,沒有任何一種技術是沒有缺點,孤立發展的。今天咱們來分析下Kafka和Redis的對比,看分布式發布訂閱都有什么各自的優勢與缺點。

 前言

大數據技術相輔相成,沒有任何一種技術是沒有缺點,孤立發展的。今天咱們來分析下Kafka和Redis的對比,看分布式發布訂閱都有什么各自的優勢與缺點。

你知道Kafka和Redis的各自優缺點嗎?一文帶你優化選擇,不走彎路

Redis是什么

Redis 是開源免費的,遵守BSD協議,是一個高性能的key-value非關系型數據庫。可能有朋友會問,Redis作為存儲數據庫,怎么和分布式發布訂閱消息系統Kafka對比?兩者本身不是同一個層次的東西啊。

但是Redis中有一個queue的數據類型,用來做發布/訂閱系統,這個就可以和kafka進行比較了。

kafka是什么

Kafka 是一個高吞吐、分布式、基于發布訂閱的消息系統,利用Kafka技術可在廉價PC Server上搭建起大規模消息系統。Kafka具有消息持久化、高吞吐、分布式、多客戶端支持、實時等特性

現在干貨來了,kafka和Redis的區別聯系

存儲介質不同

redis queue數據是存儲在內存,雖然有AOF和RDB的持久化方式,但是還是以內存為主。

kafka是存儲在硬盤上

性能不同

因為存儲介質不同,理論上redis queue的性能要優于kafka,但是在實際使用過程,這塊體驗并不是很明顯,通常只有一些高并發場景下需要用redis queue,比如發紅包,可以先將紅包預先拆解然后push到redis queue,在搶的一瞬間可以很好的支撐并發。

成本不同

這邊要劃重點,劃重點,劃重點。

kafka存儲在硬盤上,成本會比內存小很多,具體差1,2個數量級是有,在數據量非常大的情況下,使用kafka能夠節省蠻多服務器成本。最常見的有應用產生的日志,這些日志產生的量級一般都很大,如果有需要進行處理,可以使用kafka隊列。

這只是簡單的介紹原始差距,咱們再來看核心對比——作為消息隊列的優劣對比

Redis作為消息隊列

redis發布(pub)、訂閱(sub)模式

redis中的發布訂閱由三部分組成。發布者(生產者)、通道(類似于topic)、訂閱者(消費者),具體結構如下圖:

你知道Kafka和Redis的各自優缺點嗎?一文帶你優化選擇,不走彎路

Redis的pub-sub模式非常像西式快餐一樣,快餐快消,全都是因為Redis是使用內存來做存取,所有你生產的消息立馬會被消費者一次性全部處理掉,并且沒有留下任何痕跡, 同時因為內存總是寶貴的,所以內存上會有限制,當生產者以及消費者上來的時候也會對redis的效率,還有Redis在處理發布和消費big size(10K+的文件)的數據的時候會表現出無法忍受的緩慢

  如果有以下場景可以考慮使用Redis作為消息隊列

  •  如果你的需求是快產快消的即時消費場景,并且生產的消息立即被消費者消費掉
  •  如果速度是你十分看重的,比如慢了一秒好幾千萬這種
  •  如果允許出現消息丟失的場景
  •  如果你不需要系統保存你發送過的消息,做到來無影去無蹤
  •  如果需要處理的數據量并不是那么巨大

KafKa作為消息隊列

  KafKa的設計精妙,支持分布式,高可用的部署,并且對一個大的隊列采用分成多個Partition(分區),來提高消息入隊的吞吐量,分而治之的思想. 并且消費的時候支持group的概念,能夠支持多個客戶端消費同個隊列,并且一個group中可以增加consumer的數量來擴展消費的處理量.

  KafKa不受生產者數量的影響,因為吞吐量足夠支撐,即使在廉價的單機服務器上也可以有10萬每秒的消息傳輸量,并且消費者是想什么時候消費都可以,消息它就在那里,十分靈活,不用擔心來無影去無蹤的恐慌.能把消息持久化,并以一定的策略(例如一定時間內刪除,或者到達多大容量的時候清空)

  當有一下場景的時候你可以考慮使用KafKa作為消息隊列

  •  如果你想要穩定的消息隊列
  •  如果你想要你發送過的消息可以保留一定的時間,并不是無跡可尋的時候
  •  如果你無法忍受數據的丟失
  •  如果速度不需要那么的快
  •  如果需要處理數據量巨大的時候

后結

[[325998]]

Redis 是以 key 的 hash 方式來分散對列存儲數據的,且 Redis 作為集群使用時,對應的應用對應一個 Redis,在某種程度上會造成數據的傾斜性,從而導致數據的丟失。

而從之前部署 Kafka 集群來看,kafka 的一個 topic(主題),可以有多個 partition(副本),而且是均勻的分布在 Kafka 集群上,這就不會出現 redis 那樣的數據傾斜性。Kafka 同時也具備 Redis 的冗余機制,像 Redis 集群如果有一臺機器宕掉是很有可能造成數據丟失,而 Kafka 因為是均勻的分布在集群主機上,即使宕掉一臺機器,是不會影響使用。同時 Kafka 作為一個訂閱消息系統,還具備每秒百萬級別的高吞吐量,持久性的、分布式的特點等。

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2021-05-29 10:11:00

Kafa數據業務

2022-12-20 07:39:46

2020-11-10 10:26:16

串口打印工具

2018-02-06 09:40:25

PythonOOP繼承

2023-03-31 08:16:53

Flutter優化內存管理

2019-10-22 10:48:48

Redis集群架構

2019-09-27 08:53:47

Redis數據C語言

2011-05-07 15:30:27

噴墨打印機技術優缺點

2020-07-01 08:07:33

Redis

2023-05-15 08:44:15

Redis數據庫

2025-01-14 11:07:30

JenkinsWAR目錄

2023-11-20 08:18:49

Netty服務器

2023-12-21 17:11:21

Containerd管理工具命令行

2024-09-26 09:10:08

2023-07-31 08:18:50

Docker參數容器

2023-11-06 08:16:19

APM系統運維

2022-11-11 19:09:13

架構

2023-05-30 08:19:07

kafka集群leader

2023-10-27 08:15:45

2022-02-24 07:34:10

SSL協議加密
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产男人的天堂 | 欧美激情精品久久久久 | 成人av网站在线观看 | 99精品国产一区二区青青牛奶 | 精品福利在线视频 | 国产激情毛片 | 国产精品三级久久久久久电影 | 国产欧美一区二区三区久久手机版 | 欧美第一区 | 午夜性色a√在线视频观看9 | 一区二区三区在线看 | 亚洲一区精品在线 | 一区二区三区国产 | 免费毛片网| 久久极品 | 91玖玖 | 成人免费在线视频 | 成人av免费播放 | 欧美二级 | 毛片免费视频 | av网站推荐| 欧美日韩亚洲视频 | av中文字幕在线 | 日韩欧美三级电影在线观看 | 精品一区二区三区四区五区 | 久草视频2| 一本色道久久综合亚洲精品高清 | 国产精品久久久久久久久久 | 亚洲视频在线观看 | 国产第一页在线观看 | 一区二区三区视频免费看 | 国产成人综合在线 | 国产成人精品免费视频大全最热 | 毛片免费视频 | 久久综合香蕉 | 欧美精品在线视频 | 欧美亚洲视频 | 成人性生交大片 | 精品1区2区| 欧美一区二区三区久久精品 | 欧美一区二区三区在线观看视频 |