本發(fā)明涉及無(wú)中心異構(gòu)通信領(lǐng)域,尤其涉及一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法。
背景技術(shù):
1、隨著邊緣計(jì)算的快速發(fā)展,軟件原子化開發(fā),對(duì)軟件進(jìn)行有效解耦。一款能夠進(jìn)行實(shí)時(shí)、無(wú)中心、多通道消息發(fā)布技術(shù)就變得越來(lái)越重要。從設(shè)備互聯(lián)到原子組件信息共享之間的通信,實(shí)時(shí)消息發(fā)布技術(shù)都扮演著關(guān)鍵角色。然而對(duì)于一些特定應(yīng)用場(chǎng)景,例如在armlinux平臺(tái)上實(shí)現(xiàn)實(shí)時(shí)、無(wú)中心化、異構(gòu)通信消息發(fā)布技術(shù)仍然存在挑戰(zhàn)。
2、當(dāng)前基于arm架構(gòu)linux系統(tǒng)上可用消息發(fā)技術(shù),一般采用服務(wù)架構(gòu)。如kafka技術(shù),該技術(shù)實(shí)現(xiàn)的方式是需要在中心設(shè)備上搭建broker服務(wù)實(shí)現(xiàn)生產(chǎn)者、消費(fèi)者數(shù)據(jù)關(guān)聯(lián)。
3、broker服務(wù)主要用于消息存儲(chǔ)、消息分發(fā):
4、消息存儲(chǔ):broker將接收到的消息持久化存儲(chǔ)到磁盤,確保數(shù)據(jù)的可靠性和處理大量數(shù)據(jù)的能力;
5、消息分發(fā):它負(fù)責(zé)將消息傳遞給訂閱了相應(yīng)主題的消費(fèi)者,并維護(hù)消息的分區(qū)副本,將消息按照規(guī)則分發(fā)到相應(yīng)的分區(qū)中。
6、ka'fka采用了基于tcp的通信協(xié)議,進(jìn)行生產(chǎn)者、消費(fèi)者和broker之間通信。
7、由于kafka依賴zookeeper服務(wù)整個(gè)系統(tǒng)龐大,導(dǎo)致部署和管理比較復(fù)雜,且對(duì)硬件性能要求較高,對(duì)arm架構(gòu)下的linux系統(tǒng)支持不友好,在嵌入式armlinux場(chǎng)景下可能會(huì)受到硬件性能的限制,kafkabroker機(jī)制需要確定一中心服務(wù)在進(jìn)行邊緣部署時(shí)需要額外指定一中心服務(wù),假如中心服務(wù)出現(xiàn)異常整個(gè)系統(tǒng)可能就會(huì)出現(xiàn)異常。
8、因此,有必要提供一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法解決上述技術(shù)問題。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,解決了kafkabroker機(jī)制需要確定一中心服務(wù)在進(jìn)行邊緣部署時(shí)需要額外指定一中心服務(wù),假如中心服務(wù)出現(xiàn)異常整個(gè)系統(tǒng)可能就會(huì)出現(xiàn)異常的問題。
2、為解決上述技術(shù)問題,本發(fā)明提供的一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,包括以下步驟:
3、s1、在生產(chǎn)者模塊中設(shè)置其已知消息消費(fèi)者模塊相關(guān)信息;
4、s2、在消費(fèi)者模塊設(shè)置其所需要的消息主題,并設(shè)置已知的消息生產(chǎn)者模塊相關(guān)信息;
5、s3、啟動(dòng)生產(chǎn)者模塊,生產(chǎn)者模塊啟動(dòng)后根據(jù)配置文件,按照狀態(tài)協(xié)議通知各消費(fèi)者模塊,消費(fèi)者模塊根據(jù)狀態(tài)通知協(xié)議獲取生產(chǎn)者模塊消息生產(chǎn)能力、部署位置、支持通信方式、消息長(zhǎng)度內(nèi)容;
6、s4、啟動(dòng)消費(fèi)者模塊,消費(fèi)者模塊啟動(dòng)后根據(jù)配置文件,根據(jù)能力查詢協(xié)議獲取各生產(chǎn)者模塊消息生產(chǎn)能力、部署位置、支持通信方式、消息長(zhǎng)度等內(nèi)容;
7、s5、消費(fèi)者模塊啟動(dòng)后,消費(fèi)者模塊根據(jù)獲取到的生產(chǎn)者能力信息,通過生產(chǎn)者消費(fèi)者部署位置,確定是否采用socket通信;
8、s6、生產(chǎn)者、消費(fèi)者模塊建立數(shù)據(jù)通道后,由消息管理模塊進(jìn)行數(shù)據(jù)分配及轉(zhuǎn)發(fā)。
9、優(yōu)選的,所述s3和s4是為了解決生產(chǎn)者和消費(fèi)者啟動(dòng)時(shí)序問題。
10、優(yōu)選的,所述s5包括以下步驟:
11、s51、生產(chǎn)者、消費(fèi)者處于不同平臺(tái)則需用socket通信方式;
12、s52、生產(chǎn)者、消費(fèi)者處于相同平臺(tái)則需要判斷需傳送的數(shù)據(jù)量大小。
13、優(yōu)選的,所述s52包括以下步驟:
14、s521、傳送數(shù)據(jù)量較大時(shí)采用共享內(nèi)存的方式進(jìn)行通信;
15、s522、傳送數(shù)據(jù)量較小時(shí)采用管道方式進(jìn)行通信。
16、優(yōu)選的,所述s6中的消息管理模塊的實(shí)現(xiàn)包括以下步驟:
17、s61、消息管理模塊與生產(chǎn)者模塊一同部署,建立消息通信通道后,采用了零拷貝技術(shù);
18、s62、采用數(shù)據(jù)內(nèi)存緩存機(jī)制對(duì)需要緩存的數(shù)據(jù)采用內(nèi)存數(shù)據(jù)庫(kù)機(jī)制進(jìn)行數(shù)據(jù)緩存,避免因?yàn)榇疟P數(shù)據(jù)讀寫造成的延時(shí);
19、s63、對(duì)已經(jīng)建立的數(shù)據(jù)通道保持通道實(shí)時(shí)連通,在產(chǎn)生數(shù)據(jù)后直接通過零拷貝將數(shù)據(jù)映射到數(shù)據(jù)發(fā)送通道,實(shí)現(xiàn)消息零相應(yīng)。
20、優(yōu)選的,所述s61中的生產(chǎn)數(shù)據(jù)后通過c++零拷貝技術(shù)。
21、優(yōu)選的,所述s61、所述s62和所述s63中采用零拷貝、內(nèi)存緩沖、消息零響應(yīng)機(jī)制確保消息的低延時(shí)。
22、優(yōu)選的,所述s1和所述s2中通過異構(gòu)通信的方式靈活適應(yīng)本地通信及跨設(shè)備間通信方式保證數(shù)據(jù)傳輸最小延時(shí)。
23、與相關(guān)技術(shù)相比較,本發(fā)明提供的一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法具有如下有益效果:
24、本發(fā)明提供一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,通過s1、s2、s3、s4、s5和s6的操作步驟,可以在實(shí)時(shí)性方面采用采用異構(gòu)通信方式,能夠根據(jù)應(yīng)用模式更靈活的選用通信方式,保障了數(shù)據(jù)最小傳輸時(shí)延,在數(shù)據(jù)轉(zhuǎn)發(fā)處理方案中采用了零拷貝等更貼近底層硬件的處理方式。在處理機(jī)制方面保障了數(shù)據(jù)傳輸時(shí)延。
1.一種基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s3和s4是為了解決生產(chǎn)者和消費(fèi)者啟動(dòng)時(shí)序問題。
3.根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s5包括以下步驟:
4.根據(jù)權(quán)利要求3所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s52包括以下步驟:
5.根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s6中的消息管理模塊的實(shí)現(xiàn)包括以下步驟:
6.根據(jù)權(quán)利要求5所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s61中的生產(chǎn)數(shù)據(jù)后通過c++零拷貝技術(shù)。
7.根據(jù)權(quán)利要求5所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s61、所述s62和所述s63中采用零拷貝、內(nèi)存緩沖、消息零響應(yīng)機(jī)制確保消息的低延時(shí)。
8.根據(jù)權(quán)利要求1所述的基于嵌入式linux實(shí)時(shí)無(wú)中心異構(gòu)通信方法,其特征在于,所述s1和所述s2中通過異構(gòu)通信的方式靈活適應(yīng)本地通信及跨設(shè)備間通信方式保證數(shù)據(jù)傳輸最小延時(shí)。