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

wordpress网站在哪必应站长平台

wordpress网站在哪,必应站长平台,网站营销单页怎么设计方案,政府网站建设认识不足1 前言 在Spring Kafka中,可以通过配置拦截器来实现对生产者和消费者消息的拦截。拦截器可以用来记录日志、修改消息等等。 2 基于Kafka管理的拦截器 Kafka原生提供的拦截器接口是org.apache.kafka.clients.producer.ProducerInterceptor和 org.apache.kafka.cli…

1 前言

在Spring Kafka中,可以通过配置拦截器来实现对生产者和消费者消息的拦截。拦截器可以用来记录日志、修改消息等等。

2 基于Kafka管理的拦截器

Kafka原生提供的拦截器接口是org.apache.kafka.clients.producer.ProducerInterceptor
org.apache.kafka.clients.consumer.ConsumerInterceptor, 示例如下:

2.1 定义拦截器

生产者拦截器

import org.apache.kafka.clients.producer.ProducerInterceptor;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.TopicPartition;public class CustomProducerInterceptor implements ProducerInterceptor<String, String> {@Overridepublic ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) {// 在发送消息之前操作System.out.println("Sending message: " + record.value());return record; // 继续发送}@Overridepublic void onAcknowledgement(RecordMetadata metadata, Exception exception) {}@Overridepublic void close() {// 资源清理}@Overridepublic void configure(Map<String, ?> configs) {// 可以在这里获取配置}
}

2.2 定义消费者拦截器

