RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

替代ELK:ClickHouse+Kafka+FlieBeat才是最絕的

電子工程師 ? 來源: 芋道源碼 ? 作者: 芋道源碼 ? 2022-10-09 17:41 ? 次閱讀

來源:juejin.cn/post/7120880190003085320

背景

Elasticsearch 與 ClickHouse

成本分析

環(huán)境部署

總結(jié)

背景

saas業(yè)務(wù)業(yè)務(wù)未來需要業(yè)務(wù)管理、業(yè)務(wù)管理等業(yè)務(wù)能力。

為了平臺系統(tǒng)能力、我們需要完善數(shù)據(jù)集來幫助運(yùn)營分析活動效果、提升運(yùn)營能力。

如果在實(shí)際過程中直接部署系統(tǒng),對于用戶來說,將是一個(gè)巨大的數(shù)據(jù)比較能力的服務(wù)器。我們在開發(fā)中使用折中方案完善數(shù)據(jù)分析。

Elasticsearch 與 ClickHouse

ClickHouse是一款系統(tǒng)列式對數(shù)據(jù)庫管理的測試,我們使用ClickHouse進(jìn)行了以下優(yōu)勢:

①ClickHouse 輸入商品

單服務(wù)器記錄寫入量在 50MB 到 50MB/秒,記錄寫入超過 60w 個(gè)數(shù),是 ES 的 5 倍以上。

在 ES 中比較常見的寫 Rejected 導(dǎo)致數(shù)據(jù)丟失、寫入延遲等問題,在 ClickHouse 中不容易發(fā)生。

②查詢速度快

網(wǎng)頁緩存中的快速數(shù)據(jù),在頁面緩存中的快速查詢單 2-30GB/查詢速度;沒有在的情況下,查詢查詢結(jié)果的查詢速度和數(shù)據(jù)查詢速度比 ES ClickHouse 5-30倍以上。

③點(diǎn)擊費(fèi)用比ES費(fèi)用多少

Click House 的 ES 高,同樣數(shù)據(jù)占用的計(jì)算機(jī)空間比 ES 的 1/0 使用 1/03 次,可以節(jié)省空間的同時(shí),也能有效地減少碳 IO,這也是 Click 查詢效率更高的原因之一。

be5e8cce-3568-11ed-ba43-dac502259ad0.png

點(diǎn)擊使用House的內(nèi)存資源,可以比用CPU的資源。

be7beddc-3568-11ed-ba43-dac502259ad0.png

成本分析

備注:在沒有任何折扣的情況下,基于阿里云分析。

be8f6d62-3568-11ed-ba43-dac502259ad0.png

環(huán)境部署

動物園管理員聚集部署

bec276bc-3568-11ed-ba43-dac502259ad0.png

yuminstalljava-1.8.0-openjdk-devel.x86_64
/etc/profile配置環(huán)境變量
更新系統(tǒng)時(shí)間
yuminstallntpdate
ntpdateasia.pool.ntp.org

mkdirzookeeper
mkdir./zookeeper/data
mkdir./zookeeper/logs

wget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.7.1/apache-zookeeper-3.7.1-bin.tar.gz
tar-zvxfapache-zookeeper-3.7.1-bin.tar.gz-C/usr/zookeeper

exportZOOKEEPER_HOME=/usr/zookeeper/apache-zookeeper-3.7.1-bin
exportPATH=$ZOOKEEPER_HOME/bin:$PATH

進(jìn)入ZooKeeper配置目錄
cd$ZOOKEEPER_HOME/conf

新建配置文件
vizoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/zookeeper/data
dataLogDir=/usr/zookeeper/logs
clientPort=2181
server.1=zk1:2888:3888
server.2=zk2:2888:3888
server.3=zk3:2888:3888

在每臺服務(wù)器上執(zhí)行,給zookeeper創(chuàng)建myid
echo"1">/usr/zookeeper/data/myid
echo"2">/usr/zookeeper/data/myid
echo"3">/usr/zookeeper/data/myid

