亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種通用的創(chuàng)建基于amqp協(xié)議代理服務的方法

文檔序號:10515558閱讀:393來源:國知局
一種通用的創(chuàng)建基于amqp協(xié)議代理服務的方法
【專利摘要】本發(fā)明涉及軟件服務管理技術領域,特別是一種通用的創(chuàng)建基于AMQP協(xié)議代理服務的方法。所述方法包括:定義AMQP代理服務通用類和具體代理服務消息處理類;主方法讀取代理服務配置文件并進行參數(shù)注冊;主方法利用相關參數(shù)及定義的RPC消息處理類實例化服務通用類;主方法利用服務類實例啟動代理服務。采用本發(fā)明提供的方法可以在基于AMQP的軟件程序中快速編寫出新的代理服務;可以用于對Openstack的二次開發(fā)。
【專利說明】
-種通用的創(chuàng)建基于AMQP協(xié)議代理服務的方法
技術領域
[0001] 本發(fā)明設及軟件服務管理技術領域,特別是一種通用的創(chuàng)建基于AMQP協(xié)議代理服 務的方法。
【背景技術】
[0002] MQP 和 RalAitMQ
[0003] AMQP是應用層協(xié)議的一個開放標準,為面向消息的中間件而設計。RabbitMQ是 AMQP協(xié)議的一個開源實現(xiàn),也就是說,"消息"是AMQP實現(xiàn)通信的基本因素。AMQP有兩個核屯、 要素一一交換器化xchange)與隊列(Queue)通過消息的綁定與轉(zhuǎn)發(fā)機制實現(xiàn)信息通信。其 中,交換器是由消費者應用程序創(chuàng)建,并且可與其他應用程序?qū)崿F(xiàn)共享服務,其功能與數(shù)據(jù) 通信網(wǎng)絡中的路由器非常相似,即接收消息之后通過路由表將消息準確且安全的轉(zhuǎn)發(fā)至相 應的消息隊列。
[0004] 代理服務與Openstack
[0005] 當前,軟件行業(yè)發(fā)展迅速,開源、高內(nèi)聚松禪合的軟件架構(gòu)越來越受歡迎;如 化enstack,架構(gòu)先進、功能豐富,且極易擴展,其組件與組件之間通信基于開源的AMQP,實 現(xiàn)了很多具體底層的代理服務。隨著化enstack開源云平臺應用越來越廣泛,各家云平臺都 借助于其實現(xiàn)自己的私有云平臺,但是往往化enstack現(xiàn)有的功能并不能滿足用戶的特色 需求,故需求對其進行二次開發(fā)。

【發(fā)明內(nèi)容】

