go應用程式寫kafka阻塞(大坑)

2021-10-09 22:07:06 字數 675 閱讀 6566

由於是大資料,打日誌相對麻煩,使用玄坤**,選點打日誌,才把這個bug糾出來。

使用庫:sarama

addrs := strings.split(config.kafka.realbroker, ",")

kafkaconfig := sarama.newconfig()

kafkaconfig.producer.timeout = 3

kafkaconfig.producer.return.errors = false //設定成false,防止失敗過多,沒有消費導致阻塞,而且不是必現,極難排查

kafkaconfig.producer.return.successes = false

kafkaconfig.producer.maxmessagebytes = 50 * 1024 * 1024

producer, err := sarama.newasyncproducer(addrs, kafkaconfig)

if err != nil

conn.kafkaproducer = producer

如果kafkaconfig.producer.return.errors和kafkaconfig.producer.return.successes設定為true,則一定要有相應的消費channel的**,否則可能發生訊息阻塞。

應用程式連線Oracle rac的URL寫法

oracle rac 集群示意圖 是高可用性的一種,也是oracle資料庫支援網格計算環境的核心技術。應用程式連線oracle rac的url寫法一例 jdbc oracle thin description address list address protocol tcp host dc1.bp...

應用程式寫資料到套接字

tcp輸出 每個tcp套接字都有乙個傳送緩衝區,可以用so sendbuf套接字選項來更改該緩衝區的大小。當某個應用程式呼叫write時,核心從該應用程序緩衝區中複製所有資料到套接字的傳送緩衝區。如果套接字的傳送緩衝區容不下該應用程序的所有資料則該應用程序被投入睡眠。假設該套接字是阻塞的,則writ...

Android應用程式四大元件

對於乙個android應用程式來說,是由四種關鍵構造塊組織而成的。分別是activity活動 service服務 content provider內容提供者和broadcastreceiver廣播接收器。但是,並不是每乙個android應用程式都需要這四種構造塊。android應用開發四大元件分別是...