偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

如何使用Docker內(nèi)的Kafka服務(wù)?消息服務(wù)測(cè)試實(shí)踐篇

開(kāi)發(fā) 測(cè)試 Kafka
Kafka是一種高吞吐量的分布式架構(gòu)的發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者在網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。通常由于高吞吐量的要求而選擇通過(guò)處理日志數(shù)據(jù)和日志聚合來(lái)解決。

背景及系統(tǒng)簡(jiǎn)介:

Kafka是一種高吞吐量的分布式架構(gòu)的發(fā)布訂閱消息系統(tǒng),它可以處理消費(fèi)者在網(wǎng)站中的所有動(dòng)作流數(shù)據(jù)。通常由于高吞吐量的要求而選擇通過(guò)處理日志數(shù)據(jù)和日志聚合來(lái)解決。

[[348168]]

本文涉及的分布式系統(tǒng)(簡(jiǎn)稱C系統(tǒng))已初具規(guī)模,而隨著系統(tǒng)建設(shè)的建設(shè)推進(jìn)和功能的逐步完善,外圍系統(tǒng)對(duì)C系統(tǒng)的日志消費(fèi)需求逐步增加。為了滿足日志消費(fèi)需求,決定在C系統(tǒng)的網(wǎng)關(guān)系統(tǒng)中增加日志發(fā)送功能實(shí)現(xiàn)對(duì)外消息的發(fā)送。

C系統(tǒng)的網(wǎng)關(guān)系統(tǒng)主要負(fù)責(zé)分布式系統(tǒng)的接入驗(yàn)證,對(duì)接受請(qǐng)求進(jìn)行必要的合法性、安全性等內(nèi)容的校驗(yàn)。將消息發(fā)送功能放到網(wǎng)關(guān)系統(tǒng)中主要有2方面考慮:

  • 網(wǎng)關(guān)系統(tǒng)日志記錄了上送請(qǐng)求的原始信息,能夠完整描述交易請(qǐng)求發(fā)生的場(chǎng)景及請(qǐng)求內(nèi)容;
  • 便于制定統(tǒng)一的消息報(bào)文格式和規(guī)范,避免多系統(tǒng)發(fā)送消息時(shí)標(biāo)準(zhǔn)不一致,給后續(xù)的消息消費(fèi)帶來(lái)困難。

聯(lián)機(jī)消息發(fā)送測(cè)試

網(wǎng)關(guān)系統(tǒng)設(shè)置了消息控制表,控制是否發(fā)送消息。同時(shí)可以根據(jù)需要從不同維度控制哪些消息需要發(fā)送,而不是所有日志數(shù)據(jù)全部發(fā)送,避免系統(tǒng)資源的浪費(fèi),提高消息的使用效率。

1. 正常交易消息發(fā)送

即發(fā)送服務(wù)的基本功能測(cè)試。當(dāng)上送交易請(qǐng)求在后臺(tái)執(zhí)行成功后,觸發(fā)網(wǎng)關(guān)系統(tǒng)消息發(fā)送功能,將該上送請(qǐng)求相關(guān)的日志信息封裝消息發(fā)送出去。消息控制數(shù)據(jù)緩存在應(yīng)用服務(wù)器,以提高讀取速度,通過(guò)POSTMAN工具查詢、驗(yàn)證。

消息發(fā)送無(wú)顯性展示,因此測(cè)試對(duì)消息是否正常、發(fā)送規(guī)則是否符合消息控制表配置規(guī)則、發(fā)送內(nèi)容的正確性和完整性、topic使用是否正確、總線系統(tǒng)是否正常、正確接收到消息等內(nèi)容的驗(yàn)證,通過(guò)查詢log的方式完成。

2. 查證交易消息發(fā)送

查證功能是網(wǎng)關(guān)系統(tǒng)提供的查證上送交易執(zhí)行結(jié)果(成功/失敗)的功能。由于網(wǎng)絡(luò)等原因未收到被查交易返回結(jié)果時(shí),如果該交易配置了消息發(fā)送功能,則在查證交易成功后將被查交易的原始交易信息封裝消息并發(fā)送,保證該交易所有使用場(chǎng)景都能正確發(fā)送消息。

3. 異常消息處理

異常場(chǎng)景主要驗(yàn)證Kafka不能正常發(fā)送消息的情況,我們通過(guò)修改Kafka服務(wù)器IP地址方式和配置錯(cuò)誤的topic等方式模擬Kafka消息發(fā)送失敗的場(chǎng)景,進(jìn)而驗(yàn)證網(wǎng)關(guān)系統(tǒng)是否能將消息正確、完整的記錄到異常消息表中。

4. 熔斷場(chǎng)景測(cè)試

