使用kafka服务进行灰度发布实现方案
背景
2022年6月8日的时候,有服务需要进行灰度发布,但是,这些服务使用到了Kafka,所以无法像普通的http服务那样使用nginx进行引流。 所以,那些HW的大佬就在会议上讨论了,最终也没有得出一个方案出来。 但是,我想到了一个方案,但是又想想在项目组中的待遇,算了算了,何必多管闲事,说出来也不会改变什么,现在周末有空了,我还是以博客的方式记下自己的方案,毕竟是是自己想出来了,仅供参考。
kafka服务调用
生产环境服务调用
灰度发布服务调用
kafka灰度发布的难点
因为消费者监听同一个topic,灰度节点的生产者/Kafka无法实现把消息送到指定的消费者服务中。
灰度实现方案
方案说明:
- 保证在服务B处的监听topic1的方法A处,通过消息体以及查询数据库,判断该服务节点是否为灰度节点。
- 最后,服务B也监听一个以自己IP关联的topic进行消费。
总结
- 如果消息量特别大,建议kafka集群需要准备2个。