java在向Azure事件中心上的主题发送事件时有3035秒的延迟
我有一个API,它接收Http Post负载,处理它并创建一个cloudEvent 当它部署到DEV/QA环境时,它会在this tutorial之后使用Azure事件中心
工作流程如下所示:
- 传入对“A”api的http请求
- “A”api对负载执行一些逻辑(save-son-db等),并针对给定主题创建cloudEvent
- “B”应用程序使用此事件,它向“C”api发出http请求
- “C”api执行一些逻辑并将Http 200返回给“B”
- “B”然后使用“C”的给定响应创建另一个主题的另一个事件
- “D”使用第二个主题中的第二个事件,并调用“A”api上的PUT端点
- “A”api更新数据库中的某些值李>
在最后一步中,我在更新之后添加了一个日志,以检查从步骤1到步骤7的时间(比较db中的creation_date字段与当前LocalDateTime)。大多数请求需要1-4秒才能完成7个步骤,但有些请求需要30秒以上:
[End-to-End operation time] id: '1234' - type: 'dummy' - time (in seconds): '33.52s'
起初,我认为这可能是一些消费者配置,但是看到cloudEvent头,它会显示类似于creation\u time=04:20:05(我在创建第一个事件时在步骤1中设置)
但当我检查卡夫卡托尔上的时间戳时,它会显示:timestamp=04:20:38 我猜它设置了创建时间并创建了第一个事件,但由于某些原因,它直到30秒后才进入主题
卡夫卡制作人那边有什么我不知道的东西吗?对卡夫卡和事件驱动的沟通来说相对较新,因此任何见解都值得赞赏
卡夫卡制作人代码:
CloudEvent cloudEvent = CloudEventBuilder.v1()
.withExtension("payloadversion", Constants.PAYLOAD_VERSION_DUMMY)
.withId(UUID.randomUUID().toString())
.withType(Constants.EVENT_TYPE_DUMMY)
.withSource(Constants.URI_SOURCE_DUMMY)
.withDataContentType(Constants.JSON_CONTENT_TYPE)
.withTime(Instant.now().atOffset(ZoneOffset.UTC))
.withData(PojoCloudEventData.wrap(dummyEvent, objectMapper::writeValueAsBytes))
.build();
kafkaTemplate.send("dummy-topic", "dummy-unique-id", cloudEvent);
共 (0) 个答案