当前位置: 首页 > news >正文

做资料分享网站有哪些工信部官网

做资料分享网站有哪些,工信部官网,最新网站开发软件,wordpress评论点赞怎么实现同步发送 or 异步发送 消息发送根据是否需要处理发送的结果分为同步发送、异步发送。 同步发送:等待发送结果返回,这种方式是可靠的,因为异常能及时处理,但同步发送需要阻塞等待一条消息发送完才处理下一条,吞吐量差。…

同步发送 or 异步发送

       消息发送根据是否需要处理发送的结果分为同步发送、异步发送。

同步发送:等待发送结果返回,这种方式是可靠的,因为异常能及时处理,但同步发送需要阻塞等待一条消息发送完才处理下一条,吞吐量差。


异步发送:发送是异步的,不关心发送的结果,吞吐量最高,但可能存在发送失败的情况。

    本质上kafka 客户端提供的发送接口都是异步的,因为发送接口返回的是一个Future对象。对于同步发送通过future.get获取发送结果。异步发送则忽略send 返回值。

ListenableFuture<SendResult> future = kafkaTemplate.send(topic, content);try {SendResult sendResult = future.get();} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();}

发送完成回调

有没有办法既要异步发送还要能处理发送失败的场景,这就是第三种,发送完成时,执行相应的回调方法。这是折中方案,兼顾效率且保证发送失败能被监控到。

producer.send(record, new Callback() {
@Override
public void onCompletion(RecordMetadata recordMetadata, Exception e) {if(e != null){System.out.println("send error ");
}else {System.out.println("send result  topic ="+recordMetadata.topic() + " partition=" + recordMetadata.partition() + "  offset=" + recordMetadata.offset() );
}}
});

发送异常

       有些发送异常可以通过重试几次后解决,比如网络异常,对于有些异常比如消息太大超出kafka配置的最大消息字节数,这类异常重试也会失败,所以这类异常KafkaProducer 不会进行任何重试。对于可重试异常可以配置重试次数

spring.kafka.producer.retries=10

SpringBoot 集成简单介绍

     参考上篇文章SpringBoot 集成配置(pom依赖、application配置),简单讲解SpringBoot 几个重要自动装配类。

KafkaAutoConfiguration

KafkaAutoConfiguration给我们自动配置了几个类

KafkaTemplate:可以通过KafkaTemplate进行发送消息,本质上内部还是使用的KafkaProducer发送消息的。

ProducerFactory:KafkaProducer工厂,通过createProducer()方法可以获取(KafkaProducer) 进行发送消息,避免直接new KafkaProducer

使用方式也很简单,由于直接KafkaAutoConfiguration已经定义了相关Bean, 使用时注入Bean即可

图片

@Autowired
private KafkaTemplate kafkaTemplate;@Autowired
private ProducerFactory producerFactory;

具体代码

同步发送、异步发送的方式直接使用 kafkaTemplate即可完成,同步发送结果处理:这里简单的打印出消息的topic partition offset 等信息如下图

ListenableFuture<SendResult> future = kafkaTemplate.send(topic, content);
SendResult sendResult = future.get();
RecordMetadata recordMetadata = sendResult.getRecordMetadata();
System.out.println("send result  topic ="+recordMetadata.topic() + " partition=" + recordMetadata.partition() + "  offset=" + recordMetadata.offset() );
 

                                   

图片

发送回调kafkaTemplate没有对应api , 需要通过Producer发送,我们通过producerFactory获取。

ProducerRecord record = new ProducerRecord(topic,content);Producer producer = producerFactory.createProducer();producer.send(record, new Callback() {@Overridepublic void onCompletion(RecordMetadata recordMetadata, Exception e) {if(e != null){System.out.println("send error ");}else {System.out.println("send result  topic ="+recordMetadata.topic() + " partition=" + recordMetadata.partition() + "  offset=" + recordMetadata.offset() );}}});

http://www.yayakq.cn/news/205763/

相关文章:

  • 西安制作公司网站的公司安徽网站建设制作
  • 如何把做的网站变成链接武进做网站的公司
  • 环江住房和城乡建设部网站5星做号宿水软件的网站
  • 成都网站建设制作公司妙趣网 通辽网站建设
  • 网站评论 设计深圳网站订制开发
  • 广西建设厅关公网站小厂建网站
  • 旅游网站开发文档WordPress明月浩空
  • 南京微信网站开发软件开发工具的主要的分类方法
  • 网站开发分工手机域名解析错误
  • 海沧区建设局网站网站弹窗是怎么做的
  • 学习php网站开发怎么样seo外链工具软件
  • php 开启gzip加速网站做app网站的公司
  • 语种网站建设网站怎样制作 优帮云
  • 湛江模板建站服务商深圳高端设计公司
  • 全国企业信息公示系统查询通辽网站seo
  • 苏州 网站 建设 公司wordpress检测登录ip
  • 网站开发的最后5个阶段网店运营推广初级实训系统答案
  • 旅游网站wordpresswordpress引用视频
  • 北京网站制作设计宁河网站建设
  • 更改wordpress程序站点网址郑州做公司网站的
  • wordpress网站怎么打开17网站一起做网店增城
  • 企业网站推广的方法有( )跑腿网站建设
  • 什么样的水平可以做网站网站服务器备案
  • 怎么上传软件到网站正规建筑工程网站
  • 惠安县住房和城乡建设部网站招聘网站建设策划书
  • 网站备案密码格式福州专业网站建设公司
  • 微信 网站 织梦装修网站是怎么建设的
  • qq创号申请注册网站全国互联网平台
  • 玉溪哪有网站建设开发服务网站建设推广
  • 网站建设案例分析题近期国内重大新闻