熔斷是指Kafka異?;蛳⒎?wù)壓力過(guò)大,進(jìn)而影響網(wǎng)關(guān)系統(tǒng)其他正常功能,需要臨時(shí)關(guān)閉消息服務(wù)已保證網(wǎng)關(guān)系統(tǒng)本身對(duì)外服務(wù)正常。關(guān)閉消息服務(wù)是通過(guò)將要發(fā)送的消息記錄到異常消息表中,后續(xù)通過(guò)批量補(bǔ)發(fā)方式補(bǔ)發(fā)消息。

批量消息處理測(cè)試

通過(guò)定時(shí)輪詢的方式,對(duì)記錄到異常消息表里的消息進(jìn)行補(bǔ)發(fā)。同時(shí)設(shè)置消息熔斷機(jī)制,當(dāng)Kafka異常時(shí),將消息發(fā)送完全切換到記錄消息表,避免造成Kafka完全失效的同時(shí)也保證了本系統(tǒng)對(duì)外服務(wù)正常。

消息補(bǔ)發(fā)功能

當(dāng)日消息補(bǔ)發(fā)定時(shí)輪詢,每5分鐘掃描一次異常消息表,對(duì)于未發(fā)送成功的消息重新補(bǔ)發(fā),在發(fā)送三次失敗后更新消息狀態(tài)為“異常”。測(cè)試主要驗(yàn)證內(nèi)容:

  • 補(bǔ)發(fā)消息的篩選;
  • 錯(cuò)誤的消息(如空消息)等處理;
  • 補(bǔ)發(fā)線程沖突處理機(jī)制,等

上日消息補(bǔ)發(fā)對(duì)上一日未發(fā)送的異常消息進(jìn)行補(bǔ)發(fā),與當(dāng)日補(bǔ)發(fā)功能類似,但不是定時(shí)輪詢。

異常消息導(dǎo)出

對(duì)于各種補(bǔ)發(fā)后仍失敗的消息,為保證數(shù)據(jù)的完整性,提供導(dǎo)出功能做后續(xù)處理。

性能測(cè)試

由于投產(chǎn)后預(yù)期消息發(fā)送量很大,預(yù)估約1億筆以上,所以對(duì)性能要求較高。

參考預(yù)估交易量,根據(jù)二八原則(80%的交易量發(fā)生在20%的時(shí)間內(nèi)),估算投產(chǎn)后系統(tǒng)的TPS約7000左右。參考該系統(tǒng)前次性能測(cè)試指標(biāo),我們將通過(guò)標(biāo)準(zhǔn)定位2000,測(cè)試、生產(chǎn)TPS比例1:3.5。而測(cè)試環(huán)境資源與生產(chǎn)資源比例約為1:16,遠(yuǎn)大于TPS的測(cè)試生產(chǎn)比例,因此我們認(rèn)為達(dá)到該標(biāo)準(zhǔn)即可滿足生產(chǎn)系統(tǒng)性能要求。

在進(jìn)行了基準(zhǔn)測(cè)試、負(fù)載測(cè)試及混合場(chǎng)景測(cè)試后,消息服務(wù)在測(cè)試環(huán)境TPS達(dá)到了2000以上,并且系統(tǒng)資源都在合理范圍內(nèi)。

總結(jié)

Kafka是比較成熟的消息系統(tǒng),為網(wǎng)關(guān)系統(tǒng)的消息服務(wù)提供了基礎(chǔ),但Kafka偶爾會(huì)出現(xiàn)假死現(xiàn)象,導(dǎo)致消息阻塞。本次原本計(jì)劃嘗試模擬假死現(xiàn)象,但與項(xiàng)目開(kāi)發(fā)人員以及Kafka支持人員討論了解到,暫時(shí)無(wú)法模擬該場(chǎng)景,這也是本次留下的遺憾。

 

責(zé)任編輯:趙寧寧 來(lái)源: 今日頭條
相關(guān)推薦

2018-09-03 09:22:25

監(jiān)控服務(wù)器性能

2023-12-06 19:04:31

多平臺(tái)消息推送

2011-07-26 10:27:07

分析器操作系統(tǒng)服務(wù)器

2012-05-14 11:52:45

服務(wù)器角色

2017-05-23 15:53:52

docker服務(wù)容器

2018-04-20 10:38:25

2024-05-16 13:13:39

微服務(wù)架構(gòu)自動(dòng)化

2021-08-30 11:36:23

微服務(wù)開(kāi)發(fā)技術(shù)

2023-09-26 07:34:24

Docker部署依賴包

2018-11-15 07:56:26

2022-08-01 07:27:36

JavaDocker容器

2022-07-11 08:01:55

Kafka服務(wù)器宕機(jī)

2014-07-04 10:41:37

2017-05-09 09:26:48

微服務(wù)消息推送

2015-07-08 11:28:53

云服務(wù)平臺(tái)Docker MachDocker

2024-03-08 22:39:55

GolangApacheKafka

2017-05-25 10:32:41

Docker微服務(wù)容器

2024-01-10 14:24:32

Docker容器Kafka

2023-03-24 16:18:08

微服務(wù)架構(gòu)

2021-06-30 10:16:54

微服務(wù)架構(gòu)測(cè)試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)