1.一種基于kafka的處理消息的方法,其特征在于:模式信息作為消息頭信息的一部分隨消息一起發(fā)送,在消息傳輸時使用Apache Avro為消息傳輸格式。
2.根據(jù)權利要求1所述的基于kafka的處理消息的方法,其特征在于:該方法包括以下步驟:
(1)生產(chǎn)者應用生成帶消息模式的消息;
(2)消息隊列kafka存儲帶消息模式的消息;
(3)消費者應用從kafka中獲取帶消息模式的消息并消費消息。
3.根據(jù)權利要求2所述的基于kafka的處理消息的方法,其特征在于:該方法還包括步驟(4),如果生產(chǎn)者應用生成的消息對應的消息模式發(fā)生變更,消費者應用直接根據(jù)消息頭獲取到變更后的消息模式,并根據(jù)消息模式解析變更模式之后的消息。
4.根據(jù)權利要求3所述的基于kafka的處理消息的方法,其特征在于:所述步驟(1)中,消息模式封裝到消息頭里面,消息頭還包括消息UUID、加密細節(jié)、時間戳。
5.根據(jù)權利要求4所述的基于kafka的處理消息的方法,其特征在于:所述步驟(2)中,kafka中存儲的消息是帶消息模式的消息。
6.根據(jù)權利要求5所述的基于kafka的處理消息的方法,其特征在于:所述步驟(3)中,消費者應用從kafka中獲取帶消息模式的信息,先從消息頭里面拿到消息模式,然后通過消息模式解析消息內(nèi)容。
7.一種基于kafka的處理消息的方法,其特征在于:通過消息模式注冊服務來實現(xiàn)消息模式變更通知,對于上游生產(chǎn)者應用生成的消息在發(fā)往kafka之前先到模式注冊服務Schema Registrar注冊并生成對應的模式編號,而隨消息一起傳遞的是從模式注冊服務獲取到的該消息模式對應的編號,當下游消費者應用通過kafka獲取到消息時,首先解析消息元數(shù)據(jù)信息,拿到消息模式編號,如果應用內(nèi)存中有模式編號對應的模式信息,則根據(jù)模式信息解析消息,如果內(nèi)存中沒有模式編號對應的模式信息,則應用發(fā)起請求根據(jù)模式編號從模式注冊服務Schema Registrar中獲取模式信息,然后根據(jù)模式信息解析消息,并緩存該模式信息。
8.根據(jù)權利要求7所述的基于kafka的處理消息的方法,其特征在于:該方法包括以下步驟:
(a)生產(chǎn)者應用生成消息并注冊消息模式;
(b)消息隊列kafka存儲帶消息模式編號的消息;
(c)消費者應用從kafka中獲取帶消息模式編號的信息并消費消息。
9.根據(jù)權利要求8所述的基于kafka的處理消息的方法,其特征在于:該方法還包括步驟(d),如果生產(chǎn)者應用生成的消息對應的消息模式發(fā)生變更,則重新到消息模式注冊服務Schema Registrar注冊,消費者應用獲取到消息新的模式編號,通過模式編號獲取到信息的模式信息,通過新的模式信息解析消息內(nèi)容。
10.根據(jù)權利要求9所述的基于kafka的處理消息的方法,其特征在于:所述步驟(a)中,生產(chǎn)者應用生成帶消息,并將消息模式注冊到消息模式注冊服務Schema Registrar,由模式注冊服務生成一個消息模式對應的模式編號,并將這個模式編號封裝到消息頭里面,消息頭還包括消息UUID、加密細節(jié)、時間戳,消息傳輸格式使用Avro。