進(jìn)入ZooKeeperbin目錄
cd$ZOOKEEPER_HOME/bin
shzkServer.shstart

卡夫卡基地部署

mkdir-p/usr/kafka
chmod777-R/usr/kafka
wget--no-check-certificatehttps://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.2.0/kafka_2.12-3.2.0.tgz
tar-zvxfkafka_2.12-3.2.0.tgz-C/usr/kafka


不同的brokerId設(shè)置不一樣,比如1,2,3
broker.id=1
listeners=PLAINTEXT://ip:9092
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dir=/usr/kafka/logs
num.partitions=5
num.recovery.threads.per.data.dir=3
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
zookeeper.connection.timeout.ms=30000
group.initial.rebalance.delay.ms=0

后臺常駐進(jìn)程啟動kafka
nohup/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-start.sh/usr/kafka/kafka_2.12-3.2.0/config/server.properties>/usr/kafka/logs/kafka.log>&1&

/usr/kafka/kafka_2.12-3.2.0/bin/kafka-server-stop.sh

$KAFKA_HOME/bin/kafka-topics.sh--list--bootstrap-serverip:9092

$KAFKA_HOME/bin/kafka-console-consumer.sh--bootstrap-serverip:9092--topictest--from-beginning

$KAFKA_HOME/bin/kafka-topics.sh--create--bootstrap-serverip:9092--replication-factor2--partitions3--topicxxx_data

FileBeat 部署

sudorpm--importhttps://packages.elastic.co/GPG-KEY-elasticsearch

Createafilewitha.repoextension(forexample,elastic.repo)inyour/etc/yum.repos.d/directoryandaddthefollowinglines:
在/etc/yum.repos.d/目錄下創(chuàng)建elastic.repo

[elastic-8.x]
name=Elasticrepositoryfor8.xpackages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

yuminstallfilebeat
systemctlenablefilebeat
chkconfig--addfilebeat

FileBeat配置文件說明,坑點(diǎn)1(需設(shè)置keys_under_root: true)。如果不設(shè)置kafka的消息字段如下:

bf018dac-3568-11ed-ba43-dac502259ad0.png

文件目錄:/etc/filebeat/filebeat.yml

