[發(fā)明專利]一種利用Kafka集群發(fā)送消息的方法和裝置有效
| 申請?zhí)枺?/td> | 201610623760.7 | 申請日: | 2016-08-02 |
| 公開(公告)號: | CN107682169B | 公開(公告)日: | 2021-03-30 |
| 發(fā)明(設(shè)計)人: | 高廉墀;張鵬;劉彥偉 | 申請(專利權(quán))人: | 北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L12/58;H04L29/08 |
| 代理公司: | 中原信達(dá)知識產(chǎn)權(quán)代理有限責(zé)任公司 11219 | 代理人: | 張一軍;姜勁 |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 利用 kafka 集群 發(fā)送 消息 方法 裝置 | ||
本發(fā)明提供一種利用Kafka集群發(fā)送消息的方法和裝置,能夠提高消息發(fā)送的效率,保證消息發(fā)送的準(zhǔn)確性和穩(wěn)定性。該利用Kafka集群發(fā)送消息的方法包括:消息發(fā)送模塊啟動時,從預(yù)先配置的Kafka集群列表里選擇優(yōu)選集群,并將集群列表里的其他集群作為備選集群,其中優(yōu)選集群與消息發(fā)送模塊的網(wǎng)段一致;消息發(fā)送模塊向優(yōu)選集群發(fā)送消息,其中,當(dāng)優(yōu)選集群發(fā)生異常時,則向備選集群進(jìn)行消息發(fā)送,并且,如果優(yōu)選集群不滿足失效條件,則在該消息發(fā)送完成后,仍向優(yōu)選集群進(jìn)行下一條消息的發(fā)送,以及當(dāng)消息發(fā)送模塊將消息發(fā)送給所有集群都失敗時,將消息保存到離線日志文件中,使得通過定時抽取離線日志文件中的消息來完成消息發(fā)送。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)和計算機(jī)軟件技術(shù)領(lǐng)域,特別地涉及一種利用Kafka集群發(fā)送消息的方法和裝置。
背景技術(shù)
Apache Kafka是分布式發(fā)布-訂閱消息系統(tǒng)。它最初由LinkedIn公司開發(fā),之后成為Apache項目的一部分。Kafka是一種快速、可擴(kuò)展的、設(shè)計內(nèi)在就是分布式的、分區(qū)的和可復(fù)制的提交日志服務(wù)。
Apache Kafka與傳統(tǒng)消息系統(tǒng)相比,有以下不同:
1、它被設(shè)計為一個分布式系統(tǒng),易于向外擴(kuò)展;
2、它同時為發(fā)布和訂閱提供高吞吐量;
3、它支持多訂閱者,當(dāng)失敗時能自動平衡消費者;
4、它將消息持久化到磁盤,因此可用于批量消費,例如ETL,以及實時應(yīng)用程序。
Kafka的架構(gòu)包括以下組件:
話題(Topic)是特定類型的消息流。消息是字節(jié)的有效負(fù)載(Payload),話題是消息的分類名或種子(Feed)名;
生產(chǎn)者(Producer)是能夠發(fā)布消息到話題的任何對象;
已發(fā)布的消息保存在一組服務(wù)器中,它們被稱為代理(Broker)或Kafka集群;
消費者可以訂閱一個或多個話題,并從Broker拉數(shù)據(jù),從而消費這些已發(fā)布的消息。
生產(chǎn)者可以選擇自己喜歡的序列化方法對消息內(nèi)容編碼。為了提高效率,生產(chǎn)者可以在一個發(fā)布請求中發(fā)送一組消息。
故而,Kafka被廣泛應(yīng)用于消息的分布式處理中。
現(xiàn)有常用的消息處理模式一般是通過部署Nginx,將集群數(shù)據(jù)以消息的形式同步發(fā)送至Kafka,且配置指向相同的Kafka集群。其中,Nginx是一款輕量級的Web服務(wù)器,其特點是占用內(nèi)存少,并發(fā)能力強(qiáng),事實上Nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好。
但是采用現(xiàn)有的消息處理模式會存在以下的問題:
1、消息同步發(fā)送的方式,會造成數(shù)據(jù)處理能力低下;
2、消息被發(fā)送至單一Kafka機(jī)房,當(dāng)機(jī)房出現(xiàn)短暫異常,例如網(wǎng)絡(luò)抖動,可直接造成客戶端發(fā)送消息失敗,造成該消息無法及時接收;相應(yīng)的,如果機(jī)房出現(xiàn)長時間異常,例如機(jī)房斷電,則會直接造成大量的客戶端發(fā)送消息失敗,造成消息長時間無法及時接收;
3、原生Kafka客戶端并未提供監(jiān)控功能,當(dāng)Kafka服務(wù)器異常,無法及時預(yù)警。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種利用Kafka集群發(fā)送消息的方法和裝置,能夠提高消息發(fā)送的效率,保證消息發(fā)送的準(zhǔn)確性和穩(wěn)定性。
為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種利用Kafka集群發(fā)送消息的方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司;北京京東世紀(jì)貿(mào)易有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610623760.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- Kafka集群的數(shù)據(jù)傳送方法和裝置
- KAFKA消息隊列數(shù)監(jiān)控方法、裝置、電子設(shè)備及存儲介質(zhì)
- KAFKA主題監(jiān)控方法、裝置、電子設(shè)備及存儲介質(zhì)
- 基于容器的集群遷移方法及裝置
- kafka消息的測試方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)
- 基于kafka集群的數(shù)據(jù)寫入方法、裝置、電子設(shè)備、存儲介質(zhì)
- 一種可視化部署并管理kafka集群的方法
- kafka消息存儲系統(tǒng)、方法、裝置及計算機(jī)可讀存儲介質(zhì)
- 一種基于kafka-connect的數(shù)據(jù)傳遞方法
- 一種將Kafka長連接消費轉(zhuǎn)換成服務(wù)的方法
- 一種集群調(diào)度呼叫業(yè)務(wù)中主叫終端信息顯示方法
- 更新網(wǎng)絡(luò)流量管理設(shè)備同時維持有效性
- 與集群調(diào)度系統(tǒng)進(jìn)行通信的方法、群集接入網(wǎng)關(guān)及系統(tǒng)
- 一種管理集群通信系統(tǒng)資源的方法
- 基于Kubernetes和OpenStack容器云平臺多集群構(gòu)建方法、介質(zhì)、設(shè)備
- 一種容災(zāi)系統(tǒng)、容災(zāi)處理方法、監(jiān)控節(jié)點和備份集群
- 一種ETCD集群恢復(fù)方法、系統(tǒng)、設(shè)備及計算機(jī)介質(zhì)
- 混合云場景下保證可用集群數(shù)量的方法、裝置及系統(tǒng)
- 一種集群拓?fù)涓路椒ā⑾到y(tǒng)、設(shè)備及計算機(jī)存儲介質(zhì)
- 集群切換方法、集群切換裝置、電子設(shè)備及可讀存儲介質(zhì)
- 發(fā)送方法、發(fā)送系統(tǒng)和發(fā)送器
- 發(fā)送系統(tǒng)、發(fā)送設(shè)備
- 發(fā)送設(shè)備、發(fā)送/接收設(shè)備、發(fā)送方法和發(fā)送/接收方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送系統(tǒng)、發(fā)送裝置以及數(shù)據(jù)發(fā)送方法
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送裝置、發(fā)送方法以及記錄介質(zhì)
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送系統(tǒng)、發(fā)送方法及發(fā)送/接收系統(tǒng)





