一、kafka灰度方案架構設計方案:
1、外部生產-內部消費
場景:(外部生產-內部消費)
解決方案:先通過kdis分流服務---消費外部生產的消息,然后根據管理后臺-灰度配置mcs-mimp-core應用默認的環境版本,如果是1.0,kdis就生產非灰度消息,如果是5.0,kdis就生產灰度消息。業務應用非灰度環境消費kdis生產的非灰度消息,業務應用灰度環境消費kdis生產的灰度消息。
業務方修改:
1) 新申請兩套生產者topic、兩套消費者(一套對應灰度的、一套對應非灰度的)
2) 在kdis服務配置給外部用的topic和新申請的兩套生產者topic
3) 修改業務應用掛載文件kafka-config.json配置
2、內部生產-內部消費
場景:(內部生產-內部消費)
解決方案:業務應用灰度環境生產灰度消息,灰度環境的其它應用消費灰度消息,業務應用非灰度環境生產非灰度消息,非灰度環境的其它應用消費非灰度消息。
業務方修改:
1) 在原有基礎上新申請一套生產者topic、一套消費者(新申請的對應灰度環境、原有的對應非灰度環境)
2) 修改灰度環境的業務應用生產者配置文件kafka.properties和消費者配置文件kafka-config.json
3、內部生產-外部消費
場景:(內部生產-外部消費)
解決方案:由于外部的消費者不支持灰度消息,因此我們內部生產消息的應用不管是灰度環境還是非灰度環境,共用同一套topic,這樣生產的消息就不區分灰度消息。
業務方改造:
不用處理
4、內部生產-內外部消費
場景:(內部生產-內外部消費)
解決方案:由于外部的消費者不支持灰度消息,因此我們內部生產消息的應用不管是灰度環境還是非灰度環境,共用同一套topic,這樣生產的消息就不區分灰度消息。內部應用由于區分不同的環境消息,通過kdis分流服務---消費內部生產的消息,然后根據管理后臺-灰度配置mcs-mimp-core應用默認的環境版本,如果是1.0,kdis就生產非灰度topic消息,如果是5.0,kdis就生產灰度消息。業務應用非灰度環境消費--kdis生產的非灰度topic消息,業務應用灰度環境消費--kdis生產的灰度topic消息
業務方改造:
1)? 新申請兩套生產者topic(一套對應灰度的、一套對應非灰度的)
2)在kdis服務配置給外部用的topic和新申請的兩套生產者topic
3)修改業務應用掛載文件kafka-config.json配置