使用kafka服务进行灰度发布实现方案

背景

2022年6月8日的时候,有服务需要进行灰度发布,但是,这些服务使用到了Kafka,所以无法像普通的http服务那样使用nginx进行引流。 所以,那些HW的大佬就在会议上讨论了,最终也没有得出一个方案出来。 但是,我想到了一个方案,但是又想想在项目组中的待遇,算了算了,何必多管闲事,说出来也不会改变什么,现在周末有空了,我还是以博客的方式记下自己的方案,毕竟是是自己想出来了,仅供参考。

kafka服务调用

生产环境服务调用

灰度发布服务调用

kafka灰度发布的难点

因为消费者监听同一个topic,灰度节点的生产者/Kafka无法实现把消息送到指定的消费者服务中。

灰度实现方案

方案说明:

  1. 保证在服务B处的监听topic1的方法A处,通过消息体以及查询数据库,判断该服务节点是否为灰度节点。
  2. 最后,服务B也监听一个以自己IP关联的topic进行消费。

总结

  1. 如果消息量特别大,建议kafka集群需要准备2个。
经验分享 程序员 微信小程序 职场和发展