本公開涉及云平臺技術領域,尤其涉及基于容器的信息處理方法和裝置、以及服務器和終端。
背景技術:
cloudfoundry是一種開源paas云平臺,它支持多種框架、語言、運行時環(huán)境、云平臺及應用服務,使開發(fā)人員能夠在幾秒鐘內(nèi)進行應用程序的部署和擴展,無需擔心任何基礎架構的問題。cloudfoundry被廣泛的應用到企業(yè)內(nèi)paas平臺的構建當中,管理著具體的容器(container)進行業(yè)務的具體功能,但是如果企業(yè)的規(guī)模越來越大,container的數(shù)量不斷增多,數(shù)以萬計的container的管理是一個很頭疼的問題。
相關技術中,在cloudfoundry中,一個dea(dropletexecutionagent,簡稱dea)模塊中設置了多個container;router模塊接收到用戶的請求信息,然后router模塊將請求信息通過一個私有的消息中間件nats(networkaddresstranslate,簡稱nats),發(fā)送給具體處理業(yè)務的container;container的信息是通過dea模塊,并通過nats上報給router模塊。
然而相關技術中,當dea中的container發(fā)展到一個數(shù)量規(guī)模的時候,nats的消息數(shù)量就會非常的多,router模塊需要處理的數(shù)據(jù)也會非常多;但是container的數(shù)據(jù)絕大部分都是不會變化的,從而導致nats和router模塊做了大量的重復工作,并且會造成極大的帶寬浪費。
技術實現(xiàn)要素:
為克服相關技術中存在的nats和router模塊做了大量的重復工作,并且會造成極大的帶寬浪費的問題,本公開提供一種基于容器的信息處理方法和裝置、以及服務器和終端。
根據(jù)本公開實施例的第一方面,提供一種基于容器的信息處理方法,包括:
接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;
根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;
根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
進一步地,在所述接收終端發(fā)送的更新請求之前,還包括:
接收所述終端發(fā)送的臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求為所述終端在所述dea模塊啟動時發(fā)送的,所述臨時節(jié)點注冊請求中包括所述終端標識;
根據(jù)所述臨時節(jié)點注冊請求,生成與所述終端標識對應的臨時節(jié)點。
進一步地,所述container更新信息,包括:
container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
進一步地,在所述根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知之后,還包括:
檢測所述終端中的所述dea模塊是否出現(xiàn)異常掛機狀態(tài);
在確定所述dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與所述終端對應的臨時節(jié)點。
進一步地,在所述接收終端發(fā)送的更新請求之前,還包括:
接收所述終端發(fā)送的監(jiān)聽節(jié)點注冊請求;
根據(jù)所述監(jiān)聽節(jié)點注冊請求生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
進一步地,所述根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知,包括:
在所述監(jiān)聽節(jié)點監(jiān)聽到與所述終端對應的臨時節(jié)點被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,向所述終端的router模塊發(fā)送事件通知。
本公開的實施例提供的技術方案可以包括以下有益效果:通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
根據(jù)本公開實施例的第二方面,提供一種基于容器的信息處理方法,包括:
判斷終端中的dea模塊中的container,是否產(chǎn)生變化;
若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;
接收所述服務器發(fā)送的所述事件通知。
進一步地,在所述判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,還包括:
在所述dea模塊啟動時,向所述服務器發(fā)送臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求中包括所述終端標識,以使所述服務器根據(jù)所述臨時節(jié)點注冊請求生成與所述終端標識對應的臨時節(jié)點。
進一步地,所述container更新信息,包括:
container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
進一步地,在所述接收所述服務器發(fā)送的所述事件通知之后,還包括:
若所述事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與所述終端對應的臨時節(jié)點中的container信息,并將所述container信息與預存的container信息進行比對分析,以對所述臨時節(jié)點下的內(nèi)容進行變更;
或者,
若所述事件通知中表征的事件為刪除臨時節(jié)點時,則刪除所述終端中的所述dea模塊中的各container。
進一步地,在所述判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,還包括:
向所述服務器發(fā)送監(jiān)聽節(jié)點注冊請求,以使所述服務器生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
本公開的實施例提供的技術方案可以包括以下有益效果:通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
根據(jù)本公開實施例的第三方面,提供一種基于容器的信息處理裝置,包括:
第一接收模塊,被配置為接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;
更新模塊,被配置為根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;
通知模塊,被配置為根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
進一步地,所述裝置,還包括:
第二接收模塊,被配置為在所述第一接收模塊接收終端發(fā)送的更新請求之前,接收所述終端發(fā)送的臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求為所述終端在所述dea模塊啟動時發(fā)送的,所述臨時節(jié)點注冊請求中包括所述終端標識;
生成模塊,被配置為根據(jù)所述臨時節(jié)點注冊請求,生成與所述終端標識對應的臨時節(jié)點。
進一步地,所述container更新信息,包括:
container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
進一步地,所述裝置,還包括:
檢測模塊,被配置為所述通知模塊根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知之后,檢測所述終端中的所述dea模塊是否出現(xiàn)異常掛機狀態(tài);在確定所述dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與所述終端對應的臨時節(jié)點。
進一步地,所述裝置,還包括:
第三接收模塊,被配置為在所述第一接收模塊接收終端發(fā)送的更新請求之前,接收所述終端發(fā)送的監(jiān)聽節(jié)點注冊請求;根據(jù)所述監(jiān)聽節(jié)點注冊請求生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
進一步地,所述通知模塊,被具體配置為:
在所述監(jiān)聽節(jié)點監(jiān)聽到與所述終端對應的臨時節(jié)點被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,向所述終端的router模塊發(fā)送事件通知。
本公開的實施例提供的技術方案可以包括以下有益效果:通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
根據(jù)本公開實施例的第四方面,提供一種基于容器的信息處理裝置,包括:
判斷模塊,被配置為判斷終端中的dea模塊中的container,是否產(chǎn)生變化;
發(fā)送模塊,被配置為若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;
接收模塊,被配置為接收所述服務器發(fā)送的所述事件通知。
進一步地,所述裝置,還包括:
第一注冊模塊,被配置為在所述判斷模塊判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,在所述dea模塊啟動時,向所述服務器發(fā)送臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求中包括所述終端標識,以使所述服務器根據(jù)所述臨時節(jié)點注冊請求生成與所述終端標識對應的臨時節(jié)點。
進一步地,所述container更新信息,包括:
container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
進一步地,所述裝置,還包括:
處理模塊,被配置為在所述接收模塊接收所述服務器發(fā)送的所述事件通知之后,若所述事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與所述終端對應的臨時節(jié)點中的container信息,并將所述container信息與預存的container信息進行比對分析,以對所述臨時節(jié)點下的內(nèi)容進行變更;
或者,
若所述事件通知中表征的事件為刪除臨時節(jié)點時,則刪除所述終端中的所述dea模塊中的各container。
進一步地,所述裝置,還包括:
第二注冊模塊,被配置為在所述判斷模塊判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,向所述服務器發(fā)送監(jiān)聽節(jié)點注冊請求,以使所述服務器生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
本公開的實施例提供的技術方案可以包括以下有益效果:通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
根據(jù)本公開實施例的第五方面,提供一種服務器,包括:
處理器,以及用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
本公開的實施例提供的技術方案可以包括以下有益效果:通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
根據(jù)本公開實施例的第六方面,提供一種終端,包括:
處理器,以及用于存儲處理器可執(zhí)行指令的存儲器;
其中,所述處理器被配置為:判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;接收所述服務器發(fā)送的所述事件通知。
本公開的實施例提供的技術方案可以包括以下有益效果:通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例一的流程圖;
圖2是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例二的流程圖;
圖3是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例三的流程圖;
圖4是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例四的流程圖;
圖5是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例五的框圖;
圖6是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例六的框圖;
圖7是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例七的框圖;
圖8是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例八的框圖;
圖9是根據(jù)一示例性實施例示出的一種服務器實施例九的實體的框圖;
圖10是根據(jù)一示例性實施例示出的一種終端實施例十的實體的框圖;
圖11是根據(jù)一示例性實施例示出的一種服務器設備1900的框圖;
圖12是根據(jù)一示例性實施例示出的一種終端設備800的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
圖1是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例一的流程圖,如圖1所示,該方法主要是用在服務器中,該服務器包括公共終端、移動終端、個人終端等等,例如臺式機、觸屏手機、平板電腦、個人電腦等,該方法包括以下步驟。
在步驟s11中,接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息。
其中,container更新信息,包括:container創(chuàng)建信息、或container刪除信息。
在本步驟中,在一臺終端中設置了一個dea模塊,在一個dea模塊中會設置多個container。在dea模塊中的container產(chǎn)生變化時,此時終端的dea模塊可以向服務器中的zookeeper下的臨時節(jié)點發(fā)送一個更新請求,根據(jù)dea模塊中的container產(chǎn)生的變化,在該更新請求中加入了container更新信息,例如container更新信息為container創(chuàng)建信息、或container刪除信息、或者container中的信息發(fā)生變化等等。進而,服務器中的zookeeper接收到該更新請求。
在步驟s12中,根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容。
在本步驟中,服務器中的zookeeper,查詢出與當前終端對應的臨時節(jié)點。在服務器中的zookeeper的/cf/dea/下具有臨時節(jié)點dea-i,i為dea唯一標識,i與各終端對應,i取值為正整數(shù);在各臨時節(jié)點dea-i中分別具有不同的dea模塊中的所有container信息。此時服務器中的zookeeper,查詢出與當前終端對應的臨時節(jié)點為/cf/dea/下的臨時節(jié)點dea-i;然后服務器的zookeeper會將服務器中的zookeeper下的臨時節(jié)點dea-i下具有的當前dea模塊的container信息內(nèi)容進行更新,即在路徑cf/dea//cf/dea/<dea-i>內(nèi)更新container的信息,改變該臨時節(jié)點的內(nèi)容。
在步驟s13中,根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
其中,所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
在本步驟中,服務器會將服務器中的zookeeper下的臨時節(jié)點dea-i,在更新了當前dea模塊的container信息內(nèi)容之后,服務器中的zookeeper會根據(jù)該臨時節(jié)點dea-i下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送一個事件通知。若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container創(chuàng)建信息,則該事件通知表征創(chuàng)建container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container刪除信息,則該事件通知表征刪除container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container中的信息被更改,則該事件通知表征更新container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為創(chuàng)建了該臨時節(jié)點dea-i,則該事件通知表征創(chuàng)建臨時節(jié)點;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為刪除了該臨時節(jié)點dea-i,則該事件通知表征刪除臨時節(jié)點。
本實施例通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
在上述實施例一的基礎上,圖2是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例二的流程圖,如圖2所示,在步驟s11之前,還包括:
在步驟s21中,接收所述終端發(fā)送的臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求為所述終端在所述dea模塊啟動時發(fā)送的,所述臨時節(jié)點注冊請求中包括所述終端標識。
在本步驟中,在終端的dea模塊首次啟動的時候,終端的dea模塊可以向服務器的zookeeper發(fā)送一個臨時節(jié)點注冊請求,需要將終端標識添加到臨時節(jié)點注冊請求。因為一個終端對應著一個dea模塊,一個dea模塊對應著服務器的zookeeper下的一個臨時節(jié)點。
在步驟s22中,根據(jù)所述臨時節(jié)點注冊請求,生成與所述終端標識對應的臨時節(jié)點。
在本步驟中,服務器的zookeeper根據(jù)步驟s21中的臨時節(jié)點注冊請求,在路徑/cf/dea/下生成與當前終端對應的臨時節(jié)點dea-i,i為dea唯一標識,i與終端的終端標識對應,i取值為正整數(shù);在各臨時節(jié)點dea-i中分別具有不同的dea模塊中的所有container信息。
在步驟s11之前,還包括:
在步驟s23中,接收所述終端發(fā)送的監(jiān)聽節(jié)點注冊請求。
在本步驟中,在本實施例實施的過程中,在終端的dea模塊啟動的時候,終端的dea模塊可以向服務器的zookeeper發(fā)送一個監(jiān)聽節(jié)點注冊請求。
在步驟s24中,根據(jù)所述監(jiān)聽節(jié)點注冊請求生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
在本步驟中,服務器的zookeeper可以生成一個監(jiān)聽節(jié)點listener到/cf/dea/臨時節(jié)點,去關注該臨時節(jié)點下各子節(jié)點的個數(shù)和內(nèi)容的變化??梢葬槍γ恳粋€終端的dea模塊,都可以在zookeeper下生成一個監(jiān)聽節(jié)點listener到/cf/dea/臨時節(jié)點,進而去檢測各臨時節(jié)點下的各子節(jié)點的個數(shù)和內(nèi)容的變化。
與步驟s24對應著,步驟s13,具體包括:
在所述監(jiān)聽節(jié)點監(jiān)聽到與所述終端對應的臨時節(jié)點被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,向所述終端的router模塊發(fā)送事件通知。
在本步驟中,服務器會將服務器中的zookeeper下的臨時節(jié)點dea-i,在更新了當前dea模塊的container信息內(nèi)容之后,服務器中的zookeeper可以通過注冊出的監(jiān)聽節(jié)點去監(jiān)聽該臨時節(jié)點dea-i下的內(nèi)容的更新情況,服務器中的zookeeper在監(jiān)聽到臨時節(jié)點dea-i被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,以事件的方式向與該臨時節(jié)點dea-i對應的終端的router模塊發(fā)送一個事件通知。
在步驟s13之后,還包括:
在步驟s25中,檢測所述終端中的所述dea模塊是否出現(xiàn)異常掛機狀態(tài)。
在本步驟中,服務器的zookeeper,可以檢測到與當前臨時節(jié)點dea-i對應的終端中的dea模塊是否出現(xiàn)異常掛機狀態(tài),即該dea模塊是否異常掛掉。
在步驟s26中,在確定所述dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與所述終端對應的臨時節(jié)點。
在本步驟中,若服務器的zookeeper,檢測到與當前臨時節(jié)點dea-i對應的終端的dea模塊異常掛掉,則服務器的zookeeper可以直接刪除該臨時節(jié)點dea-i。因為與dea模塊對應是一個臨時節(jié)點,所以zookeeper會自動刪除這個不存活的臨時節(jié)點。
本實施例通過接收終端發(fā)送的臨時節(jié)點注冊請求,其中,臨時節(jié)點注冊請求為終端在dea模塊啟動時發(fā)送的,臨時節(jié)點注冊請求中包括終端標識;根據(jù)臨時節(jié)點注冊請求,生成與終端標識對應的臨時節(jié)點;接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知;在確定dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與終端對應的臨時節(jié)點。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知,進而通過事件機制來觸發(fā)router模塊主動更新自身的container信息;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應,直接根據(jù)內(nèi)存中的映射關系進行刪除某個消失dea對應的臨時加節(jié)點中的所有container信息;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖3是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例三的流程圖,如圖3所示,該方法主要是用在終端中,該終端包括公共終端、移動終端、個人終端等等,例如臺式機、觸屏手機、平板電腦、個人電腦等,該信息方法包括以下步驟。
在步驟s31中,判斷終端中的dea模塊中的container,是否產(chǎn)生變化。
在本步驟中,在一臺終端中設置了一個dea模塊,在一個dea模塊中會設置多個container。終端的dea模塊,可以檢測dea模塊中的container,是否產(chǎn)生變化,這里的變化可以是創(chuàng)建container、或刪除container、或者container中的信息發(fā)生變化等等。
在步驟s32中,若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知。
其中,所述container更新信息,包括:container創(chuàng)建信息、或container刪除信息。所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
在本步驟中,若dea模塊中的container產(chǎn)生變化,此時終端的dea模塊可以向服務器中的zookeeper下的臨時節(jié)點發(fā)送一個更新請求,根據(jù)dea模塊中的container產(chǎn)生的變化,在該更新請求中加入了container更新信息,例如container更新信息為container創(chuàng)建信息、或container刪除信息、或者container中的信息發(fā)生變化等等。
進而,服務器中的zookeeper接收到該更新請求。服務器中的zookeeper,查詢出與當前終端對應的臨時節(jié)點。在服務器中的zookeeper的/cf/dea/下具有臨時節(jié)點dea-i,i為dea唯一標識,i與各終端對應,i取值為正整數(shù);在各臨時節(jié)點dea-i中分別具有不同的dea模塊中的所有container信息。此時服務器中的zookeeper,查詢出與當前終端對應的臨時節(jié)點為/cf/dea/下的臨時節(jié)點dea-i;然后服務器zookeeper會將服務器中的zookeeper下的臨時節(jié)點dea-i下具有的當前dea模塊的container信息內(nèi)容進行更新,即在路徑cf/dea//cf/dea/<dea-i>內(nèi)更新container的信息,改變該臨時節(jié)點的內(nèi)容。
然后,服務器會將服務器中的zookeeper下的臨時節(jié)點dea-i,在更新了當前dea模塊的container信息內(nèi)容之后,服務器中的zookeeper會根據(jù)該臨時節(jié)點dea-i下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送一個事件通知。若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container創(chuàng)建信息,則該事件通知表征創(chuàng)建container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container刪除信息,則該事件通知表征刪除container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為container中的信息被更改,則該事件通知表征更新container;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為創(chuàng)建了該臨時節(jié)點dea-i,則該事件通知表征創(chuàng)建臨時節(jié)點;若該臨時節(jié)點dea-i下的內(nèi)容的更新情況為刪除了該臨時節(jié)點dea-i,則該事件通知表征刪除臨時節(jié)點。
在步驟s33中,接收所述服務器發(fā)送的所述事件通知。
在本步驟中,終端的router模塊,就可以接收到步驟s32中zookeeper下的臨時節(jié)點dea-i,以事件的方式向終端的router模塊發(fā)送的事件通知。
本實施例通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
在上述實施例三的基礎上,圖4是根據(jù)一示例性實施例示出的一種基于容器的信息處理方法實施例四的流程圖,如圖4所示,在步驟s31之前,還包括:
在步驟s41中,在所述dea模塊啟動時,向所述服務器發(fā)送臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求中包括所述終端標識,以使所述服務器根據(jù)所述臨時節(jié)點注冊請求生成與所述終端標識對應的臨時節(jié)點。
在本步驟中,在終端的dea模塊首次啟動的時候,終端的dea模塊可以向服務器的zookeeper發(fā)送一個臨時節(jié)點注冊請求,需要將終端標識添加到臨時節(jié)點注冊請求。因為一個終端對應著一個dea模塊,一個dea模塊對應著服務器的zookeeper下的一個臨時節(jié)點。然后服務器的zookeeper根據(jù)臨時節(jié)點注冊請求,在路徑/cf/dea/下生成與當前終端對應的臨時節(jié)點dea-i,i為dea唯一標識,i與終端的終端標識對應,i取值為正整數(shù);在各臨時節(jié)點dea-i中分別具有不同的dea模塊中的所有container信息。
本實施例提供的方法,在步驟s31之前,還包括:
在步驟s42中,向所述服務器發(fā)送監(jiān)聽節(jié)點注冊請求,以使所述服務器生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
在本步驟中,在本實施例實施的過程中,在終端的dea模塊啟動的時候,終端的dea模塊可以向服務器的zookeeper發(fā)送一個監(jiān)聽節(jié)點注冊請求。然后,服務器的zookeeper可以生成一個監(jiān)聽節(jié)點listener到/cf/dea/臨時節(jié)點,去關注該臨時節(jié)點下各子節(jié)點的個數(shù)和內(nèi)容的變化??梢葬槍γ恳粋€終端的dea模塊,都可以在zookeeper下生成一個監(jiān)聽節(jié)點listener到/cf/dea/臨時節(jié)點,進而去檢測各臨時節(jié)點下的各子節(jié)點的個數(shù)和內(nèi)容的變化。從而服務器會將服務器中的zookeeper下的臨時節(jié)點dea-i,在更新了當前dea模塊的container信息內(nèi)容之后,可以通過注冊出的監(jiān)聽節(jié)點去監(jiān)聽該臨時節(jié)點dea-i下的內(nèi)容的更新情況,在監(jiān)聽到臨時節(jié)點dea-i被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,以事件的方式向與該臨時節(jié)點dea-i對應的終端的router模塊發(fā)送一個事件通知。
在步驟s33之后,還包括:
在步驟s43中,若所述事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與所述終端對應的臨時節(jié)點中的container信息,并將所述container信息與預存的container信息進行比對分析,以對所述臨時節(jié)點下的內(nèi)容進行變更;或者,若所述事件通知中表征的事件為刪除臨時節(jié)點時,則刪除所述終端中的所述dea模塊中的各container。
在本步驟中,終端的router模塊接收到服務器的zookeeper發(fā)送的事件通知之后,終端的router模塊需要根據(jù)該事件通知中表征的事件的事件類型,去執(zhí)行相應的操作。
若事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點,則終端的router模塊去獲取服務器中的與當前終端對應的臨時節(jié)點dea-i中的container信息,然后將該container信息與router模塊中預存的container信息進行比對分析,然后對對該臨時節(jié)點下的內(nèi)容進行變更,或者對終端中的container進行變更。
若所述事件通知中表征的事件為刪除臨時節(jié)點,則終端的router模塊刪除該dea模塊中的所有container。
本實施例通過在dea模塊啟動時,向服務器發(fā)送臨時節(jié)點注冊請求,以使服務器根據(jù)臨時節(jié)點注冊請求生成與終端標識對應的臨時節(jié)點;判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知;若事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與終端對應的臨時節(jié)點中的container信息,并將container信息與預存的container信息進行比對分析,以對臨時節(jié)點下的內(nèi)容進行變更;若事件通知中表征的事件為刪除臨時節(jié)點時,則刪除終端中的dea模塊中的各container。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知,進而通過事件機制來觸發(fā)router模塊主動更新自身的container信息;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應,直接根據(jù)內(nèi)存中的映射關系進行刪除某個消失dea對應的臨時加節(jié)點中的所有container信息;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖5是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例五的框圖。參照圖5,該裝置包括:
第一接收模塊51,被配置為接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;
更新模塊52,被配置為根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;
通知模塊53,被配置為根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
在上述實施例五的基礎上,圖6是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例六的框圖。參照圖6,該裝置中,還包括:
第二接收模塊54,被配置為在所述第一接收模塊51接收終端發(fā)送的更新請求之前,接收所述終端發(fā)送的臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求為所述終端在所述dea模塊啟動時發(fā)送的,所述臨時節(jié)點注冊請求中包括所述終端標識;
生成模塊55,被配置為根據(jù)所述臨時節(jié)點注冊請求,生成與所述終端標識對應的臨時節(jié)點。
其中所述container更新信息,包括:container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
所述裝置,還包括:
檢測模塊56,被配置為所述通知模塊53根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知之后,檢測所述終端中的所述dea模塊是否出現(xiàn)異常掛機狀態(tài);在確定所述dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與所述終端對應的臨時節(jié)點。
所述裝置,還包括:
第三接收模塊57,被配置為在所述第一接收模塊51接收終端發(fā)送的更新請求之前,接收所述終端發(fā)送的監(jiān)聽節(jié)點注冊請求;根據(jù)所述監(jiān)聽節(jié)點注冊請求生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
所述通知模塊53,被具體配置為:
在所述監(jiān)聽節(jié)點監(jiān)聽到與所述終端對應的臨時節(jié)點被刪除或創(chuàng)建,或者container被刪除或創(chuàng)建的時候,向所述終端的router模塊發(fā)送事件通知。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過接收終端發(fā)送的臨時節(jié)點注冊請求,其中,臨時節(jié)點注冊請求為終端在dea模塊啟動時發(fā)送的,臨時節(jié)點注冊請求中包括終端標識;根據(jù)臨時節(jié)點注冊請求,生成與終端標識對應的臨時節(jié)點;接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知;在確定dea模塊出現(xiàn)異常掛機狀態(tài),則刪除與終端對應的臨時節(jié)點。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知,進而通過事件機制來觸發(fā)router模塊主動更新自身的container信息;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應,直接根據(jù)內(nèi)存中的映射關系進行刪除某個消失dea對應的臨時加節(jié)點中的所有container信息;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖7是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例七的框圖。參照圖7,該裝置包括:
判斷模塊61,被配置為判斷終端中的dea模塊中的container,是否產(chǎn)生變化;
發(fā)送模塊62,被配置為若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;
接收模塊63,被配置為接收所述服務器發(fā)送的所述事件通知。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
在上述實施例七的基礎上,圖8是根據(jù)一示例性實施例示出的一種基于容器的信息處理裝置實施例八的框圖。參照圖8,該裝置中,還包括:
第一注冊模塊64,被配置為在所述判斷模塊61判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,在所述dea模塊啟動時,向所述服務器發(fā)送臨時節(jié)點注冊請求,其中,所述臨時節(jié)點注冊請求中包括所述終端標識,以使所述服務器根據(jù)所述臨時節(jié)點注冊請求生成與所述終端標識對應的臨時節(jié)點。
其中,所述container更新信息,包括:container創(chuàng)建信息、或container刪除信息;
所述事件通知表征創(chuàng)建container、或刪除container、或更新container、或創(chuàng)建臨時節(jié)點、或刪除臨時節(jié)點。
所述裝置,還包括:
處理模塊65,被配置為在所述接收模塊63接收所述服務器發(fā)送的所述事件通知之后,若所述事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與所述終端對應的臨時節(jié)點中的container信息,并將所述container信息與預存的container信息進行比對分析,以對所述臨時節(jié)點下的內(nèi)容進行變更;
或者,
若所述事件通知中表征的事件為刪除臨時節(jié)點時,則刪除所述終端中的所述dea模塊中的各container。
所述裝置,還包括:
第二注冊模塊66,被配置為在所述判斷模塊61判斷終端中的dea模塊中的container,是否產(chǎn)生變化之前,向所述服務器發(fā)送監(jiān)聽節(jié)點注冊請求,以使所述服務器生成監(jiān)聽節(jié)點,以根據(jù)所述監(jiān)聽節(jié)點監(jiān)聽與各終端對應的臨時節(jié)點。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過在dea模塊啟動時,向服務器發(fā)送臨時節(jié)點注冊請求,以使服務器根據(jù)臨時節(jié)點注冊請求生成與終端標識對應的臨時節(jié)點;判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知;若事件通知中表征的事件為創(chuàng)建container、或刪除container、或創(chuàng)建臨時節(jié)點時,則獲取服務器中的與終端對應的臨時節(jié)點中的container信息,并將container信息與預存的container信息進行比對分析,以對臨時節(jié)點下的內(nèi)容進行變更;若事件通知中表征的事件為刪除臨時節(jié)點時,則刪除終端中的dea模塊中的各container。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知,進而通過事件機制來觸發(fā)router模塊主動更新自身的container信息;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應,直接根據(jù)內(nèi)存中的映射關系進行刪除某個消失dea對應的臨時加節(jié)點中的所有container信息;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖9是根據(jù)一示例性實施例示出的一種服務器實施例九的實體的框圖。參照圖9,該服務器可以具體實現(xiàn)為:處理器71,以及被配置為存儲處理器可執(zhí)行指令的存儲器72;
其中,所述處理器71被配置為:接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
在上述實施例中,應理解,該處理器可以是中央處理單元(英文:centralprocessingunit,簡稱:cpu),還可以是其他通用處理器、數(shù)字信號處理器(英文:digitalsignalprocessor,簡稱:dsp)、專用集成電路(英文:applicationspecificintegratedcircuit,簡稱:asic)等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,而前述的存儲器可以是只讀存儲器(英文:read-onlymemory,縮寫:rom)、隨機存取存儲器(英文:randomaccessmemory,簡稱:ram)、快閃存儲器、硬盤或者固態(tài)硬盤。sim卡也稱為用戶身份識別卡、智能卡,數(shù)字移動電話機必須裝上此卡方能使用。即在電腦芯片上存儲了數(shù)字移動電話客戶的信息,加密的密鑰以及用戶的電話簿等內(nèi)容。結合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。
關于上述實施例中的服務器,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法和裝置的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過接收終端發(fā)送的更新請求,其中,更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,更新請求中包括container更新信息;根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容;根據(jù)與終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向終端的router模塊發(fā)送事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖10是根據(jù)一示例性實施例示出的一種終端實施例十的實體的框圖。參照圖10,該終端可以具體實現(xiàn)為:處理器81,以及被配置為存儲處理器可執(zhí)行指令的存儲器82;
其中,所述處理器81被配置為:判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;接收所述服務器發(fā)送的所述事件通知。
在上述實施例中,應理解,該處理器可以是中央處理單元(英文:centralprocessingunit,簡稱:cpu),還可以是其他通用處理器、數(shù)字信號處理器(英文:digitalsignalprocessor,簡稱:dsp)、專用集成電路(英文:applicationspecificintegratedcircuit,簡稱:asic)等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,而前述的存儲器可以是只讀存儲器(英文:read-onlymemory,縮寫:rom)、隨機存取存儲器(英文:randomaccessmemory,簡稱:ram)、快閃存儲器、硬盤或者固態(tài)硬盤。sim卡也稱為用戶身份識別卡、智能卡,數(shù)字移動電話機必須裝上此卡方能使用。即在電腦芯片上存儲了數(shù)字移動電話客戶的信息,加密的密鑰以及用戶的電話簿等內(nèi)容。結合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件處理器執(zhí)行完成,或者用處理器中的硬件及軟件模塊組合執(zhí)行完成。
關于上述實施例中的終端,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法和裝置的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本實施例通過判斷終端中的dea模塊中的container,是否產(chǎn)生變化;若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,更新請求中包括container更新信息,以使服務器根據(jù)更新請求更新與終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向終端的router模塊發(fā)送事件通知;接收服務器發(fā)送的事件通知。進而不需要dea模塊定時將自身的container信息通過nats發(fā)送給router模塊,只有在有container新增或刪除的時候將變更數(shù)據(jù)發(fā)送到zookeeper的臨時節(jié)點中,然后通過事件機制向router模塊發(fā)送事件通知;可以通過zookeeper的事件通知機制快速、實時的對各dea模塊上的所有container進行響應;不需要通過nats收發(fā)消息的方式來完成container的變更操作,進而減少了帶寬占用,并且,zookeeper的事件通知機制比nats的消息總線方式具有更高的并行性。
圖11是根據(jù)一示例性實施例示出的一種服務器設備1900的框圖。例如,裝置1900可以被提供為一服務器。參照圖11,裝置1900包括處理組件1922,其進一步包括一個或多個處理器,以及由存儲器1932所代表的存儲器資源,用于存儲可由處理組件1922的執(zhí)行的指令,例如應用程序。存儲器1932中存儲的應用程序可以包括一個或一個以上的每一個對應于一組指令的模塊。此外,處理組件1922被配置為執(zhí)行指令,以執(zhí)行上述基于容器的信息處理方法,所述方法包括:
接收終端發(fā)送的更新請求,其中,所述更新請求為終端中的dea模塊檢測到dea模塊中的container產(chǎn)生變化時發(fā)送的,所述更新請求中包括container更新信息;
根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容;
根據(jù)與所述終端對應的臨時節(jié)點下的內(nèi)容的更新情況,以事件的方式向所述終端的router模塊發(fā)送事件通知。
裝置1900還可以包括一個電源組件1926被配置為執(zhí)行裝置1900的電源管理,一個有線或無線網(wǎng)絡接口1950被配置為將裝置1900連接到網(wǎng)絡,和一個輸入輸出(i/o)接口1958。裝置1900可以操作基于存儲在存儲器1932的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。
圖12是根據(jù)一示例性實施例示出的一種終端設備800的框圖。例如,終端設備800可以是移動電話,計算機,數(shù)字廣播終端,消息收發(fā)設備,游戲控制臺,平板設備,醫(yī)療設備,健身設備,個人數(shù)字助理等。
參照圖12,終端設備800可以包括以下一個或多個組件:處理組件802,存儲器804,電源組件806,多媒體組件808,音頻組件810,輸入/輸出(i/o)的接口812,傳感器組件814,以及通信組件816。
處理組件802通常控制終端設備800的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機操作和記錄操作相關聯(lián)的操作。處理組件802可以包括一個或多個處理器820來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件802可以包括一個或多個模塊,便于處理組件802和其他組件之間的交互。例如,處理組件802可以包括多媒體模塊,以方便多媒體組件808和處理組件802之間的交互。
存儲器804被配置為存儲各種類型的數(shù)據(jù)以支持在終端設備800的操作。這些數(shù)據(jù)的示例包括用于在終端設備800上操作的任何應用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲器804可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(sram),電可擦除可編程只讀存儲器(eeprom),可擦除可編程只讀存儲器(eprom),可編程只讀存儲器(prom),只讀存儲器(rom),磁存儲器,快閃存儲器,磁盤或光盤。
電源組件806為終端設備800的各種組件提供電力。電源組件806可以包括電源管理系統(tǒng),一個或多個電源,及其他與為終端設備800生成、管理和分配電力相關聯(lián)的組件。
多媒體組件808包括在所述終端設備800和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(lcd)和觸摸面板(tp)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關的持續(xù)時間和壓力。在一些實施例中,多媒體組件808包括一個前置攝像頭和/或后置攝像頭。當終端設備800處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
音頻組件810被配置為輸出和/或輸入音頻信號。例如,音頻組件810包括一個麥克風(mic),當終端設備800處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器804或經(jīng)由通信組件816發(fā)送。在一些實施例中,音頻組件810還包括一個揚聲器,用于輸出音頻信號。
i/o接口812為處理組件802和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件814包括一個或多個傳感器,用于為終端設備800提供各個方面的狀態(tài)評估。例如,傳感器組件814可以檢測到終端設備800的打開/關閉狀態(tài),組件的相對定位,例如所述組件為終端設備800的顯示器和小鍵盤,傳感器組件814還可以檢測終端設備800或終端設備800一個組件的位置改變,用戶與終端設備800接觸的存在或不存在,終端設備800方位或加速/減速和終端設備800的溫度變化。傳感器組件814可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件814還可以包括光傳感器,如cmos或ccd圖像傳感器,用于在成像應用中使用。在一些實施例中,該傳感器組件814還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件816被配置為便于終端設備800和其他設備之間有線或無線方式的通信。終端設備800可以接入基于通信標準的無線網(wǎng)絡,如wifi,2g或3g,或它們的組合。在一個示例性實施例中,通信組件816經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關信息。在一個示例性實施例中,所述通信組件816還包括近場通信(nfc)模塊,以促進短程通信。例如,在nfc模塊可基于射頻識別(rfid)技術,紅外數(shù)據(jù)協(xié)會(irda)技術,超寬帶(uwb)技術,藍牙(bt)技術和其他技術來實現(xiàn)。
在示例性實施例中,終端設備800可以被一個或多個應用專用集成電路(asic)、數(shù)字信號處理器(dsp)、數(shù)字信號處理設備(dspd)、可編程邏輯器件(pld)、現(xiàn)場可編程門陣列(fpga)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器804,上述指令可由終端設備800的處理器820執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質可以是rom、隨機存取存儲器(ram)、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲設備等。
一種非臨時性計算機可讀存儲介質,當所述存儲介質中的指令由移動終端的處理器執(zhí)行時,使得移動終端能夠執(zhí)行一種基于容器的信息處理方法,所述方法包括:
判斷終端中的dea模塊中的container,是否產(chǎn)生變化;
若確定終端中的dea模塊中的container產(chǎn)生變化,則向服務器發(fā)送更新請求,其中,所述更新請求中包括container更新信息,以使所述服務器根據(jù)所述更新請求更新與所述終端對應的臨時節(jié)點下的內(nèi)容之后,以事件的方式向所述終端的router模塊發(fā)送事件通知;
接收所述服務器發(fā)送的所述事件通知。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權利要求指出。
應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權利要求來限制。