【Azure 事件中心】開啟 Apache Flink 制造者 Producer 示例代碼中的日志輸出 (連接 Azure Event Hub Kafka 終結(jié)點)

問題描述

Azure Event Hub 在標(biāo)準(zhǔn)版以上就默認(rèn)啟用的Kafka終結(jié)點剧防,所以可以通過Apache Kafka協(xié)議連接到Event Hub進(jìn)行消息的生產(chǎn)和消費。通過示例代碼下載到本地運行后,發(fā)現(xiàn)沒有 Kafka Producer 的詳細(xì)日志輸出公给。當(dāng)查看SDK源碼中基协,發(fā)現(xiàn)使用的是 org.slf4j.Logger 輸出日志,如:

2022011101.png

但是剑按,當(dāng)運行 Producer 代碼后疾就,得到的輸出取沒有包含連接的詳細(xì)信息,對出現(xiàn)連接問題的Debug沒有任何幫助吕座。

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Test Data #0 from thread #18 org.apache.kafka.common.errors.IllegalSaslStateException: Invalid SASL mechanism response, server may be expecting a different protocol

那么如何來輸出更加詳細(xì)的日志呢虐译?

問題解決

根據(jù)日志顯示, SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 明確指出是因為沒有加載到 org.slf4j.impl.StaticLoggerBinder 類吴趴,因為在程序執(zhí)行的過程中漆诽,必須提供實際的日志記錄實現(xiàn),否則SLF4J講忽略所有日志信息锣枝,SLF4J API 通過 SLF4J 綁定與實際的日志記錄實現(xiàn)進(jìn)行通信Log4j厢拭。所以需要在pom.xml中引入 org.slf4j 的相關(guān)依賴。

在pom.xml中加入

 <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
  </dependency>
  <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.25</version>
  </dependency>
  <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
  </dependency>
  <dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.0.13</version>

然后撇叁,添加上log4j的配置文件供鸠,在resources文件夾下添加名為 log4j.properties文件,內(nèi)容為:

# Root logger option
log4j.rootLogger=INFO, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n

修改后的文件內(nèi)容如截圖所示:


2022011102.png

修改完成陨闹,運行得到完整日志

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/.m2/repository/org/slf4j/slf4j-log4j12/1.7.25/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/.m2/repository/ch/qos/logback/logback-classic/1.0.13/logback-classic-1.0.13.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
2022-01-11 20:03:12 INFO  ProducerConfig - ProducerConfig values: 
        acks = 1
        batch.size = 16384
        bootstrap.servers = [testeventxxxxxx.servicebus.chinacloudapi.cn:9093]
        buffer.memory = 33554432
        client.id = KafkaExampleProducer
        compression.type = none
        connections.max.idle.ms = 540000
        enable.idempotence = false
        interceptor.classes = null
        key.serializer = class org.apache.kafka.common.serialization.LongSerializer
        linger.ms = 0
        max.block.ms = 60000
        max.in.flight.requests.per.connection = 5
        max.request.size = 1048576
        metadata.max.age.ms = 300000
        metric.reporters = []
        metrics.num.samples = 2
        metrics.recording.level = INFO
        metrics.sample.window.ms = 30000
        security.protocol = SASL_SSL
        send.buffer.bytes = 131072
        ssl.cipher.suites = null
        ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
        ssl.endpoint.identification.algorithm = null
        ssl.key.password = null
        ssl.keymanager.algorithm = SunX509
        ssl.keystore.location = null
        ssl.keystore.password = null
        ssl.keystore.type = JKS
        ssl.protocol = TLS
        ssl.provider = null
        ssl.secure.random.implementation = null
        ssl.trustmanager.algorithm = PKIX
        ssl.truststore.location = null
        ssl.truststore.password = null
        ssl.truststore.type = JKS
        transaction.timeout.ms = 60000
        transactional.id = null
        value.serializer = class org.apache.kafka.common.serialization.StringSerializer

2022-01-11 20:03:16 INFO  AbstractLogin - Successfully logged in.
2022-01-11 20:03:17 INFO  AppInfoParser - Kafka version : 1.0.0
2022-01-11 20:03:17 INFO  AppInfoParser - Kafka commitId : aaa7af6d4a11b29d
2022-01-11 20:03:21 INFO  TestProducer - test java logs  : info
2022-01-11 20:03:21 ERROR TestProducer - test java logs  : error
2022-01-11 20:03:21 WARN  TestProducer - test java logs  : warn
Test Data #0 from thread #18
2022-01-11 20:03:22 ERROR NetworkClient - [Producer clientId=KafkaExampleProducer] Connection to node -1 failed authentication due to: Invalid SASL mechanism response, server may be expecting a different protocol
org.apache.kafka.common.errors.IllegalSaslStateException: Invalid SASL mechanism response, server may be expecting a different protocol
org.apache.kafka.clients.producer.KafkaProducer@47dec663

參考資料

Slf4j Configuration File Examplehttps://examples.javacodegeeks.com/enterprise-java/slf4j/slf4j-configuration-file-example/

將 Apache Flink 與適用于 Apache Kafka 的 Azure 事件中心配合使用: https://docs.azure.cn/zh-cn/event-hubs/event-hubs-kafka-flink-tutorial

在微軟云中國區(qū) (Mooncake) 上實驗以Apache Kafka協(xié)議方式發(fā)送/接受Event Hubs消息 (Java版) : https://www.cnblogs.com/lulight/p/14375190.html

當(dāng)在復(fù)雜的環(huán)境中面臨問題楞捂,格物之道需:濁而靜之徐清,安以動之徐生趋厉。 云中寨闹,恰是如此!

分類: 【Azure 事件中心】

標(biāo)簽: Azure Developer, Azure Event Hub + Kafka, 事件中心 Azure Event Hub, 日志輸出

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市君账,隨后出現(xiàn)的幾起案子繁堡,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椭蹄,死亡現(xiàn)場離奇詭異闻牡,居然都是意外死亡,警方通過查閱死者的電腦和手機绳矩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門罩润,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人埋酬,你說我怎么就攤上這事哨啃。” “怎么了写妥?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵拳球,是天一觀的道長。 經(jīng)常有香客問我珍特,道長祝峻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任扎筒,我火速辦了婚禮莱找,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗜桌。我一直安慰自己奥溺,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布骨宠。 她就那樣靜靜地躺著浮定,像睡著了一般。 火紅的嫁衣襯著肌膚如雪层亿。 梳的紋絲不亂的頭發(fā)上桦卒,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機與錄音匿又,去河邊找鬼方灾。 笑死,一個胖子當(dāng)著我的面吹牛碌更,可吹牛的內(nèi)容都是我干的裕偿。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼痛单,長吁一口氣:“原來是場噩夢啊……” “哼击费!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起桦他,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后快压,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圆仔,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年蔫劣,在試婚紗的時候發(fā)現(xiàn)自己被綠了坪郭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡脉幢,死狀恐怖歪沃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫌松,我是刑警寧澤沪曙,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站萎羔,受9級特大地震影響液走,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜贾陷,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一缘眶、第九天 我趴在偏房一處隱蔽的房頂上張望掸绞。 院中可真熱鬧面殖,春花似錦、人聲如沸览绿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒋譬,卻和暖如春割岛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背犯助。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工癣漆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人剂买。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓惠爽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瞬哼。 傳聞我的和親對象是個殘疾皇子婚肆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容