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

Kafka使用kclient三种使用方法

kclient提供了三种使用方法,对于每一种方法,按照下面的步骤可快速构建Kafka生产者和消费者程序。

 前置步骤
1) 下载源代码后在项目根目录执行如下命令安装打包文件到你的Maven本地库。

mvn install

2) 在你的项目pom.xml文件中添加对kclient的依赖。

<dependency>
    <groupId>com.robert.kafka</groupId>
    <artifactId>kclient-core</artifactId>
    <version>0.0.1</version>
</dependency>
3) 根据Kafka官方文档搭建Kafka环境,并创建两个Topic, test1和test2。

4) 然后,从Kafka安装目录的config目录下拷贝kafka-consumer.properties和kafka-producer.properties到你的项目类路径下,通常是src/main/resources目录。

 Java API
Java API提供了最直接,最简单的使用kclient的方法。

构建Producer示例:

 

构建Consumer示例:

 

 

 Spring环境集成
kclient可以与Spring环境无缝集成,你可以像使用Spring Bean一样来使用KafkaProducer和KafkaConsumer。

构建Producer示例:

 

 

构建Consumer示例:

 

 

 

 服务源码注解
kclient提供了类似Spring声明式的编程方法,使用注解声明Kafka处理器方法,所有的线程模型、异常处理、服务启动和关闭等都由后台服务自动完成,极大程度的简化了API的使用方法,提高了开发者的工作效率。

注解声明Kafka消息处理器:

 

注解启动程序:

 

注解Spring环境配置:

 

API简介 Producer API
KafkaProducer类提供了丰富的API来发送不同类型的消息,它支持发送字符串消息,发送一个普通的Bean,以及发送JSON对象等。在这些API中可以指定发送到某个Topic,也可以不指定而使用默认的Topic。对于发送的数据,支持带Key值的消息和不带Key值的消息。

发送字符串消息:

 

发送Bean消息:

 

发送JSON对象消息:

 

 Consumer API
KafkaConsumer类提供了丰富的构造函数用来指定Kafka消费者服务器的各项参数,包括线程池策略,线程池类型,流数量等等。

使用PROPERTIES文件初始化:


---------------------

原文:https://blog.csdn.net/lr131425/article/details/71159243

转载于:https://www.cnblogs.com/Ph-one/p/10877512.html

相关文章:

  • 一文简述多种强化学习算法,重要概念和术语一览
  • [linux time命令学习篇] time 统计命令执行的时间
  • Linux上shell脚本date的用法
  • linux下的shell运算(加、减、乘、除)
  • shell中的for循环用法详解
  • 中药介绍
  • linux下的usb抓包方法
  • 自旋锁spin_lock和raw_spin_lock
  • git 优雅的撤销中间某次提交
  • 让个人域名下GithubPage完美支持https
  • CloudFlare 新手入门中文教程
  • DNS解析类型的区别
  • 免费版CloudFlare CDN基本设置参考
  • Git missing Change-Id in commit message footer解决方法
  • 循环神经网络(RNN)模型与前向反向传播算法
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • PAT A1017 优先队列
  • VuePress 静态网站生成
  • 番外篇1:在Windows环境下安装JDK
  • 翻译--Thinking in React
  • 力扣(LeetCode)56
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 线上 python http server profile 实践
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • 阿里云ACE认证学习知识点梳理
  • ​渐进式Web应用PWA的未来
  • #控制台大学课堂点名问题_课堂随机点名
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (安卓)跳转应用市场APP详情页的方式
  • (二十三)Flask之高频面试点
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (推荐)叮当——中文语音对话机器人
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • .axf 转化 .bin文件 的方法
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 指南:抽象化实现的基类
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 使用反射注册事件
  • .NET6实现破解Modbus poll点表配置文件
  • .net程序集学习心得
  • .net专家(张羿专栏)
  • /dev/sda2 is mounted; will not make a filesystem here!
  • /etc/shadow字段详解
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @Validated和@Valid校验参数区别
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [Android] Amazon 的 android 音视频开发文档
  • [Android]通过PhoneLookup读取所有电话号码
  • [Codeforces] combinatorics (R1600) Part.2
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用