消息發布方法、裝置及系統的制作方法
【專利說明】
【技術領域】
[0001]本申請涉及消息處理技術,尤其涉及一種消息發布方法、裝置及系統。
【【背景技術】】
[0002]消息中間件,也可以稱為消息中心,其負責應用系統之間的數據傳輸,具有高效性和可靠性。為了提高消息的傳輸效率,可以由若干個消息中心組成一個消息中心集群,共同為應用系統服務,例如,交易系統或支付系統。
[0003]然而,當消息中心集群中一個消息中心不可用時,例如消息中心發布或重啟即消息中心所對應的進程終止,應用系統無法再通過該消息中心傳輸消息,使得應用系統需要反復選擇其他的消息中心執行消息傳輸操作,這樣,會增加應用系統與消息中心集群之間的數據交互,從而導致了消息中心集群的網絡開銷的增加。
【
【發明內容】
】
[0004]本申請的多個方面提供一種消息發布方法、裝置及系統,用以減少消息中心集群的網絡開銷。
[0005]本申請的一方面,提供一種消息發布方法,包括:
[0006]接收消息中心集群中第一消息中心發送的不可用指示,用以指示所述第一消息中心不可用,所述消息中心集群包括所述第一消息中心和第二消息中心;
[0007]根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息;
[0008]向所述消息中心集群所服務的應用系統,發送所述可用消息中心的標識信息,以使得所述應用系統根據所述可用消息中心的標識信息,選擇一個可用消息中心執行消息傳輸操作。
[0009]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息,包括:
[0010]根據所述不可用指示,將所述第一消息中心的標識信息,從所述消息中心集群的可用消息中心的標識信息中刪除。
[0011]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述不可用指示包括進程終止指示。
[0012]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息之前,還包括:
[0013]接收所述第一消息中心發送的可用指示,用以指示所述第一消息中心可用;
[0014]根據所述可用指示,更新所述消息中心集群的可用消息中心的標識信息。
[0015]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息,包括:
[0016]根據所述可用指示,將所述第一消息中心的標識信息,添加到所述消息中心集群的可用消息中心的標識信息中。
[0017]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述可用指示包括進程開始指示。
[0018]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述接收消息中心集群中第一消息中心發送的不可用指示之前,還包括:
[0019]所述第一消息中心設置關閉鉤子,用以截獲所述第一消息中心的進程終止信息;
[0020]若所述關閉鉤子截獲所述第一消息中心的進程終止信息,所述第一消息中心調用所述關閉鉤子所對應的鉤子函數,以發送所述不可用指示。
[0021]本申請的另一方面,提供一種消息發布裝置,包括:
[0022]接收單元,用于接收消息中心集群中第一消息中心發送的不可用指示,用以指示所述第一消息中心不可用,所述消息中心集群包括所述第一消息中心和第二消息中心;
[0023]更新單元,用于根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息;
[0024]發送單元,用于向所述消息中心集群所服務的應用系統,發送所述可用消息中心的標識信息,以使得所述應用系統根據所述可用消息中心的標識信息,選擇一個可用消息中心執行消息傳輸操作。
[0025]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述更新單元,具體用于
[0026]根據所述不可用指示,將所述第一消息中心的標識信息,從所述消息中心集群的可用消息中心的標識信息中刪除。
[0027]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述不可用指示包括進程終止指示。
[0028]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,
[0029]所述接收單元,還用于
[0030]接收所述第一消息中心發送的可用指示,用以指示所述第一消息中心可用;
[0031]所述更新單元,還用于
[0032]根據所述可用指示,更新所述消息中心集群的可用消息中心的標識信息。
[0033]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述更新單元,具體用于
[0034]根據所述可用指示,將所述第一消息中心的標識信息,添加到所述消息中心集群的可用消息中心的標識信息中。
[0035]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述可用指示包括進程開始指示。
[0036]本申請的另一方面,提供一種消息發布系統,包括消息中心集群、所述消息中心集群所服務的應用系統和上述另一方面和其任一可能的實現方式所提供的消息發布裝置;所述消息中心集群包括第一消息中心和第二消息中心;其中,
[0037]所述第一消息中心,用于向所述消息發布裝置發送不可用指示;
[0038]所述應用系統,用于接收所述消息發布裝置發送的可用消息中心的標識信息;以及根據所述可用消息中心的標識信息,選擇一個可用消息中心執行消息傳輸操作。
[0039]如上所述的方面和任一可能的實現方式,進一步提供一種實現方式,所述第一消息中心,還用于
[0040]設置關閉鉤子,用以截獲所述第一消息中心的進程終止信息;以及
[0041]若所述關閉鉤子截獲所述第一消息中心的進程終止信息,調用所述關閉鉤子所對應的鉤子函數,以發送所述不可用指示。
[0042]由上述技術方案可知,本申請實施例通過接收消息中心集群中第一消息中心發送的不可用指示,進而根據所述不可用指示,更新所述消息中心集群的可用消息中心的標識信息,使得能夠向所述消息中心集群所服務的應用系統,發送所述可用消息中心的標識信息,以使得所述應用系統根據所述可用消息中心的標識信息,選擇一個可用消息中心執行消息傳輸操作,由于根據不可用的消息中心即第一消息中心所發送的不可用指示,更新消息中心集群的可用消息中心的標識信息,使得應用系統能夠動態的獲知消息中心集群中可用的消息中心,因此,應用系統能夠一次成功選擇可用的消息中心執行消息傳輸操作,而無需反復選擇其他的消息中心執行消息傳輸操作,能夠避免現有技術中由于應用系統反復選擇其他的消息中心執行消息傳輸操作而導致的增加應用系統與消息中心集群之間的數據交互的問題,從而減少了消息中心集群的網絡開銷。
[0043]另外,采用本申請提供的技術方案,應用系統能夠一次就成功選擇可用的消息中心執行消息傳輸操作,而無需反復選擇其他的消息中心執行消息傳輸操作,因此,不會產生大量的報錯消息以及監控告警,能夠進一步減少消息中心集群的網絡開銷。
[0044]另外,采用本申請提供的技術方案,應用系統能夠動態的獲知消息中心集群中可用的消息中心,進而不再受到不可用的消息中心的任何影響,能夠有效提高消息