Kafka真實項目應用


項目介紹:
項目模擬交易所,進行證券之類的交易,在撮合交易中:添加委托,更新委托,添加成交,添加或者更新持倉,會頻繁進行數據庫操作。防止在頻繁操作數據庫的過程中,數據庫處理不完,導致報錯,然后拋出異常,數據丟失的問題。也考慮到項目以后會使用 kafka 作為總線,進行數據交互,所以在此階段,db 操作直接使用 kafka,以后稍作改動即可。

 

總體思想:

1.在消息發送過來進行數據庫操作的時候,我們不進行數據庫操作,而是使用 kafka 發送消息到 kafka

2.kafka 消費者,消費到消息之后,進行具體的數據庫操作,插入或者更新數據庫,如果出錯,目前是打印日志,進行記錄

生產者:

kafka 生產者主要是發送消息到 kafka ,有 kafka 的 topic,key 和 value 值

消費者:
思路:
1.項目啟動時,啟動 kafka 的監聽器類:KafkaConsumeLinstener
2.kafka 的監聽器,調用 kafka 的線程類:KafkaConsumeRunnable
3.kafka 的線程類,run 方法,啟動 kafka 消費者,並調用接口 IKafkaDataConsumer 的方法來實現 kafka 消息的處理
4.kafka 的具體消息處理類 KafkaDataConsumer 實現 接口 IKafkaDataConsumer 

消息處理類:
接口和實現類
注意點:處理消息的方法 dealKafkaMessage 套層try catch自己來處理異常,不要拋出。拋出異常線程死掉,kafka接收到消息了,但是不會消費消息。看日志會發現,kafka 意識到有消息要處理,但是指向消息的指針不會發生變化。(不知道是不是因為線程使用的是 Runnable 的原因,Runnable 不會拋出異常,而 callable 可以拋出異常)

 

————————————————
版權聲明:本文為CSDN博主「wang_xiaozao」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u010343544/article/details/78427345


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM