2017-09-14 82 views
0

我们计划使用Confluent Rest代理作为侦听所有用户事件(&将它们发布到Kafka)的平台层。处理具有不同类型事件生成器的微服务模型&,我们希望我们的API /事件生成器与事件监听/处理分离。此外,在事件监听层,事件韧性对我们很重要。Confluent Rest Proxy API(生产者)重试事件发生失败

  1. 据我所知,如果Rest代理层出于任何原因无法发布到Kafka(曾经),它不会重试。该功能需要由调用者(客户层)处理,该调用者需要在发生故障时进行同步调用&重试。但是,在产品文档中找不到关于此的任何细节。有人可以确认一样吗?
  2. Confluent Rest Proxy开发人员声称,通过正确的Rest客户端群集设置&正确请求由客户端分批处理,可以实现与本地生产者一样好的性能。这里有任何例外/(正面/负面)想法吗?
  3. 对其余代理生产者API的调用被阻止。如果客户端不需要知道分区&偏移量详细信息,那么我们可以将这些调用配置为非阻塞:收到请求后,恢复能力由Rest Proxy层本身管理。只要收到产品味精请求,客户端就会收到一个200 HTTP状态作为确认。

回答

0
  1. 其余代理仅仅是一个正常卡夫卡生产者和消费者卡夫卡和可以有或没有启用重试被配置,正如任何其他卡夫卡生产者可以。
  2. 通过REST代理发布的单个生产者不会达到与单个本地Java生产者相同的吞吐量。但是,您可以扩展许多REST代理和许多HTTP生产者以获得高性能。您还可以通过将多个邮件合并到一个合并的HTTP请求中来减轻HTTP施加的性能损失,从而最大限度地减少线路上的HTTP往返次数。