filebeat.inputs:
-type:log
enabled:true
paths:
-/root/logs/xxx/inner/*.log
json:
如果不設(shè)置該索性,所有的數(shù)據(jù)都存儲在message里面,這樣設(shè)置以后數(shù)據(jù)會平鋪。
keys_under_root:true
output.kafka:
hosts:["kafka1:9092","kafka2:9092","kafka3:9092"]
topic:'xxx_data_clickhouse'
partition.round_robin:
reachable_only:false
required_acks:1
compression:gzip
processors:
剔除filebeat無效的字段數(shù)據(jù)
-drop_fields:
fields:["input","agent","ecs","log","metadata","timestamp"]
ignore_missing:false

nohup./filebeat-e-c/etc/filebeat/filebeat.yml>/user/filebeat/filebeat.log&
輸出到filebeat.log文件中,方便排查

clickhouse 部署

bf2568a8-3568-11ed-ba43-dac502259ad0.png

檢查當(dāng)前CPU是否支持SSE4.2,如果不支持,需要通過源代碼編譯構(gòu)建
grep-qsse4_2/proc/cpuinfo&&echo"SSE4.2supported"||echo"SSE4.2notsupported"
返回"SSE4.2supported"表示支持,返回"SSE4.2notsupported"表示不支持

創(chuàng)建數(shù)據(jù)保存目錄,將它創(chuàng)建到大容量磁盤掛載的路徑
mkdir-p/data/clickhouse
修改/etc/hosts文件,添加clickhouse節(jié)點(diǎn)
舉例:
10.190.85.92bigdata-clickhouse-01
10.190.85.93bigdata-clickhouse-02

服務(wù)器性能參數(shù)設(shè)置:
cpu頻率調(diào)節(jié),將CPU頻率固定工作在其支持的最高運(yùn)行頻率上,而不動態(tài)調(diào)節(jié),性能最好
echo'performance'|tee/sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

內(nèi)存調(diào)節(jié),不要禁用overcommit
echo0|tee/proc/sys/vm/overcommit_memory

始終禁用透明大頁(transparent huge pages)。它會干擾內(nèi)存分配器,從而導(dǎo)致顯著的性能下降
echo'never'|tee/sys/kernel/mm/transparent_hugepage/enabled

首先,需要添加官方存儲庫:
yuminstallyum-utils
rpm--import
yum-config-manager--add-repo

查看clickhouse可安裝的版本:
yumlist|grepclickhouse
運(yùn)行安裝命令:
yum-yinstallclickhouse-serverclickhouse-client

修改/etc/clickhouse-server/config.xml配置文件,修改日志級別為information,默認(rèn)是trace
information
執(zhí)行日志所在目錄:

正常日志
/var/log/clickhouse-server/clickhouse-server.log
異常錯(cuò)誤日志
/var/log/clickhouse-server/clickhouse-server.err.log

查看安裝的clickhouse版本:
clickhouse-server--version
clickhouse-client--password

sudoclickhousestop
sudoclickhousetart
sudoclickhousestart
bf4ae7d6-3568-11ed-ba43-dac502259ad0.png

clickhouse 部署過程中遇到的一些問題如下:

①點(diǎn)擊house創(chuàng)建kafka引擎表:

CREATETABLEdefault.kafka_clickhouse_inner_logONCLUSTERclickhouse_cluster(
log_uuidString,
date_partitionUInt32,
event_nameString,
activity_nameString,
activity_typeString,
activity_idUInt16
)ENGINE=KafkaSETTINGS
kafka_broker_list='kafka1:9092,kafka2:9092,kafka3:9092',
kafka_topic_list='data_clickhouse',
kafka_group_name='clickhouse_xxx',
kafka_format='JSONEachRow',
kafka_row_delimiter='
',
kafka_num_consumers=1;

1:clikhouse 客戶端問題無法查詢 kafka 引擎

不允許直接選擇。要啟用使用設(shè)置 stream_like_engine_allow_direct_select.(QUERY_NOT_ALLOWED)(版本 22.5.2.53(官方構(gòu)建))

bfa1f3dc-3568-11ed-ba43-dac502259ad0.png

解決方案:

需要在clickhouseclient創(chuàng)建加上--stream_like_engine_allow_direct_select1

clickhouse-client--stream_like_engine_allow_direct_select1--passwordxxxxx
c02e495e-3568-11ed-ba43-dac502259ad0.png

②點(diǎn)擊房屋創(chuàng)建本地節(jié)點(diǎn)表

2:無法開啟本地表宏

代碼:62。DB::Exception:[10.74.244.57:9000] 上出現(xiàn)錯(cuò)誤:代碼:62.DB::Exception:在處理“/clickhouse/tables/default/”中的替換時(shí),配置中沒有宏“碎片” bi_inner_log_local/{shard}' at '50' 或宏在這里不受支持。(SYNTAX_ERROR)(版本 22.5.2.53(官方版本))。(SYNTAX_ERROR) (版本 22.5.2.53 (正式版))

創(chuàng)建本地表(使用復(fù)制去重表引擎)
createtabledefault.bi_inner_log_localONCLUSTERclickhouse_cluster(
log_uuidString,
date_partitionUInt32,
event_nameString,
activity_nameString,
credits_bringInt16,
activity_typeString,
activity_idUInt16
)ENGINE=ReplicatedReplacingMergeTree('/clickhouse/tables/default/bi_inner_log_local/{shard}','{replica}')
PARTITIONBYdate_partition
ORDERBY(event_name,date_partition,log_uuid)
SETTINGSindex_granularity=8192;

解決方案:在不同的clickhouse節(jié)點(diǎn)上配置不同的分片,每個(gè)節(jié)點(diǎn)的分片名稱不能一致。


01
example01-01-1

c0dbc840-3568-11ed-ba43-dac502259ad0.pngc126c296-3568-11ed-ba43-dac502259ad0.png

3:clickhouse中節(jié)點(diǎn)數(shù)據(jù)已經(jīng)存在

代碼:253。DB::Exception:出現(xiàn)錯(cuò)誤:代碼:253。DB::Exception:副本/clickhouse/tables/default/bi_inner_log_local/01/replicas/example01-01-1 已存在。(REPLICA_IS_ALREADY_EXIST)(版本 22.5.2.53(官方版本))。(REPLICA_IS_ALREADY_EXIST)(版本 22.5.2.53(官方構(gòu)建))

解決方案:進(jìn)入zookeeper客戶端刪除相關(guān)節(jié)點(diǎn),然后再重新創(chuàng)建ReplicatedReplaceingMergeTree表。這樣可以保障每一個(gè)clickhouse節(jié)點(diǎn)去消費(fèi)kafka分區(qū)的數(shù)據(jù)。

③點(diǎn)擊房屋創(chuàng)建聚會表

日志(根據(jù)日志_uuid 分發(fā)給數(shù)據(jù),相同的日志_uuid 會發(fā)送到同一時(shí)間的數(shù)據(jù)分片上重發(fā)):

CREATETABLEdefault.bi_inner_log_allONCLUSTERclickhouse_clusterASdefault.bi_inner_log_local
ENGINE=Distributed(clickhouse_cluster,default,bi_inner_log_local,xxHash32(log_uuid));

4:自動查詢表無法查詢

代碼:516。DB::Exception:從 10.74.244.57:9000 接收。DB::Exception:默認(rèn)值:身份驗(yàn)證失?。好艽a不正確或沒有該名稱的用戶。(AUTHENTICATION_FAILED) (版本 22.5.2.53 (正式版))

解決方案:

 

 

 
 
true

ip1
9000
default
xxxx



true

ip2
9000
default
xxxx




④點(diǎn)擊房屋創(chuàng)建物化視圖

創(chuàng)建物化物,把查看 Kafka 消費(fèi)表消費(fèi)的同步 ClickHouse 表格數(shù)據(jù)表。

CREATEMATERIALIZEDVIEWdefault.view_bi_inner_logONCLUSTERclickhouse_clusterTOdefault.bi_inner_log_allAS
SELECT
log_uuid,
date_partition,
event_name,
activity_name,
credits_bring,
activity_type,
activity_id
FROMdefault.kafka_clickhouse_inner_log;

小結(jié):不負(fù)有心人,解決完以上所有的問題。數(shù)據(jù)流轉(zhuǎn)通了!這里所有組件都是功夫文檔比較新的版本,所以過程中問題的解決基本都是官方或操作手冊一步一步的解決。

c15ffa02-3568-11ed-ba43-dac502259ad0.png

總結(jié)一句話:問題遇到去解決或--幫助去解決,慢慢的你的官方升華。

總結(jié)

整個(gè)部署的過程中有一個(gè)坑,特別是filebeat yml的參數(shù)設(shè)置和clickhouse的配置說明。

很久沒有更新了,經(jīng)常看到博客35歲以后辦的問題。說實(shí)話我自己也不會好以后怎么辦,核心還是持續(xù)的&輸出。不斷的博客制造了自己的護(hù)城河,不管是技術(shù)專家、業(yè)務(wù)專家、架構(gòu)、管理等。

個(gè)人建議如果能經(jīng)常寫代碼就奮戰(zhàn)一線,管理徹底與公司綁定。

如果所在行業(yè)的公司還是已經(jīng)選擇了整體的商業(yè)影響力,個(gè)人覺得可以奮戰(zhàn)在一線,未來的工作??剂扛嗟挠绊懥Α⒏杏X、技術(shù)架構(gòu)?,F(xiàn)在的我 35,從容的面對一天。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • SaaS
    +關(guān)注

    關(guān)注

    1

    文章

    363

    瀏覽量

    36911
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3794

    瀏覽量

    64360
  • kafka
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    5214

原文標(biāo)題:替代ELK:ClickHouse+Kafka+FlieBeat才是最絕的

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    企業(yè)如何用ELK技術(shù)棧實(shí)現(xiàn)數(shù)據(jù)流量爆炸式增長

    ELK簡介 什么是ELK 通俗來講,ELK 是由 Elasticsearch、Logstash、Kibana 三個(gè)開源軟件的組成的一個(gè)組合體,ELK 是 elastic 公司研發(fā)的一套
    的頭像 發(fā)表于 12-19 11:38 ?65次閱讀
    企業(yè)如何用<b class='flag-5'>ELK</b>技術(shù)棧實(shí)現(xiàn)數(shù)據(jù)流量爆炸式增長

    超詳細(xì)“零”基礎(chǔ)kafka入門篇

    1、認(rèn)識kafka 1.1 kafka簡介 Kafka?是一個(gè)分布式流媒體平臺 kafka官網(wǎng):http://kafka.apache.or
    的頭像 發(fā)表于 12-18 09:50 ?148次閱讀
    超詳細(xì)“零”基礎(chǔ)<b class='flag-5'>kafka</b>入門篇

    ClickHouse:強(qiáng)大的數(shù)據(jù)分析引擎

    作者:京東物流 陳昌浩 最近的工作中接觸到CK,一開始還不知道CK是什么,通過查詢才知道CK是ClickHouse,ClickHouse 是俄羅斯的Yandex于2016年開源的列式存儲數(shù)據(jù)庫
    的頭像 發(fā)表于 12-10 10:23 ?58次閱讀
    <b class='flag-5'>ClickHouse</b>:強(qiáng)大的數(shù)據(jù)分析引擎

    Kafka高性能背后的技術(shù)原理

    Kafka 是一款性能非常優(yōu)秀的消息隊(duì)列,每秒處理的消息體量可以達(dá)到千萬級別。
    的頭像 發(fā)表于 10-23 09:37 ?315次閱讀
    <b class='flag-5'>Kafka</b>高性能背后的技術(shù)原理

    OPA657怎么仿真才是真的?

    看著OPA的說明書跟這仿真,說明書上寫著帶寬可達(dá)到5MHz??墒俏疫@樣測,1M的帶寬都沒有。想得到光電二極管放大電路的頻譜,想問下怎么仿真才是對的??
    發(fā)表于 09-06 06:48

    THS4521可以替代AD8138嗎?

    THS4521可以替代AD8138嘛?看是否替代主要看什么參數(shù)
    發(fā)表于 08-05 08:18

    供應(yīng)鏈場景使用ClickHouse最佳實(shí)踐

    關(guān)于ClickHouse的基礎(chǔ)概念這里就不做太多的贅述了,ClickHouse官網(wǎng)都有很詳細(xì)說明。結(jié)合供應(yīng)鏈數(shù)字化團(tuán)隊(duì)在使用ClickHouse時(shí)總結(jié)出的一些注意事項(xiàng),尤其在命名方面要求研發(fā)嚴(yán)格遵守
    的頭像 發(fā)表于 07-18 15:05 ?276次閱讀
    供應(yīng)鏈場景使用<b class='flag-5'>ClickHouse</b>最佳實(shí)踐

    ClickHouse內(nèi)幕(3)基于索引的查詢優(yōu)化

    ClickHouse索引采用唯一聚簇索引的方式,即Part內(nèi)數(shù)據(jù)按照order by keys有序,在整個(gè)查詢計(jì)劃中,如果算子能夠有效利用輸入數(shù)據(jù)的有序性,對算子的執(zhí)行性能將有巨大的提升。本文討論
    的頭像 發(fā)表于 06-11 10:46 ?1009次閱讀
    <b class='flag-5'>ClickHouse</b>內(nèi)幕(3)基于索引的查詢優(yōu)化

    光電耦合元件國產(chǎn)替代:現(xiàn)狀與前景

    光電耦合元件作為一種關(guān)鍵的電子元器件,在各種電氣設(shè)備和系統(tǒng)中發(fā)揮著重要作用。然而,對于很多國家來說,依賴進(jìn)口的情況依然存在。因此,對光電耦合元件的國產(chǎn)替代具有重要意義。本文將從現(xiàn)狀和前景兩個(gè)方面分析光電耦合元件的國產(chǎn)替代情況。
    的頭像 發(fā)表于 05-17 16:19 ?449次閱讀

    面試官:Kafka會丟消息嗎?

    許多開發(fā)人員普遍認(rèn)為,Kafka 的設(shè)計(jì)本身就能保證不會丟失消息。然而,Kafka 架構(gòu)和配置的細(xì)微差別會導(dǎo)致消息的丟失。我們需要了解它如何以及何時(shí)可能丟失消息,并防止此類情況的發(fā)生。
    的頭像 發(fā)表于 04-29 17:32 ?1013次閱讀
    面試官:<b class='flag-5'>Kafka</b>會丟消息嗎?

    貼片電感替代工字電感的應(yīng)用案例分享

    之前有一個(gè)關(guān)于貼片電感能否替代工字電感的問題,本篇就給大家分享一個(gè)谷景技術(shù)部門正在做的一個(gè)貼片電感替代工字電感的案例。 這是我們技術(shù)部正在做的一個(gè)項(xiàng)目案例,詳細(xì)的替代方案已經(jīng)確認(rèn),并且已經(jīng)送樣給客戶
    的頭像 發(fā)表于 03-07 10:28 ?528次閱讀

    Rust編寫的首個(gè)Postgres基礎(chǔ)Elasticsearch開源替代品問世

    PostgreSQL 的生態(tài)確實(shí)越來越繁榮了,在基于 PG 的擴(kuò)展與衍生中,我們已經(jīng)有了基于 MongoDB 開源替代 —— FerretDB,SQL Server 開源替代 Babelfish
    的頭像 發(fā)表于 02-22 11:34 ?830次閱讀
    Rust編寫的首個(gè)Postgres基礎(chǔ)Elasticsearch開源<b class='flag-5'>替代</b>品問世

    Redis流與Kafka相比如何?

    我們先來看看Kafka的基本架構(gòu)?;镜臄?shù)據(jù)結(jié)構(gòu)是主題。它是一個(gè)按時(shí)間排序的記錄序列,只需追加。使用這種數(shù)據(jù)結(jié)構(gòu)的好處在Jay Kreps的經(jīng)典博文The Log中得到了很好的描述。
    的頭像 發(fā)表于 02-21 16:09 ?464次閱讀
    Redis流與<b class='flag-5'>Kafka</b>相比如何?

    2024年,請不要再喊國產(chǎn)芯片替代

    2024年,是國產(chǎn)芯片的分水嶺,強(qiáng)者愈強(qiáng),弱者愈弱。從今以后,請不要再講國產(chǎn)芯片替代,要講芯片性能和競爭力,國產(chǎn)芯片替代的篇章就此翻過。 這五年,給了國產(chǎn)芯片替代機(jī)遇和充分的時(shí)間窗口,市場給機(jī)會
    的頭像 發(fā)表于 01-25 11:50 ?831次閱讀

    kafka基本原理詳解

    今天浩道跟大家分享一篇關(guān)于kafka相關(guān)原理的硬核干貨,可以說即使你沒有接觸過kafka,也可以秒懂,一起看看!
    的頭像 發(fā)表于 01-03 09:57 ?882次閱讀
    <b class='flag-5'>kafka</b>基本原理詳解
    RM新时代网站-首页