[0006] 本發(fā)明解決的技術問題在于提供一種通用的創(chuàng)建基于AMQP協(xié)議代理服務的方法, 實現(xiàn)在基于AMQP協(xié)議的架構(gòu)系統(tǒng)中,快速編寫出新的代理服務。
[0007] 本發(fā)明解決上述技術問題的技術方案是,
[000引所述的方法是先定義AMQP代理服務通用類和具體代理服務消息處理類;然后,由 主方法讀取代理服務配置文件并進行參數(shù)注冊,利用相關參數(shù)及定義的RPC消息處理類實 例化服務通用類;再利用服務類實例啟動代理服務。
[0009] 所述的主方法是代理服務的啟動方法,一般為main函數(shù);
[0010] 所述的相關參數(shù)主要包括有代理服務所在節(jié)點的主機名,代理服務與控制端的通 信時間間隔,代理服務消息處理底層驅(qū)動;所述的控制端是指與代理服務進行通信,并保存 代理相關信息到數(shù)據(jù)庫,同時對外提供接口的服務程序。
[0011] 所述的定義AMQP代理服務通用類是一個使用于所有的代理服務的通用的繼承類 結(jié)構(gòu),主要提供對服務實例進行管理的屬性和方法集合;所述的屬性主要有具體代理服務 消息處理類實例;所述的方法主要有服務啟動、關閉、重啟等函數(shù);
[0012] 所述的代理服務消息處理類是指某個具體代理服務對指定消息的處理方法集,不 同的代理服務各自不同。
[0013] 所述的主方法利用相關參數(shù)及定義的RPC消息處理類實例化服務通用類,進一步 包括:
[0014] 構(gòu)造 AMQP主題交換器的主題,創(chuàng)建主題交換器和消費者隊列;
[0015] 實例化RPC消息處理類;
[0016] 實例化服務通用類;
[0017] 所述的AMQP主題是指類似于路由通信當總的路由規(guī)則,在AMQP中定義為routing key(路由關鍵字),一般可W是一個指定的字符串。
[001引所述的RPC消息處理類實例化服務通用類,進一步包括:
[0019] 啟動子程序發(fā)送RP村青求,匯報代理服務本身的狀態(tài)信息給控制端;
[0020] 然后,接受控制端響應返回的本代理服務的底層驅(qū)動相關的資源信息并同步;
[0021 ] 所述的子程序可W是進程、線程W及協(xié)程。
[0022] 所述的主方法利用服務類實例啟動代理服務,進一步包括:
[0023] 創(chuàng)建代理服務的AMQP主題交換器和主題消費者,在代理服務啟動之后,使控制端 主動與代理服務的RPC通信;
[0024] 調(diào)用服務類實例的after_s^d方法進行代理服務啟動之后的后續(xù)相關操作。
[0025] 本發(fā)明方案的有益效果如下:
[0026] 1、提供一種通用的在基于AMQP協(xié)議的軟件架構(gòu)上,方便快速的進行代理服務創(chuàng)建 的方法。
[0027] 2、本發(fā)明方法在實現(xiàn)上層次結(jié)構(gòu)清晰,邏輯簡單,可W快速的學習掌握與應用。
【附圖說明】
[0028] 下面結(jié)合附圖對本發(fā)明進一步說明:
[0029] 圖1為本發(fā)明的流程圖。
【具體實施方式】
[0030] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整的描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員沒有做出實質(zhì)性創(chuàng)造獲得的方案,都屬于本發(fā)明 保護的范圍。
[0031] 請參見圖1,為本發(fā)明實施例提供的一種通用的創(chuàng)建基于AMQP協(xié)議代理服務的方 法的流程示意圖,本實施類Wpython語言為例在化enstack云平臺中創(chuàng)建gcloudqos-agent 代理服務為例進行描述,所述方法包括:
[0032] 首先定義AMQP代理服務通用類結(jié)構(gòu)的Service繼承關系:
[0033] 通用服務類基類:
[0038] 如上定義了代理服務通用服務類Service結(jié)構(gòu),其中父類負責初始化AQMP中的消 息通信部分,子類負責實例化具體的消息處理類。定義了代理服務管理的相關方法,如 start,stop 等。
[0039] 定義代理服務具體的消息處理類:
[0040]
[0041 ] 如上定義了 GcloudQosAgentWithStateReport消息處理類,并在初始化方法中啟 動子程序(協(xié)程)來運行_report_state方法與控制端進行RPC通信,完成代理服務狀態(tài)的匯 報。代理服務繼續(xù)在_repo;rt_state方法中啟動協(xié)程運行run方法,調(diào)用sync_s^te進行與 控制端的信息同步,run方法定義如下:
[0045] 主方法利用registe;r_options方法讀取配置文件并注冊,然后利用repo;rt_ interval,topic,manage;r等參數(shù)通過create方法實例化Service,在運個過程中通過 Service類的定義可知會同時實例化消息處理類GcloudQosAgentWi1:hStateRepo;rt,啟動子 程序與控制端程序進行RPC通信,完成狀態(tài)匯報和信息同步。最后主方法利用 service . launch (server) .wait 0啟動代理服務,該過程是通過調(diào)用Service類實例的 stad方法,完成AQMP消息主題交換器、消息隊列的創(chuàng)建;將定義的消息處理類實例化為 manager,并作為emlpoints進行監(jiān)聽W便后面處理消息。
【主權項】
1. 一種通用的創(chuàng)建基于AMQP協(xié)議代理服務的方法,其特征在于,所述的方法是先定義 AMQP代理服務通用類和具體代理服務消息處理類;然后,由主方法讀取代理服務配置文件 并進行參數(shù)注冊,利用相關參數(shù)及定義的RPC消息處理類實例化服務通用類;再利用服務類 實例啟動代理服務。2. 根據(jù)權利要求1所述的方法,其特征在于: 所述的主方法是代理服務的啟動方法,一般為main函數(shù); 所述的相關參數(shù)主要包括有代理服務所在節(jié)點的主機名,代理服務與控制端的通信時 間間隔,代理服務消息處理底層驅(qū)動;所述的控制端是指與代理服務進行通信,并保存代理 相關信息到數(shù)據(jù)庫,同時對外提供接口的服務程序。3. 根據(jù)權利要求1所述的方法,其特征在于: 所述的定義AMQP代理服務通用類是一個使用于所有的代理服務的通用的繼承類結(jié)構(gòu), 主要提供對服務實例進行管理的屬性和方法集合;所述的屬性主要有具體代理服務消息處 理類實例;所述的方法主要有服務啟動、關閉、重啟等函數(shù); 所述的代理服務消息處理類是指某個具體代理服務對指定消息的處理方法集,不同的 代理服務各自不同。4. 根據(jù)權利要求2所述的方法,其特征在于: 所述的定義AMQP代理服務通用類是一個使用于所有的代理服務的通用的繼承類結(jié)構(gòu), 主要提供對服務實例進行管理的屬性和方法集合;所述的屬性主要有具體代理服務消息處 理類實例;所述的方法主要有服務啟動、關閉、重啟等函數(shù); 所述的代理服務消息處理類是指某個具體代理服務對指定消息的處理方法集,不同的 代理服務各自不同。5. 根據(jù)權利要求1至4任一項所述的方法,其特征在于,所述的主方法利用相關參數(shù)及 定義的RPC消息處理類實例化服務通用類,進一步包括: 構(gòu)造 AMQP主題交換器的主題,創(chuàng)建主題交換器和消費者隊列; 實例化RPC消息處理類; 實例化服務通用類; 所述的AMQP主題是指類似于路由通信當總的路由規(guī)則,在AMQP中定義為routing key, 一般可以是一個指定的字符串。6. 根據(jù)權利要求1至4任一項所述的方法,其特征在于,所述的RPC消息處理類實例化服 務通用類,進一步包括: 啟動子程序發(fā)送RPC請求,匯報代理服務本身的狀態(tài)信息給控制端; 然后,接受控制端響應返回的本代理服務的底層驅(qū)動相關的資源信息并同步; 所述的子程序可以是進程、線程以及協(xié)程。7. 根據(jù)權利要求5所述的方法,其特征在于,所述的RPC消息處理類實例化服務通用類, 進一步包括: 啟動子程序發(fā)送RPC請求,匯報代理服務本身的狀態(tài)信息給控制端; 然后,接受控制端響應返回的本代理服務的底層驅(qū)動相關的資源信息并同步; 所述的子程序可以是進程、線程以及協(xié)程。8. 根據(jù)權利要求1至4任一項所述的方法,其特征在于,所述的主方法利用服務類實例 啟動代理服務,進一步包括: 創(chuàng)建代理服務的AMQP主題交換器和主題消費者,在代理服務啟動之后,使控制端主動 與代理服務的RPC通信; 調(diào)用服務類實例的after_start方法進行代理服務啟動之后的后續(xù)相關操作。9. 根據(jù)權利要求5所述的方法,其特征在于,所述的主方法利用服務類實例啟動代理服 務,進一步包括: 創(chuàng)建代理服務的AMQP主題交換器和主題消費者,在代理服務啟動之后,使控制端主動 與代理服務的RPC通信; 調(diào)用服務類實例的after_start方法進行代理服務啟動之后的后續(xù)相關操作。10. 根據(jù)權利要求6所述的方法,其特征在于,所述的主方法利用服務類實例啟動代理 服務,進一步包括: 創(chuàng)建代理服務的AMQP主題交換器和主題消費者,在代理服務啟動之后,使控制端主動 與代理服務的RPC通信; 調(diào)用服務類實例的after_start方法進行代理服務啟動之后的后續(xù)相關操作。
【文檔編號】H04L29/06GK105871907SQ201610364469
【公開日】2016年8月17日
【申請日】2016年5月26日
【發(fā)明人】熊夢, 楊松, 季統(tǒng)凱
【申請人】國云科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1