我有一个微服务架构,其中每个服务的生产者写相同的主题。我有两个kafkaRestproxy示例,每个都侦听该主题,但这里的问题是:假设一个请求到达restproxy的instance-1,它将重定向到微服务,该服务完成了作业,并将响应写入主题,但该响应由restproxy的第二个示例(假设为instance-2)使用。
我应该怎么做来解决这个问题?我们是否可以将它们的任何类型的application_id附加到请求中,以便当微服务完成任务时,如果restproxy的另一个示例使用了该响应,那么我们可以将响应重定向到获得该请求的restproxy示例?
1条答案
按热度按时间xtfmy6hx1#
您的代理组成Kafka组,就像任何其他应用程序一样。当您请求记录时,您需要同时给予使用者组和使用者示例名称(例如HTTP客户端的主机)
GET /consumers/(string:group_name)/instances/(string:instance)/records
除了为每个请求分配唯一的
instance
之外,您通常不应该试图严格控制哪些使用者获得哪些信息,以允许并行使用(假设这是您想要的)。此外,除非您有另一个应用程序正在请求该信息,例如上面的GET请求,否则REST代理不会消耗任何东西。