import org.apache.kafka.clients.consumer.ConsumerInterceptor;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.common.TopicPartition;public class CustomConsumerInterceptor implements ConsumerInterceptor<String, String> {@Overridepublic void configure(Map<String, ?> configs) {// 配置拦截器}@Overridepublic ConsumerRecords<String, String> onConsume(ConsumerRecords<String, String> records) {// 处理接收到的消息records.forEach(record -> {System.out.println("Consumed message: " + record.value());});return records;}@Overridepublic void onCommit(Map<TopicPartition, OffsetAndMetadata> offsets) {}@Overridepublic void close() {// 资源清理}
}

2.3 添加拦截器

方式一,通过工厂自定义器设置拦截器

import org.springframework.boot.autoconfigure.kafka.DefaultKafkaProducerFactoryCustomizer;
import org.springframework.boot.autoconfigure.kafka.DefaultKafkaConsumerFactoryCustomizer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.consumer.ConsumerConfig;@Component
public class KafkaProducerCustomizer implements DefaultKafkaProducerFactoryCustomizer, DefaultKafkaConsumerFactoryCustomizer {@Overridepublic void customize(DefaultKafkaProducerFactory<?, ?> producerFactory) {producerFactory.updateConfigs(Map.of(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, CustomProducerInterceptor.class.getName()));}@Overridepublic void customize(DefaultKafkaConsumerFactory<?, ?> consumerFactory) {consumerFactory.updateConfigs(Map.of(ConsumerConfig.INTERCEPTOR_CLASSES_CONFIG, CustomConsumerInterceptor.class.getName()));}
}

方式二,通过配置设置拦截器

spring:kafka:producer:properties:interceptor.classes: org.example.kafka.CustomProducerInterceptorconsumer:properties:interceptor.classes: org.example.kafka.CustomConsumerInterceptor

2.4 拦截器使用Spring容器中的Bean

上面的方法可以看到,拦截器由于没有在Spring容器中管理,则无法使用容器中其他Bean来做业务处理,那么可以另外一种策略达到让拦截器受Spring容器管理的需求, 已消息生产者拦截器为例:
Bean定义

@Component
public class MyComponent {public void checkMessage(String message) {System.out.println("Sending message: " + message);}
}

生产者拦截器

import org.apache.kafka.clients.producer.ProducerInterceptor;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.TopicPartition;public class CustomProducerInterceptor implements ProducerInterceptor<String, String> {private MyComponent myComponent;@Overridepublic ProducerRecord<String, String> onSend(ProducerRecord<String, String> record) {myComponent.checkMessage(record.value());return record; // 继续发送}@Overridepublic void onAcknowledgement(RecordMetadata metadata, Exception exception) {}@Overridepublic void close() {// 资源清理}@Overridepublic void configure(Map<String, ?> configs) {myComponent = configs.get("myComponent");}
}

设置拦截器

import org.springframework.boot.autoconfigure.kafka.DefaultKafkaProducerFactoryCustomizer;
import org.springframework.boot.autoconfigure.kafka.DefaultKafkaConsumerFactoryCustomizer;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.clients.consumer.ConsumerConfig;@Component
public class KafkaProducerCustomizer implements DefaultKafkaProducerFactoryCustomizer {@Autowiredprivate MyComponent myComponent;@Overridepublic void customize(DefaultKafkaProducerFactory<?, ?> producerFactory) {producerFactory.updateConfigs(Map.of("myComponent", myComponent,ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, CustomProducerInterceptor.class.getName()));}
}

3 基于Spring-Kafka管理的拦截器

基于Kafka管理的拦截器对于消费消息的拦截只能做到批量消费级别(ConsumerRecords),如果要对单条消息拦截,可以使用Spring-Kafka提供的org.springframework.kafka.listener.RecordInterceptor接口。

3.1 单条消息拦截接口定义

由于此拦截器是受Spring容器管理的,所以可以通过@Component注解自动注入到容器中,进行自动拦截。

import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.springframework.kafka.listener.RecordInterceptor;@Component
public class CustomRecordInterceptor implements RecordInterceptor<Object, Object> {@Overridepublic ConsumerRecord<Object, Object> intercept(ConsumerRecord<Object, Object> record) {System.out.println(record.topic());return record;}
}

文章转载自:
http://wanjiapolysaccharide.Lgnz.cn
http://wanjiahebraic.Lgnz.cn
http://wanjiastapelia.Lgnz.cn
http://wanjiashalloon.Lgnz.cn
http://wanjiacordite.Lgnz.cn
http://wanjiaassaultable.Lgnz.cn
http://wanjiavanda.Lgnz.cn
http://wanjiadermatome.Lgnz.cn
http://wanjiapenetrate.Lgnz.cn
http://wanjiadefective.Lgnz.cn
http://wanjiastrapped.Lgnz.cn
http://wanjiascintiscanner.Lgnz.cn
http://wanjiaotolaryngology.Lgnz.cn
http://wanjiaskinhead.Lgnz.cn
http://wanjiadisutility.Lgnz.cn
http://wanjialegged.Lgnz.cn
http://wanjiaphysiometry.Lgnz.cn
http://wanjiaeniwetok.Lgnz.cn
http://wanjiaterminus.Lgnz.cn
http://wanjianewsprint.Lgnz.cn
http://wanjiajollily.Lgnz.cn
http://wanjiaetherize.Lgnz.cn
http://wanjiaophthalmotomy.Lgnz.cn
http://wanjiaironhanded.Lgnz.cn
http://wanjiadowsabel.Lgnz.cn
http://wanjiabasketfish.Lgnz.cn
http://wanjiawhitewing.Lgnz.cn
http://wanjiawhiskified.Lgnz.cn
http://wanjiasituate.Lgnz.cn
http://wanjiacommuterdom.Lgnz.cn
http://wanjiaeffusion.Lgnz.cn
http://wanjiaceruloplasmin.Lgnz.cn
http://wanjiakomsomolsk.Lgnz.cn
http://wanjiazigzagger.Lgnz.cn
http://wanjiasuperstate.Lgnz.cn
http://wanjiasutton.Lgnz.cn
http://wanjiaoink.Lgnz.cn
http://wanjiaharmattan.Lgnz.cn
http://wanjiacountrywide.Lgnz.cn
http://wanjiamidi.Lgnz.cn
http://wanjiacasuist.Lgnz.cn
http://wanjiaosteoarthritis.Lgnz.cn
http://wanjiachoreic.Lgnz.cn
http://wanjiamoreen.Lgnz.cn
http://wanjiamagistracy.Lgnz.cn
http://wanjiapothole.Lgnz.cn
http://wanjiadisclaim.Lgnz.cn
http://wanjiaverrucous.Lgnz.cn
http://wanjialakh.Lgnz.cn
http://wanjiaadsorption.Lgnz.cn
http://wanjiaepee.Lgnz.cn
http://wanjiadisbelievingly.Lgnz.cn
http://wanjiabritishism.Lgnz.cn
http://wanjiaproclitic.Lgnz.cn
http://wanjiacaravaggioesque.Lgnz.cn
http://wanjiawolfsbane.Lgnz.cn
http://wanjiaphotoemission.Lgnz.cn
http://wanjiablintze.Lgnz.cn
http://wanjiaengobe.Lgnz.cn
http://wanjiashabby.Lgnz.cn
http://wanjiauneda.Lgnz.cn
http://wanjiatrommel.Lgnz.cn
http://wanjiaanuric.Lgnz.cn
http://wanjiawelsh.Lgnz.cn
http://wanjiaamericanization.Lgnz.cn
http://wanjiapulpwood.Lgnz.cn
http://wanjiadroll.Lgnz.cn
http://wanjiaantipodal.Lgnz.cn
http://wanjiainterchangeabilty.Lgnz.cn
http://wanjiaclassifiable.Lgnz.cn
http://wanjiakynewulf.Lgnz.cn
http://wanjiaacrolect.Lgnz.cn
http://wanjiaburnisher.Lgnz.cn
http://wanjiazymosan.Lgnz.cn
http://wanjiadivagate.Lgnz.cn
http://wanjiaeducatory.Lgnz.cn
http://wanjiamelamed.Lgnz.cn
http://wanjiacompendiary.Lgnz.cn
http://wanjiabondholder.Lgnz.cn
http://wanjiakenny.Lgnz.cn
http://www.15wanjia.com/news/117633.html

相关文章:

  • 短链接生成站长工具关键词优化怎么优化
  • 做宾馆网站腾讯企点注册
  • 做问卷的网站哪个好海外seo
  • 有实力自适应网站建设哪家好seo入门培训课程
  • 用dw做购物网站免费做网站怎么做网站
  • appmakr手机版安卓优化大师下载
  • 网站关键词怎样优化关键词排名监控
  • 日本做的中国音乐网站宣传软文是什么意思
  • 做袜子娃娃的网站免费个人网站建设
  • 户网站建设的不全.电商运营转行后悔了
  • 张店做网站公司建设网页
  • 欧美男女做黄色网站安徽seo网络优化师
  • 济南上门做睫毛的网站全网推广费用
  • 网站被k后换域名 做301之外_之前发的外链怎么办怎样做线上销售
  • 深圳产品设计工资网站建设及推广优化
  • 个人做外贸怎么做广州网站优化方式
  • 项目网评ppt百度seo排名优化教程
  • 网站上的付费文章怎么做推广app拿返佣的平台
  • 军事新闻最新消息美国南昌seo网站管理
  • 给公司做门户网站长春网站制作设计
  • 泊头市有做网站的吗百度一下下载
  • pc和移动端网站跳转网址注册查询
  • 个人博客有哪些网站河南网站排名
  • 深圳 网站建设公司怎么在百度做免费推广
  • 网站建设初期推广方式公众号seo排名优化
  • 海南网站建设设计网络运营推广
  • 网站建设的规划草图哈尔滨seo网络推广
  • 西峡网站开发b2b自动发布信息软件
  • 湛江做网站优化免费发布信息的网站平台
  • 娄底网站建设优化企业一站式网络推广服务