当前位置: 首页 > 面试题库 >

断言Kafka发送工作

陶博涉
2023-03-14
问题内容

我正在用Spring Boot编写一个应用程序,所以我要写给Kafka:

@Autowired
private KafkaTemplate<String, String> kafkaTemplate;

然后在我的方法里面:

kafkaTemplate.send(topic, data)

但是我觉得我只是依靠它来工作,我怎么知道它是否起作用?如果它是异步的,那么返回200代码并希望它能奏效是个好习惯吗?我很困惑。如果没有Kafka,这不会失败吗?不应该提示我捕获异常吗?


问题答案:

是的,如果Kafka不可用,该.send()呼叫将失败,但是如果您异步发送它,则不会通知任何人。您可以指定将来最终完成时要执行的回调。完整的接口规范在这里:https
:
//kafka.apache.org/20/javadoc/org/apache/kafka/clients/producer/Callback.html

从此处的官方Kafka
Javadoc:https
:
//kafka.apache.org/20/javadoc/index.html?
org/apache/kafka/clients/producer/
KafkaProducer.html

完全非阻塞的用法可以利用Callback参数提供将在请求完成后调用的回调。

>       ProducerRecord<byte[],byte[]> record = new
> ProducerRecord<byte[],byte[]>("the-topic", key, value);
>           producer.send(myRecord,
>                new Callback() {
>                    public void onCompletion(RecordMetadata metadata,
> Exception e) {
>                        if(e != null) {
>                           e.printStackTrace();
>                        } else {
>                           System.out.println("The offset of the record we
> just sent is: " + metadata.offset());
>                        }
>                    }
>                });


 类似资料:
  • 我正在使用SAML 2.0和浏览器SSO配置SP以连接到另一个IDP。我已经完成了所有的设置,但无法弄清楚如何或是否有可能向IDP发送断言。IDP通常不会将断言发送回SP吗?当我导航到IDP的ACS URL时,我无法访问登录页面,因为我错过了这些SAML断言。 我的特定用例是通过平联邦设置的。 谢谢!

  • 问题内容: 今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 问题答案: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java 关键字(AssertionError)引发的错误相同,因此它与堆栈跟踪完全相同,除了您无法分辨出其区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,

  • 我使用Assert来验证如下字段 现在,当我在html中使用表单时。细枝 一切都很好,如果我有一个空字段,我得到了我的消息,但当我试图像 我得到的消息类似于默认消息,我无法添加广告,但在我的字段旁边没有消息。我做错了什么? 我已经尝试在每个表单字段中使用novalidate属性,但它仍然不起作用

  • 我有一个应用程序,它定期生成原始JSON消息数组。我能够使用avro-tools将其转换为Avro。我这样做是因为由于Kafka-Connect JDBC接收器的限制,我需要消息包含模式。我可以在记事本上打开这个文件,看到它包括模式和几行数据。 现在,我想将其发送到我的中央Kafka代理,然后使用Kafka Connect JDBC接收器将数据放入数据库。我很难理解我应该如何将这些Avro文件发送

  • mocha允许你使用任意你喜欢的断言库,在上面的例子中,我们使用了Node.js的内置的断言模块作为断言。如果能够抛出一个错误,它就能够运行。这意味着你能使用下面的这些仓库,比如: should.js - BDD风格贯穿始终 expect.js - expect()样式断言 chai - expect(),assert()和should风格的断言 better-assert - C风格的自文档化的

  • 在本教程的其余部分,您将看到使用不同类型的断言(如BOOST_HANA_RUNTIME_CHECK和BOOST_HANA_CONSTANT_CHECK)的代码段。 像任何合理的assert宏,它们基本上检查它们给出的条件是否满足。 然而,在异构编程的上下文中,一些信息在编译时是已知的,而其他信息仅在运行时可知。 在上下文中使用的断言的确切类型告诉您所声明的条件是否可以在编译时可知,或者是否必须在运